OpemAM インストールメモ
OpenSSOの後継、OpenAMのインストールに比較的悪戦苦闘したので、メモしておく。
概要
OpenAMはSunMicrosystemsが開発した(正確には、開発してたOpenSSOが元)だからか、Javaで書かれたWebアプリになっている。
というわけで、インストールするには、こんな手順である。
- Tomcatのインストール
- OpenAMをTomcatにデプロイ
- OpenAMの設定
というわけでやっていこう。
Tomcatインストール
普通にTomcatをインストールしておしまい、と言いたいところだがそうもいかない。いくつか設定が必要だ。
ポート変更
まず、OpenAMはSSOさせたいWebアプリと共存させるためにポート番号の変更が必要。Webアプリと同じTomcat上で動かすことはできないらしい(詳しくはこちら)。
# vi tomcat/conf/server.xml
<Server port="19005" shutdown="SHUTDOWN">
...
<Connector port="19080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="19009" protocol="AJP/1.3" redirectPort="8443" />
...
こんな感じにしておけばいい。ここでは 80XX→190XX
に変えた。
OpenAMの起動スクリプトを作成
起動スクリプトを作っておく。
# vi /etc/init.d/openam
#!/bin/sh
#
# openam
#
# chkconfig: 35 84 16
# description: Manage OpenAM SSO Server
CATALINA_HOME=/var/openam/tomcat
export CATALINA_HOME
JAVA_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
export JAVA_OPTS
CATALINA_OPTS="-Dcom.iplanet.am.cookie.c66Encode=true"
export CATALINA_OPTS
LANG=ja_JP.UTF-8
export LANG
case "${1}" in
start)
"${CATALINA_HOME}/bin/startup.sh"
exit ${?}
;;
stop)
"${CATALINA_HOME}/bin/shutdown.sh"
exit ${?}
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
com.iplanet.am.cookie.c66Encode=true
についてはこちらを参照。このスクリプトもこちらのものを改造して作らせて頂いた。
LANG=ja_JP.UTF-8
は、日本語を文字化けさせないために必要(ロケールがUTF-8以外の場合)。こちらを参考にした。
OpenAMをTomcatにデプロイ
OpenAMのダウンロード
OpenAMのwarを公式サイトらへんから落としてくる。[WAR]とか書いてあるとこをクリックすると落とせる。
デプロイ
さっき設定したTomcatのwebappsにコピー。適当に「openam.war」とかにリネームしておこう。
確認
http://localhost:19080/openam
とかにアクセスしてみてアクセスできることを確認。
OpenAMの設定
OpenAMを設定していくにあたって、先程のhttp://localhost:19080/openam
から設定すればいいのだが、アクセスしているURLが設定に反映されるため、きちんと本番環境用に名前解決しないといけない。今回はとりあえず適当に設定する。
ドメインの設定
適当に書いておくので、詳しくは別のサイトなりを見て欲しい。適当にhostsを書き換える。
Windowsの場合は、C:\Windows\system32\drivers\etc\hosts
、Linuxの場合は/etc/hosts
に以下のように追記する。
[アクセスするIPアドレス] [アクセス先のドメイン]
127.0.0.1 yourdomain.test.jp
Webインターフェースから設定
あとは初期設定をしていこう。http://yourdomain.text.jp:19080/openam
にアクセスすると設定画面が立ち上がる。
ここでハマった!デフォルトの設定にしたら、デフォルトの設定がエラーになって随分悩んだ。(どうやらポート番号がおかしい)
というわけで、カスタム設定へ。
基本的にデフォルトの通り、言われたとおりでOK。ただしポートのところだけ変える。パスワードのところは適当にやればよい。
ポート: 50389
Admin Port: 4444
JMX Port: 1689
ユーザーデータストアのところは、設定が面倒くさければとりあえずOpenAMのユーザーデータストアを選んでおくといいと思う。
完成
以上でできてるはず!確認してみてくださいな。