SAML 経由で外部 IdP からユーザー グループのメンバーシップをインポートする
この機能は 開発機能フラグでリリースされました。 Liferay DXP 2024.Q2/Portal GA120 で一般公開 (GA) されました。 開発機能フラグの背後にある以前のバージョンの本番環境では、この機能を使用しないでください。
外部 ID プロバイダー (IdP) からユーザー グループとそのメンバーシップをインポートできます。 これには、IdP を登録するときに必要なフィールドを構成するだけで済みます。 XML 構造は IdP によって異なるため、最初のステップは IdP からユーザー グループの複数値属性を見つけることです。
たとえば、Okta のユーザー グループの構造は次のようになります。
<saml2:Attribute Name="userGroup" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string"
>Okta-UserGroup2
</saml2:AttributeValue>
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string"
>Okta-UserGroup1
</saml2:AttributeValue>
</saml2:Attribute>
以下は、外部 IdP からユーザー グループをインポートするためにこの構造を使用する構成です。
この例では、Okta を外部 ID プロバイダー (IdP) として使用し、Liferay をサービス プロバイダー (SP) として使用します。
Okta で SAML 2.0 アプリを作成する
-
Okta 管理ダッシュボードにログインします。
-
アプリケーション → アプリケーションに移動し、 アプリ統合の作成をクリックします。
-
SAML 2.0 を選択し、 次へをクリックします。
-
名前を liferaysaml と入力し、 次へをクリックします。
-
一般の SAML 設定 セクションに次の値を入力します。
シングルサインオン URL:
http://[IP_ADDRESS]:[PORT_NUMBER]/c/portal/saml/acs(ローカル Liferay インスタンスを実行している場合は、http://localhost:8080/c/portal/saml/acsになります)オーディエンスURI(SPエンティティID):
okta-saml名前ID形式:
メールアドレスアプリケーションユーザー名:
メールアドレス
このフィールドは、ユーザーが Okta にログインするために使用するユーザー名のソースを示します。Okta は、SAML を使用するときにユーザーを Liferay にログインさせます。
-
属性ステートメントの下に次の値を追加します。
firstName (未指定):
user.firstName姓 (未指定):
user.lastNameメールアドレス(未指定):
user.emailscreenName(未指定):
user.firstName左側の値は SAML 属性の名前です。 これらは、Okta 内のさまざまなユーザー フィールドを指定する右側の対応する値にマッピングされます。
-
グループ属性ステートメントの下に次の値を追加します。
ユーザー グループ (未指定): は
Oktaで始まります (これは、Okta のユーザー グループがプレフィックスOktaで始まることを前提としています。 例:Okta-UserGroup-1)
注上記の手順では、Okta 上にすでに異なるグループに属する一連のユーザー (プレフィックス
Oktaで始まる) があることを前提としています。 Okta では、グループ メンバーシップを定義するために、 キーワードまたは正規表現 のいずれかを使用することをお勧めします。 これらのグループは、Liferay 内のユーザー グループと名前で一致します。グループ属性ステートメントには、フィルター条件または正規表現を指定することが必須です。 フィルター条件または正規表現がない場合、SAML 属性は空の状態で送信されます。
-
次へをクリックします。
-
フォームの残りの部分は Okta 固有であり、構成には影響しません。 最も適したものを選択し、 「完了」をクリックします。
メタデータの保存
Liferay インスタンスに移行する前の最後のステップは、SAML メタデータを保存することです。
-
アプリケーション → アプリケーションに移動し、 liferaysamlを選択します。
-
デフォルトでは、 課題 タブを表示できます。 割り当て をクリックし、 ユーザーへの割り当てを選択します。 この SAML アプリを使用して Liferay にログインできるユーザーを検索し、 [割り当て]をクリックします。 ここでグループ別に選択することもできます。

-
完了をクリックします。
-
サインオン タブを選択します。
-
右側で、 SAML セットアップ手順を表示をクリックします。
-
新しい画面で、「オプション」セクションまで下にスクロールします。 XML コードのブロック全体をコピーし、
oktasamlmetadata.xmlという名前の新しいファイルに貼り付けます。

Liferayの設定
ここで、Liferay の SAML 管理で Okta をサービス プロバイダーとして設定する必要があります。
-
グローバル メニュー (
) を開き、 コントロール パネル → SAML 管理者に移動します。 -
[全般]タブで、エンティティIDとして okta-saml を入力します。
-
証明書の作成をクリックします。
-
新しいウィンドウで、 okta-saml を 共通名 として入力し、 learn を キーパスワードとして入力します。
-
[保存]をクリックします。
-
[アイデンティティ プロバイダー接続] の下で、 [アイデンティティ プロバイダーの追加]をクリックします。
-
名前として Okta と入力します。
-
oktasamlmetadata.xmlファイルからエンティティ ID をコピーしてここに貼り付けます。 -
有効 チェックボックスをオンにします。
-
メタデータの下で、 メタデータ XML のアップロード をクリックし、先ほど作成したファイルを選択します。
-
名前識別子の形式として 電子メール アドレス を設定します。
-
属性マッピングで、新しい基本ユーザー フィールドを 3 つ作成して、合計 4 つにします。 次のように情報を入力します。
ユーザーフィールド SAML 属性 電子メールアドレス 電子メールアドレス ファーストネーム ファーストネーム 苗字 苗字 ハンドルネーム ハンドルネーム 
-
「ユーザー メンバーシップ」セクションで、ドロップダウンから
userGroupsを選択し、その値をuserGroupに設定します。
上記の両方のマッピングは、Liferay のユーザー属性を Okta で構成された SAML 属性にリンクします。 たとえば、Okta のユーザー グループ SAML 属性の名前は
userGroupです。 これは、Liferay のuserGroups属性にマッピングされます。 -
[保存]をクリックします。
これで、Liferay インスタンスに移動して、 サインインをクリックできます。 これにより、ID プロバイダーのサインイン ページにリダイレクトされます。 ログインすると、Liferay のホームページにリダイレクトされます。 グローバル メニュー (
) を開き、 コントロール パネル → ユーザー グループに移動して、ユーザーのユーザー グループ メンバーシップを確認することもできます。

今後は、ユーザーが認証すると、ユーザー グループとグループ メンバーシップが同期されます。 Liferay は、グループとグループ メンバーシップの元のソースを保存するため、グループのソースが複数ある場合 (SAML と LDAP など) でも競合しません。