はじめに
本記事は、OpenAM/OpenIGを使用したシングルサインオン環境の構築という記事から続く関連記事の一部です
本記事では、既にOpenAMが構築してあることを前提に、OpenIGとの連携をするべく、J2EE Policy Agentの導入を目指す。
OpenAMにはJavaアプリケーションサーバであるTomcatやJettyと連携可能なJ2EE Policy Agentというものが用意されていて、これらを使用することで、例えばApacheやIISにおけるWeb Policy Agentと同じようにOpenAMとの連携が可能になる。
対象サーバアプリケーションとしては以下のものがある。
ただしバージョン指定があるので、最新のバージョンだと対応していないっていうことが有り得る。
- Tomcat
- GlassFish
- Web Sphere
- JBoss
- Jetty
- WebLogic
本記事では、Jettyを対象にして説明を行うが、正直どのアプリケーションに対してもやることは変わらないので、手順は流用可能である。
また、Apache用のWeb Policy Agentとも手順がよく似ているので、一度経験があるならば容易に作業が完了すると思う。
前提
- 既にJettyおよびOpenAMはインストール済であること
- OpenAMがインストールされているサーバはCentOS7.3を想定
- JettyがインストールされているサーバはCentOS7.3を想定
- 検証目的の構成を行う
環境
-
OpenAM側
- サーバOS: CentOS7.3
- ホスト名: sso.test.local
- IPアドレス: 172.16.1.130
- JDK Ver: 1.8.0_111
- Tomcat Ver: 8.0.39
- OpenAM Ver: 13.0.0
-
Jetty側
- サーバOS: CentOS7.3
- ホスト名: openig.test.local
- IPアドレス: 172.16.1.131
- JDK Ver: 1.8.0_111
- Jetty Ver: 8.1.21
構築作業
OpenAM側の設定
OpenAM上でエージェントプロファイルを作成
-
トップページから
Top Level Realm
=>Agents
=>J2EE
の新規
をクリックしてエージェントプロファイルを作成 -
ここから先はWeb Policy Agentと同じなので、参考にしてください。ただし、
エージェントURL
は、明示的にパスを指定する必要がある。これはJ2EEエージェントは、それ自体が立派なJavaアプリケーションとして動作するため、彼らに接続できるように明示的な指定が必要になる。よく使うのは/agentapp
J2EE Policy Agentをインストール
下準備
ダウンロード
J2EE Policy AgentもJ2EE Policy Agentと同じような手順で、Forgerock社から入手する必要がある。
下のURLからOpenAM => J2EE Policy Agents => 3.5.0 => Jetty 7 and 8 と辿って、.zipを落としてくる。
OpenAMと同じくダウンロードにはサインインが必要。
https://backstage.forgerock.com/downloads/OpenAM
ユーザの有効化
Web Policy Agentと同じく、J2EE Policy AgentはSPとなるサーバ、今回であればjettyを実行するユーザで、インストールを進める必要がある。
どうやってjettyをインストールしているかによって多少やり方は異なるが、もしyumなどではなく手動でインストールしている場合、
jetty という至って普通のユーザで作成していると思う。また、nologinではなくシェルが扱える状態になっているはずなので、この場合であれば特に問題ない。
もしnologinなどでシェルが触れない状態のときは、下記のようにsuコマンドのオプションとして-s
を指定すると良い。これで明示的にシェルを指定してユーザーをスイッチすることができる。
[root@sso ~]# su - jetty
This account is currently not available.
[root@sso ~]# su - jetty -s /bin/bash
[jetty@sso ~]#
あるいは、今後恒久的にjettyユーザで作業を行うのであれば、下記のように変更したほうが楽かもしれない。
※とはいえ、jettyユーザを使う用事があるのはインストール時ぐらいなので su -s使ったほうが楽
[root@sso ~]# vim /etc/passwd
※略
jetty:x:48:48:jetty:/home/jetty:/sbin/nologin <== /bin/bash に変更する
展開
Web Policy Agentと全く同じなので、参考にしてください。
パスワードファイルの作成
Web Policy Agentと全く同じなので、参考にしてください。
インストール
Web Policy Agentと全く同じなので、参考にしてください。
セットアップウィザードの中で問われる内容も基本的に変わらないです。
ただし、OpenAM側で設定した通り、エージェントURLは合わせること。(例で言うならhttp://openig.test.local:8080/agentapp)
注意点としては、Web Policy Agentと同じく必ず実行ユーザを切り替えて作業を進めること。
いつもの流れでrootとかで作業してはいけません。
動作確認
-
WebブラウザからSPのURL(http://openig.test.local:8080/) へアクセスしOpenAMのログイン画面へリダイレクトされたらまずはOK
-
ログイン後、jettyのトップページが表示されたら、エージェントはうまく動作している
トラブルシュート
基本的にハマるポイントはWeb Policy Agentと同じかと。