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

環境

解像度

このサンプルモジュール(^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 の開発者または生産者ライセンス。

Source: (Optional) Liferay Connector to SAML 2.0 モジュールの Maven スタイルのソース JAR は、 Liferay Marketplace の購入したアプリのページからダウンロードすることもできますし、特定のバージョンのソースが見つからない場合は、Liferay サポートにチケットを開いてリクエストすることもできます。

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

メモ

  • あなたは com.liferay.saml.opensaml.integration-x.y.z.jarLiferay Connector to SAML 2.0.Lpkg から抽出する必要があります。lpkg (Marketplaceから をダウンロードできます)を作成し、モジュールのルートフォルダに作成した libs というフォルダに入れます。
  • バージョン 3.0.14 of com.liferay.saml.persistence.api このサンプルで使用されている Liferay Connector to SAML 2.0 v5.0.1 含まれており、Liferay の Nexus リポジトリ利用できます。 これは記事執筆時点で入手可能な最新のリリースです。 SAML 2.0コネクターの新しいバージョンを使用している場合は、それに応じて依存関係のバージョンを調整する必要があります。 あるいは、 Liferay Connector to SAML 2.0.lpkg から抽出して、 libs フォルダに入れておくこともできます。 この場合、 build.gradleから明示的な依存関係を取り除くことができます。

ランタイム:

  • Liferay DXP 7.2 SP2 /FP5
  • Liferay Connector to SAML 2.0 v5.0.1

注意:カスタマイズ方法は、 Liferay Connector to SAML 2.0の旧バージョン、 と同様に(4.1 for DXP 7.1、 3.1 for DXP 7.0)、同じでなければなりません。 それに応じて依存関係を更新する必要があります。

ビルド

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

デプロイ

  1. Liferay Connector to SAML 2.0.lpkg[Liferay Home]/osgi/marketplaceに配置します。
  2. ビルドで生成された com.liferay.custom.saml.resolvers-x.y.z.jar[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
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています