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

SAML経由で外部IDプロバイダーからユーザーグループのメンバーシップをインポートする

サブスクリプション

警告

この機能は 開発者機能フラグ の背後でリリースされました。 Liferay DXP 2024.Q2/Portal GA120で一般提供(GA)されました。 以前のバージョンではこの機能は開発機能フラグの背後にあるため、本番環境では使用しないでください。

注記

Liferayがサービスプロバイダーではなくアイデンティティプロバイダーとして機能する場合、グループメンバーシップをインポートするのではなく、SAML属性として公開します。 ユーザーグループメンバーシップ属性 を参照してください。

外部の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にログインする際に使用するユーザー名のソースを示し、SAMLを使用する際に、そのユーザー名がLiferayへのログインに使用されます。

  6. 属性ステートメント の下に以下の値を追加してください。

    firstName (未指定): user.firstName

    lastName (未指定): user.lastName

    メールアドレス (未指定): ユーザーのメールアドレス

    screenName (未指定): user.firstName

    左側の値はSAML属性の名前です。 これらは右側の対応する値に対応しており、Oktaのさまざまなユーザーフィールドを指定します。

  7. グループ属性ステートメント の下に以下の値を追加してください。

    userGroup (未指定): で始まる 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. ID プロバイダー接続の下で、 ID プロバイダーの追加 をクリックします。

  7. 名前として Okta と入力してください。

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

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

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

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

  12. 属性マッピングで、合計4つの基本ユーザーフィールドになるように、3つの新しい基本ユーザーフィールドを作成します。 表示されているとおりに情報を入力してください。

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

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

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

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

    上記の2つのマッピングは、Liferayのユーザー属性とOktaで設定されたSAML属性をリンクするものです。 例えば、Okta のユーザー グループ SAML 属性の名前は userGroup です。 これは、Liferay の userGroups 属性にマッピングされます。

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

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

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

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

重要

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