Authenticating with SAML
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

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 アプリを作成する

  1. Okta 管理ダッシュボードにログインします。

  2. アプリケーションアプリケーションに移動し、 アプリ統合の作成をクリックします。

  3. SAML 2.0 を選択し、 次へをクリックします。

  4. 名前を liferaysaml と入力し、 次へをクリックします。

  5. 一般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形式: メールアドレス

    アプリケーションユーザー名: メールアドレス

    SAML アプリの設定を構成します。

    このフィールドは、ユーザーが Okta にログインするために使用するユーザー名のソースを示します。Okta は、SAML を使用するときにユーザーを Liferay にログインさせます。

  6. 属性ステートメントの下に次の値を追加します。

    firstName (未指定): user.firstName

    姓 (未指定): user.lastName

    メールアドレス(未指定): user.email

    screenName(未指定): user.firstName

    左側の値は SAML 属性の名前です。 これらは、Okta 内のさまざまなユーザー フィールドを指定する右側の対応する値にマッピングされます。

  7. グループ属性ステートメントの下に次の値を追加します。

    ユーザー グループ (未指定): Okta で始まります (これは、Okta のユーザー グループがプレフィックス Oktaで始まることを前提としています。 例: Okta-UserGroup-1)

    ユーザー属性とグループ属性のマッピングを作成します。

    上記の手順では、Okta 上にすでに異なるグループに属する一連のユーザー (プレフィックス Oktaで始まる) があることを前提としています。 Okta では、グループ メンバーシップを定義するために、 キーワードまたは正規表現 のいずれかを使用することをお勧めします。 これらのグループは、Liferay 内のユーザー グループと名前で一致します。

    グループ属性ステートメントには、フィルター条件または正規表現を指定することが必須です。 フィルター条件または正規表現がない場合、SAML 属性は空の状態で送信されます。

  8. 次へをクリックします。

  9. フォームの残りの部分は Okta 固有であり、構成には影響しません。 最も適したものを選択し、 「完了」をクリックします。

メタデータの保存

Liferay インスタンスに移行する前の最後のステップは、SAML メタデータを保存することです。

  1. アプリケーションアプリケーションに移動し、 liferaysamlを選択します。

  2. デフォルトでは、 課題 タブを表示できます。 割り当て をクリックし、 ユーザーへの割り当てを選択します。 この SAML アプリを使用して Liferay にログインできるユーザーを検索し、 [割り当て]をクリックします。 ここでグループ別に選択することもできます。

    SAML アプリにユーザーまたはグループを割り当てます。

  3. 完了をクリックします。

  4. サインオン タブを選択します。

  5. 右側で、 SAML セットアップ手順を表示をクリックします。

  6. 新しい画面で、「オプション」セクションまで下にスクロールします。 XML コードのブロック全体をコピーし、 oktasamlmetadata.xmlという名前の新しいファイルに貼り付けます。

XML ブロックをコピーして新しいファイルに貼り付けます。

Liferayの設定

ここで、Liferay の SAML 管理で Okta をサービス プロバイダーとして設定する必要があります。

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネルSAML 管理者に移動します。

  2. [全般]タブで、エンティティIDとして okta-saml を入力します。

  3. 証明書の作成をクリックします。

  4. 新しいウィンドウで、 okta-saml共通名 として入力し、 learnキーパスワードとして入力します。

  5. [保存]をクリックします。

  6. [アイデンティティ プロバイダー接続] の下で、 [アイデンティティ プロバイダーの追加]をクリックします。

  7. 名前として Okta と入力します。

  8. oktasamlmetadata.xml ファイルからエンティティ ID をコピーしてここに貼り付けます。

  9. 有効 チェックボックスをオンにします。

  10. メタデータの下で、 メタデータ XML のアップロード をクリックし、先ほど作成したファイルを選択します。

  11. 名前識別子の形式として 電子メール アドレス を設定します。

  12. 属性マッピングで、新しい基本ユーザー フィールドを 3 つ作成して、合計 4 つにします。 次のように情報を入力します。

    ユーザーフィールドSAML 属性
    電子メールアドレス電子メールアドレス
    ファーストネームファーストネーム
    苗字苗字
    ハンドルネームハンドルネーム

    Okta で作成された SAML 属性に対応する新しい基本ユーザー フィールドを作成します。

  13. 「ユーザー メンバーシップ」セクションで、ドロップダウンから userGroups を選択し、その値を userGroupに設定します。

    Okta の対応する SAML 属性を使用して、userGroup フィールドにマッピングを追加します。

    上記の両方のマッピングは、Liferay のユーザー属性を Okta で構成された SAML 属性にリンクします。 たとえば、Okta のユーザー グループ SAML 属性の名前は userGroupです。 これは、Liferay の userGroups 属性にマッピングされます。

  14. [保存]をクリックします。

これで、Liferay インスタンスに移動して、 サインインをクリックできます。 これにより、ID プロバイダーのサインイン ページにリダイレクトされます。 ログインすると、Liferay のホームページにリダイレクトされます。 グローバル メニュー (Global Menu) を開き、 コントロール パネルユーザー グループに移動して、ユーザーのユーザー グループ メンバーシップを確認することもできます。

ログインが成功すると、ユーザーは Liferay ユーザー グループに追加されます。

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

重要

サインイン後に Liferay でユーザーを他のユーザー グループに割り当てると、次回 IdP 経由でログインしたときにこれらのメンバーシップが上書きされます。 ユーザー権限については、メンバーシップを管理するために LDAP または SCIM を使用する必要があります。