これらの手順の多くは、Liferay DXPをSAML Identity Providerとして設定する手順と似ています。単一のLiferay DXPインストールをSAML Identify Providerまたは SAML Service Providerとして設定できますが、両方を設定することはできないのでその点に注意してください。SAML Identity Providerとして1つのLiferay DXPインストールをすでに設定している場合は、SAMLService Providerとは別のLiferay DXPインストールを使用してください。
注: SPをLiferay DXPとしてサードパーティIdPを使用している場合は、IdPから来る全てのメッセージは署名されていなければなりません。そうでない場合は、エラーメッセージが表示され、IdPとLiferay DXP間の通信が失敗します。
-
Liferay Connector to SAML 2.0 アプリをインストールします。 アプリが正常にデプロイされたことを確認するには、コントロールパネルのConfigurationセクションでSAML Adminエントリーを探します。
-
SAMLを使用するようにLiferay DXPの設定を開始するには、Liferay DXPのSAMLロールを選択し、エンティティIDを選択する必要があります。Service ProviderSAMLロールを選択します。 独自のエンティティIDを選択してください。次に *[Save]*をクリックすると、CertificateとPrivate Keyという新しいセクションが表示されます。
-
CertificateとPrivate Keyセクションは、SAML用のキーストアを作成するためのものです。 Create Certificateをクリックして、以下の情報を入力します。
-
ご自身のお名前(姓名)
-
組織名
-
組織内の部署名
-
街や地区名
-
都道府県名
-
国名
-
キーストアが有効である日数(キーストアの有効期限が切れるまでの期間)
-
キーアルゴリズム(RSAがデフォルト)
-
キーの長さ(ビット単位)(2048がデフォルト)
-
キーパスワード
キーストアには、ファイルシステムストレージ(デフォルト)およびDocuments and Mediaストレージがあります。デフォルトでは、証明書は暗号化のためのSHA256アルゴリズムであり、MD5およびSHA1を介したフィンガープリントおよび自己署名を使用します。必要な情報をすべて入力したら、*[Save]*をクリックしてください。
-
-
*[Save]*をクリックした後、証明書に関する情報を表示できるか、証明書をダウンロードできるかを確認してください。できた場合、キーストアが正常に作成されたということです。キーストアを作成した後、追加のオプションが表示されます。3つのタブがあります。
General:SAML IdPを有効または無効にし、必要なキーストアを管理します。
Service Provider:このタブは、SPの基本設定と詳細設定を管理します。
Identity Provider Connection:このタブはIdPへの接続を管理します。 IdP接続は複数ある場合もあります。
-
暗号化証明書を生成することもできます。これは 暗号化されたアサーションです。暗号化されたアサーションを使用する場合は、キーを生成する必要があります。この手順は、上記の手順3の証明書の生成手順と同じです。
-
次に、 Identity Provider接続を設定する必要があります。Identity Provider Connectionタブをクリックし ます。Identity Providerの名前を入力し、そのエンティティIDを入力し、そのメタデータURLを入力します。前の手順を既に実行し、別のLiferay DXPインストールをIdentifyプロバイダとして設定している場合は、次の情報を入力します。
-
名前:Liferay IdP
-
Entity ID: [IdPのID]
-
Clock Skew: SPとIdP間の許容値をミリ秒単位で設定します。
-
Force Authn: コンテクストに関係なくIdPが再認証を強制するかどうか。
-
メタデータURL:http://localhost:8080/c/portal/saml/metadata(最初にこのURLをテストしてください)
-
Name Identifier Format: 設定を参照
-
Attribute Mapping: 設定を参照
-
Keep Alive URL: 設定を参照 重要:Liferay Connector to SAML 2.0 アプリを使用してサポートしているのはSAML IdPがメタデータ・ファイルへのURLまたは実際の(アップロード)SAMLメタデータXMLファイルのどちらかのみです。メタデータURLフィールドに入力された値入力は、入力されたメタデータURLが1つあり、指定されたメタデータXMLファイルがない場合にのみ、データベースに永続化されます。それ以外の場合、Liferay DXPは元のメタデータURLをデータベースに保持します。これにより、一度メタデータURLが指定されると、常にメタデータURLがデータベースに保存されるようになります。こうすることで、ポータル管理者が以前に入力したメタデータURLまたはその形式を忘れた場合、表示されているメタデータURLを見て、表示されているメタデータURLを変更するか、メタデータXMLファイルを指定して以前保存したメタデータURLを上書きするかを選択できます。
-
-
最後に、証明書とプライベートキーの情報を保存して Identity Provider接続を設定したら、Generalタブの上部にあるEnabled チェックボックスをオンにして*[Save]*をクリックします。これでLiferay DXPがSAMLService Providerになりました!
SAMLService Providerセッションは、アプリケーションサーバー上の通常のセッションに関連付けられています。アプリケーションサーバーでのセッションの有効期限が切れた場合、Service Providerーでのセッションは終了しますが、シングルログアウトは開始されません。
複数のIdP接続を追加できます。別のIDプロバイダーを追加するには、もう一度* Add Identity Provider *をクリックして、他のプロバイダーの詳細を入力しますユーザーがログインすると、IDプロバイダーを選択するように求められるため、ユーザーが認識できるようにプロバイダーに名前を付けてください。
チェックポイント:
-
SAMLキーストアが生成されている。
-
IdPへの接続を確認する。
a. Name:IdPの総称名。
b. Entity ID:IdPの同じ名前。IdPが別のLiferay DXPインスタンスである場合、それは上記の例と同じ名前である。
c. Metadata URL:URLまたはXMLファイルとしてのIdPのメタデータ。
d. IdPが別の@productインスタンスである場合は、このSPに対応するService Provider Connectionが有効になっていることを確認する。
-
General タブで、Enabledチェックボックスがオンになっている。
-
Enabled チェックボックスをオンにすると、Service Providerのメタデータが利用可能になります:
[host]:[port]/c/portal/saml/metadata
クラスタ環境でのSAML Service ProviderとしてのLiferay DXPの設定
Liferay Connector to SAML 2.0アプリをクラスタ環境の Liferay DXPのSSOソリューションとして使用できます。ロードバランサーの背後でマルチノードクラスタを実行している場合は、次の手順に従ってすべてのノードをSPとして有効にし、keystore managerを共有している必要があります。
Filesystem Keystore Managerを使用する場合(デフォルト):
-
上記の指示に従って、Liferay DXPクラスタの各ノードをSAMLService Providerとして設定します。
-
keystoreを(デフォルトの
[Liferay Home]/data/keystore.jks
)最初のLiferay DXPノードから残りのノードにコピーします。このファイルは、SAML Providerアプリによって作成されたJavaキーストアです。keystoreには、SAML Provider アプリによって管理されている有効な証明書または自己署名証明書が含まれています。 -
Service ProviderのメタデータがURLまたはXMLファイルとして使用されるように生成されていることを確認してください。データベースのバックエンドが同じであるため、メタデータはすべてのノードで同じです。IdPのリクエストはロードバランサーを通過します。
-
この時点で、すべてのノードは同じSAML SP設定を持ち、それぞれがWebリクエストにレスポンスしてSAMLプロトコルを処理できるはずです。SSOソリューションをテストするには、ロードバランサーを介してLiferay DXPにサインインし、いくつかの異なるサイトのページに移動してログアウトします。
Document Library Keystore Managerを使用している場合は、Keystoreファイルがすべてのノードで共有されているデータベースに格納されているため、手順2は省略して大丈夫です。
以上がLiferay DXPをSAML Identity ProviderまたはService Providerとして設定する方法です。これで、クラスタ環境でSAMLを設定することもできるはずです。