問題
- この記事では、SAML 認証のために 2 つの Liferay DXP バンドルを構成する方法を概説します。1 つはサービスプロバイダ (SP)、もう 1 つは ID プロバイダ (IdP) として機能します。
環境
- DXP 7.4
解像度
注:以下の手順はテスト用です。
- 2つの7.4バンドルを
SPとIdPというタイトルのフォルダに展開し、両方の展開フォルダにDXPアクティベーションキーを入れる。 - ローカル環境の「hosts」ファイルに
127.0.0.1 liferaytest.comを追加して、liferaytest.comを実行可能にする。 (ユーザーが参照できます: hostsファイルの変更または Windows、MacOS、Linuxでhostsファイルを編集する方法) - 両方のバンドルのosgi/configフォルダに
com.liferay.portal.search.elasticsearch7.configuration.configというファイルを作成し、以下の内容を追加します:sidecarHttpPort="AUTO"
-
IdPバンドルの[tomcat home]/confに移動し、server.xmlを開き、ポート番号を以下に変更する:
<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" /> - バンドル開始。
-
Liferay DXP (SP) バンドルを SP として設定する:
- SPバンドルにアクセスする。
- 管理者としてサインインする
- メニューを開く」アイコン > 「コントロール・パネル」 > 「セキュリティ」 > 「SAML Admin」に移動する。
-
一般タブで
- 選択 - SAML 役割:サービスプロバイダ
- エンティティID:samlsp
- 保存をクリック
-
証明書と秘密鍵」で「証明書の作成」をクリックします。
- 一般名:テスト
- 団体名:テスト
- 組織単位:テスト
- 場所:テスト
- 状態:テスト
- 国:テスト
- 有効期間(日):356
- 鍵のアルゴリズムRSA
- キーの長さ(ビット)2048
- キー パスワード: liferaysp
- Enabledにチェックを入れ、Saveをクリックします。
-
Liferay DXP (IDP) バンドルを IdP として設定する:
- IDPバンドルにアクセスする。
- 管理者としてサインインする
-
-->コントロールパネルに移動する > 仮想インスタンス > 3つの点をクリックする > 次に、編集
-->仮想ホストの下に 'liferaytest.com' と入力し、保存する。 - コントロールパネル > セキュリティ > SAML Admin に移動する。
-
一般タブで
- 選択 - SAML 役割: ID プロバイダ
- エンティティID:samlidp
- 保存をクリック
-
証明書と秘密鍵」で「証明書の作成」をクリックします。
- 一般名:テスト
- 団体名:テスト
- 組織単位:テスト
- 場所:テスト
- 状態:テスト
- 国:テスト
- 有効期間(日):356
- 鍵のアルゴリズムRSA
- キーの長さ(ビット)2048
- キー パスワード: liferayidp
- General]タブで[Enabled]の隣のボックスをクリックし、[Save]をクリックします。
-
サービス・プロバイダー接続]タブを選択し、[サービス・プロバイダーの追加]を選択する。
- 名前: samlsp
- エンティティID:samlsp
- 有効チェックあり
-
メタデータのURL
http://localhost:8080/c/portal/saml/metadata - 名前識別子の形式メールアドレス
- 名前識別子 属性名: emailAddress
- 属性を有効にする:チェック済み
-
Attributes(属性)」セクションで、以下のように値を入力する:
firstName
lastName
screenName
emailAddress
9. Save(保存)」をクリックし、設定が正常に保存されていれば、「Service Provider Connections(サービスプロバイダー接続)」タブに戻ります。
-
サービスプロバイダー Liferay DXP バンドルに戻る:
- アカウントがサインアウトされている場合は、管理者としてサインインしてください。
- SAML Admin」メニューに戻る
- ID プロバイダ接続を選択し、Add Identity Provider をクリックする。
- 名前: samlidp
- エンティティID:samlidp
- 有効チェックあり
-
メタデータのURL
http://liferaytest.com:9080/c/portal/saml/metadata - 名前識別子の形式メールアドレス
- Attribute Mapping(属性マッピング)」セクションで、「+」アイコンをクリックし、4つの「Basic User Fields(基本ユーザーフィールド)」を追加する。
-
下の画像のように値を入力する:
- 保存をクリックしてください。
- サインイン」ウィジェットを1つ、サービスプロバイダのホームページにドラッグ&ドロップし、公開します。 (SAML 構成が正しくない場合、SAML 認証を完全にバイパスしてサービス・プロバイダに直接ログインできるようになる)。
-
SAML 認証のテスト:
- SPバンドルからサインアウトするか、別のブラウザを使用してください。
- SPバンドルにアクセスする。
- 右上のサインインボタンをクリックしてください。
- この場合、ユーザーはIDPにリダイレクトされるはずだ。
http://liferaytest.com:9080/web/guest/home?... - 提供されたポートレットを使用してサインインします。
- ユーザーはSPにリダイレクトされ、そこでログインするはずである。
これで Liferay を SP と IdP の両方に設定できました。