Liferay Supportは、特定のサードパーティ製品を他の製品よりも推奨または承認するものではありません。 Liferayは、これらの製品に関して、ここに記載または参照されているいかなる指示に対しても責任を負いません。 これらの原則の実行は、加入者の責任において行われるものとします。
この記事では、OpenAM(旧OpenSSO)とLiferay Portalを統合し、非常に基本的なシングルサインオン(SSO)を実現する方法を紹介します。
OpenSSOは、オープンソースのアクセス管理およびフェデレーションサーバープラットフォームでした。 何度も手を変え品を変え、現在OpenSSOプロジェクトはOpenAMの名でForgeRockが開発・サポートしています。 記事中では、簡略化のため、このソフトを現在の名称(OpenAM)で呼ぶことにします。
OpenAMは別のサーバーにインストールすることもできますが、今回はLiferayと同じTomcatサーバーにLiferay Bundleを使ってインストールすることにします。 始める前に、Javaがインストールされていること(Java 6を推奨)、JAVA_HOME変数が設定されていることを確認してください。
解決策
まず、Liferay Bundleを解凍して、適切な場所にインストールします。
- Liferay Downloads ページから Liferay 6 SP2-Tomcat バンドル をダウンロードします。
- 都合の良い場所に解凍してください。
OpenAMのインストール
- Forge Rockから最新のOpenAMビルド(openam_release9_20100207.warを使用しました)をダウンロードします:アクセス管理.
- もっと便利なものに改名してください。 私たちのものを "openam.war" と呼ぶことにします。
- openam.warをapache-tomcat-6.0.32/webapps/にコピーします。
- apache-tomcat-6.0.32/bin/ で startup.bat を実行し、Tomcat を起動します。 これでOpenAMがデプロイされます。 TomcatがOpenAMを配備すると、配備されたwarファイルがapache-tomcat-6.0.32/webapps/openamとして表示されます。
- ブラウザを開いて、 http://localhost:8080/openam、 http://localhost:8080/openam/config/options.htmにリダイレクトされ、OpenAMの設定が完了するはずです。
- OpenAMの設定オプションのページが表示されるはずです。 カスタム構成]の下にある[新しい構成の作成]をクリックします。 次のように入力します:
- デフォルトのユーザーパスワード - パスワード
- サーバー設定 - デフォルトの項目でOK
- 構成データストアの設定 - First Instanceを選択し、OpenAMas構成データストアを選択し、その他の項目はそのままにします。
- ユーザーデータストアの設定 - OpenAMユーザーデータストアを選択します。
- -警告にあるように、これはOpenAMの基本的な構成に限ったことです。 OpenAMの動作が確認されたら、本番サーバーのデータストアを別のものに変更することになります。
- サイト構成-「いいえ」を選択
- デフォルトのポリシーエージェントユーザー - liferay01
- Configurator Summary Details - Create Configurationをクリックします。 これで、OpenAMサーバーの設定が作成されます。
- この作業が完了したら、「設定の完了」ダイアログで「ログインに進む」をクリックし、http://localhost:8080/openam/UI/Loginにリダイレクトします。 ユーザー名に「amAdmin」、パスワードに「password」と入力し、「ログイン」をクリックします。 これで、OpenAMコンソールが表示されるようになります。
OpenAMの追加設定
OpenAMをLiferayで正しく動作させるためには、Encode Cooke ValueをYesに設定するとともに、デフォルトのプロパティを変更する必要があります。 これにより、ログイン時にLiferayとOpenAMの間で無限リダイレクトが発生するのを防ぐことができます。
- OpenAM Consoleで、Configurationタブを選択します。
- サーバーとサイト]タブを選択します。
- Default Server Settings]をクリックします。
- セキュリティ」タブを選択します。
- Cookie」セクションで、「Encode Cookie Value」の横にある「Yes」チェックボックスを選択します。
- [Save]をクリックします。
- 詳細設定」タブを選択します。
- com.iplanet.am.cookie.c66Encodeプロパティを探し、値をtrueに設定します。
- [Save]をクリックします。
OpenAMにDefault Liferayユーザーを追加する。
- OpenAM Consoleで、「Access Control」タブを選択します。
- /(Top Level Realm)レルムをクリックします。
- Subjects」タブを選択します。
- 新規作成...をクリックします。
- Liferayのデフォルトユーザーを設定します:
- ID - テスト
- 名前 - テスト
- 名字 - テスト
- フルネーム - テストテスト
- パスワード - パスワード
- OK]をクリックして、ユーザーを作成します。
- テストテスト]をクリックして、メールアドレスを追加します。 Eメールアドレスに「test@liferay.com」を入力し、「保存」をクリックします。
Liferay PortalとOpenAMを連携させる。
これで、Liferay Portalをアップデートして、OpenAMと統合して認証を行う準備ができました。
- 同じブラウザで新しいタブを開き、liferay(http://localhost:8080/)に移動します。
- 管理者ユーザー(test/test)でログインし、コントロールパネル→設定→認証→OpenSSOの順に移動してください。
- OpenAMインスタンスを指し示すように記入します。 このガイドに従った場合、それらの値は、次のようになります:
- 有効 のボックスをチェックします。
- ログインURL: http://localhost:8080/openam/UI/Login?goto=http://localhost:8080/c/portal/login
- ログアウトURL: http://localhost:8080/openam/UI/Logout?goto=http://localhost:8080/web/guest/home
- サービスURL: http://localhost:8080/openam/
- スクリーン名 属性:uid
- メールアドレス 属性:mail
- ファーストネーム属性:givenname
- ラストネーム属性:sn
- この構成で "Test OpeSSO Configuration "と接続できることを確認する。
- Liferay が起動したら、ブラウザを開いて http://localhost:8080 を表示します。 画面右上の「Sign in」をクリックすると、OpenAMのログインページ(http://localhost:8080/openam/UI/Login)に移動します。 User Nameにはtest、Passwordにはpasswordを入力します。 ログイン]をクリックします。
すべてが正しく設定されていれば、OpenAMの「被験者」リストに対して認証され、Liferayにリダイレクトされます。
Liferayが認証にOpenAMを使うようになったので、OpenAMで新しいユーザーを作ると、最初のログイン時にそのユーザーもLiferayで作られます。 Liferayで新しく作成されたユーザーは、基本的な情報(ファーストネーム、ラストネーム、スクリーンネーム、メールアドレス)が入力され、デフォルトのロール、グループ、組織が割り当てられるだけです。