legacy-knowledge-base
公開されました Jul. 2, 2025

Liferay Connector to SAML 2.0 のカスタム リゾルバを実装する方法

written-by

Tibor Lipusz

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

環境

解像度

このサンプル モジュール (^source がこのページに添付されています) は、カスタム Liferay SAML 2.0 リゾルバーを実装するために使用できる最小限のボイラープレート コードを提供することを目的としています。

  • com.liferay.saml.opensaml.integration.resolver.AttributeResolver(Liferay DXP IdP の拡張ポイント)
  • com.liferay.saml.opensaml.integration.resolver.NameIdResolver(Liferay DXP IdP の拡張ポイント)
  • com.liferay.saml.opensaml.integration.resolver.UserResolver(Liferay DXP SP の拡張ポイント)

Liferay の SAML 2.0 コネクタに同梱されているデフォルトのリゾルバーよりもカスタム リゾルバーが確実に使用されるように、各カスタム リゾルバーは @Component プロパティとしてより高い service.ranking を設定します。

依存関係

ライセンス: Liferay DXP 開発者または製品ライセンス。

ソース: (オプション) Liferay Connector to SAML 2.0 モジュールの Maven スタイルのソース JAR を Liferay マーケットプレイス の [購入したアプリ] ページからダウンロードできます。特定のバージョンのソースを見つけることができません。

コンパイル: 添付ソースの build.gradleを参照してください。

メモ:

  • com.liferay.saml.opensaml.integration-xyzjar Liferay コネクタから SAML 2.0.lpkg を抽出し (マーケットプレイスから ダウンロード できます)、 libs というフォルダーに配置する必要があります。モジュールのルート フォルダに作成されます。
    • DXP 7.4では、このアーティファクトは Liferay の Nexus リポジトリ でも利用できるため、他の依存関係と同様に、適切な groupId/artifactId/version 情報を使用して単純に参照するだけで十分です。
  • このサンプルで使用されているバージョン 3.0.14 of com.liferay.saml.persistence.api Liferay Connector to SAML 2.0 v5.0.1 に含まれており、Liferay Nexus リポジトリで利用できます。 これは、執筆時点で入手可能な最新のリリースです。 SAML 2.0 コネクタの新しいバージョンを使用している場合は、それに応じて依存関係のバージョンを調整する必要があります。 または、 Liferay コネクタから SAML 2.0.lpkg に抽出して、 libs フォルダーに入れることもできます。 この場合、明示的な依存関係を build.gradleから削除できます。

ランタイム:

  • Liferay DXP 7.2 SP2+/FP5+
  • SAML 2.0 への Liferay コネクタ v5.0.1

注: カスタマイズ方法は、SAML 2.0 への Liferay コネクタの以前のバージョンでも同じである必要があります (DXP 7.1 では4.1+ 、DXP では 3.1+)。 それに応じて依存関係を更新するだけです。

ビルド

  1. このページに添付されている ^source をダウンロードして解凍します
  2. モジュールのソースを Liferay Workspace modules フォルダーに配置するか、 Liferay Developer Studioを使用します
  3. gradlew deploy または gradlew assembleを実行します。

デプロイする

  1. Liferay Connector to SAML 2.0.lpkgに配置 [Liferay ホーム]/osgi/marketplace
  2. ビルドによって生成された com.liferay.custom.saml.resolvers-xyzjar [Liferay Home]/osgi/deployに配置します。
  3. Liferay DXPを起動

コンソールに次のようなログ メッセージが表示されます。

2020-09-09 13:05:15.073 INFO [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][BundleStartStopLogger:46] STARTED com.liferay.custom.saml.resolvers_3.0.30 [718]
2020-09-09 13:05:15.076 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomAttributeResolver:64] Activated
2020-09-09 13:05:15.076 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomAttributeResolver:67] Default resolver: class com.liferay.saml.opensaml.integration.internal.resolver.DefaultAttributeResolver
2020-09-09 13:05:15.077 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomNameIdResolver:71] Activated
2020-09-09 13:05:15.078 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomNameIdResolver:74] Default resolver: class com.liferay.saml.opensaml.integration.internal.resolver.DefaultNameIdResolver
2020-09-09 13:05:15.079 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomUserResolver:66] Activated
2020-09-09 13:05:15.079 DEBUG [Refresh Thread: Equinox Container: 20022c4f-8479-4d66-a8fc-dcfe51951f12][CustomUserResolver:68] Default resolver: class com.liferay.saml.opensaml.integration.internal.resolver.DefaultUserResolver


テスティング

簡単なテストとして、Liferay DXP インストールで 2 つの 仮想インスタンス を作成し、それらを SAML IdP および SP としてそれぞれ構成できます。 サンプル モジュールがデプロイされると、ユーザーの認証時に Liferay DXP のコンソールに次のログ メッセージが表示されます。

2020-09-09 12:00:13.051 DEBUG [http-nio-7211-exec-6][CustomNameIdResolver:51] Resolving
2020-09-09 12:00:28.846 DEBUG [http-nio-7211-exec-6][CustomAttributeResolver:48] Resolving
2020-09-09 12:00:30.356 DEBUG [http-nio-7211-exec-10][CustomUserResolver:46] Resolving
did-this-article-resolve-your-issue

legacy-knowledge-base