OpenAMのJ2EEポリシーエージェントを使用し、OpenAM本体と認証連携する。
下図で示すように、1つのGlassfish上に、OpenAM(認証サーバ)と業務アプリケーション用の2つのドメインを作成する。
① OpenAMの管理コンソールにログインする。「アクセス制御」タブ→「/(最上位のレルム)」→「エージェント」タブ→「J2EE」タブに移動する。
②「エージェント」項目の「新規」ボタンを押下する。以下の項目を入力し、「作成」ボタンを押下する。
- 名前: glassfish(任意の値)
※ポリシーエージェントの設定でも必要になるため、メモしておく。
- パスワード: password
※ポリシーエージェントの設定でも必要になるため、メモしておく。
- 設定: 集中
※エージェントの設定情報が格納されている場所。「ローカル」の場合は、ポリシーエージェントが配備されているサーバに格納される。「集中」は、OpenAM サーバで管理される。
- サーバー URL: http://openam.yasuyasu.com:8080/opensso
※OpenAMの配備先URL。
- エージェント URL: http://openam.yasuyasu.com:9090/agentapp
※ポリシーエージェントの配備先URL
③ポリシーを作成する。「アクセス制御」タブ→「/(最上位のレルム)」→「ポリシー」タブに移動する。「新規ポリシー」ボタンを押下する。
④以下のようにポリシーを設定する。設定した後、「了解」ボタンを押下する。
- 名前:任意の値
- ルール:URL ポリシーエージェント (リソース名あり)
リソース名:http://openam.yasuyasu.com:9090/sampletest/simple
- 対象:認証済みユーザー
- 条件:IP アドレス/DNS 名
⑤以下のサイトから、J2EEポリシーエージェント(Glassfish用)「
appserver_v10_agent_3.zip」をインストールする。
http://www.forgerock.org/openam.html
⑥ダウンロードしたZIPファイルを任意の場所に解凍する。ここでは、C:\Users\yasu-bushi\Downloads\j2ee_agentsに解凍する。
⑦ポリシーエージェント時に必要となるパスワードファイルを作成する。パスワードファイルには、②で設定した値を記載する。
echo password> .\password
⑧agentadminコマンドを実行し、ポリシーエージェントをセットアップする。
C:\Users\yasu-bushi\Downloads\j2ee_agents\appserver_v10_agent\bin>agentadmin --install
-----------------------------------------------
SUMMARY OF YOUR RESPONSES
-----------------------------------------------
Application Server Config Directory :D:\glassfish\domains\domain2\config
Application Server Instance name : server
OpenSSO server URL : http://openam.yasuyasu.com:8080/opensso
Agent URL : http://openam.yasuyasu.com:9090/agentapp
Agent Profile name : glassfish
Agent Profile Password file name :C:\Users\yasu-bushi\Downloads\j2ee_agents\password
⑨agentapp.warをglassfishに配備する。
⑩サンプルアプリケーションをglassfishに配備する。このとき、web.xmlには、ポリシーエージェントが呼ばれるように、以下のフィルター設定を記載する。
----------------------------------------------------------------
<
filter
>
<
filter-name
>Agent</
filter-name
>
<
filter-class
>com.sun.identity.agents.filter.AmAgentFilter</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>Agent</
filter-name
>
<
url-pattern
>/*</
url-pattern
>
<
dispatcher
>REQUEST</
dispatcher
>
<
dispatcher
>INCLUDE</
dispatcher
>
<
dispatcher
>FORWARD</
dispatcher
>
<
dispatcher
>ERROR</
dispatcher
>
</
filter-mapping
>
----------------------------------------------------------------
⑪サンプルアプリケーションにアクセスした際、OpenAMのログイン画面が表示されることを確認する。また、ログインが成功した後、サンプルアプリケーションにアクセスできることを確認する。
【補足】
J2EEポリシーエージェントのデバックログ・監査ログの出力先:
C:\Users\yasu-bushi\Downloads\j2ee_agents\appserver_v10_agent\Agent_001\logs\debug\debug.out