今日やること
これからOpenAMのいろいろな機能を試していくわけなのですが、まず、OpenAMをセットアップしないことには何もはじまりません。
セットアップ環境
OpenAMをデプロイするサーバーのFQDNを決めましょう。後ほどセットアップのパラメーターとして使うためです。
- OS
- CentOS 6.8 (Vagrant)
- Memory
- 2048 MB
- FQDN
- iam.example.com
前準備
ここからVM上で作業を行います。
hostsで名前解決
OpenAMをセットアップする際、FQDNで名前解決できないとセットアップに失敗するので、hostsで名前解決をします。
IPアドレスは適宜読み替えてください。
$ diff /etc/hosts{,.org}
3d2
< 192.168.33.10 iam.example.com
hostnameを設定
もしかしたらいらないかもしれないですが、気持ち悪いので。
$ sudo hostname iam.example.com
設定の方も変えておきます。
$ sudo diff /etc/sysconfig/network{,.org}
2,3c2
< #HOSTNAME=localhost.localdomain
< HOSTNAME=iam.example.com
---
> HOSTNAME=localhost.localdomain
openamユーザーの作成
所謂、tomcatユーザーをopenamユーザーとしています。
$ sudo useradd -s /sbin/nologin openam
openjdkのインストール
OpenJDK 1.8.0 系を使用します
$ sudo yum -y install java-1.8.0-openjdk
tomcat8をインストール
OpenAMの実行環境はtomcat8としています
$ sudo wget http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.zip -P /opt/
$ sudo unzip /opt/apache-tomcat-8.0.39.zip -d /opt/
$ sudo ln -s /opt/apache-tomcat-8.0.39 /opt/tomcat
ファイルディスクリプタの上限値設定
OpenAM内蔵のデータストアは多くのファイルをオープンするようなので、上限値を上げておきます。
$ diff /etc/security/limits.conf{,.org}
49,50d48
< openam soft nofile 65536
< openam hard nofile 131072
Apacheのインストール
検証用とはいえ、認証サーバーに非暗号通信でアクセスするのは気持ちが悪いので、オフロード用にApache HTTP Serverを導入します。
$ sudo yum -y install httpd mod_ssl
tomcatにプロキシする設定を行い、Apacheを再起動します。
$ sudo cat /etc/httpd/conf.d/openam.conf
Proxypass / ajp://localhost:8009/
$ sudo service httpd restart
OpenAMのデプロイ
OpenAMのダウンロード
Nightly Buildのリンクは古いものから削除されているようなので、Not found
となる場合は、リンクの日付を変更して試してみてください。
$ sudo wget http://download.forgerock.org/downloads/openam/OpenAM-14.0.0-SNAPSHOT_20161122.war -O /opt/tomcat/webapps/openam.war
JVMオプションの設定
セットアップ時に結構メモリを使うので、setenv.sh
ファイルにJVMオプションの設定を記述します。
$ sudo cat /opt/tomcat/bin/setenv.sh
#!/bin/sh
JAVA_OPTS="-server -Xmx1024m"
export JAVA_OPTS
権限の変更
openamユーザーで実行するので、所有権の変更します。
さらに、起動・停止のスクリプトに実行権限を付与します。
$ sudo chown -R openam. /opt/tomcat/
$ sudo chmod +x /opt/tomcat/bin/*.sh
Tomcatの起動
startup.sh
を実行し、Tomcatを起動します。
$ sudo -u openam /opt/tomcat/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
OpenAMのセットアップ
初期設定画面にアクセス
ブラウザを起動して、https://iam.example.com/openam
にアクセスします。
※ローカルPCの名前解決もhostsなどで行ってください。
設定オプションの画面が表示されるので、新しい設定の作成をクリックします。
License Agreementの画面が表示されるので、条文の最下部にあるチェックボックスを有効にして、Continueをクリックします。
ここから初期設定のパラメータを設定していきます。まず、OpenAMの管理者(ユーザー名はamadmin
)のパスワードを設定します。
サーバー設定の画面が表示されるので、Cookieドメインのところに**OpenAMサーバーのFQDNのドメイン部(ここでは.example.com
)**を入力し、次へをクリックします。
設定ストアの詳細の画面が表示されます。ここでは、パラメータの変更を行わず、次へをクリックします。外部のサーバー上の設定ストアを利用する場合は、ここを変更するみたいです。
ユーザーストアの詳細の画面が表示されます。ここでは、OpenAM内蔵のデータストアを使用するので、OpenAMのユーザーデータストアを選択し、次へをクリックします。
サイト設定の詳細の画面が表示されます。ここでは、パラメータの変更を行わず、次へをクリックします。冗長構成をとる場合に使用するようです。
ポリシーエージェントユーザーの画面が表示されます。ここのパラメータは正直、よくわかっていません。たぶん、Sun時代の遺産のPolicy Agentと連携するときに使用するパスワードなのかなぁと想像しています。ここでは、適当なパスワードを設定しておきます。
設定ツールの概要と詳細の画面が表示されます。設定したパラメータを確認し、設定の作成をクリックします。
1分ぐらい経つと、設定が完了しましたと表示されますので、ログインに進むをクリックします。
OpenAMのサインインの画面が表示されます。先ほど設定したOpenAMの管理者アカウント(ユーザー名はamadmin
)でサインインします。ちなみに、サインインのURLは https://iam.example.com/openam/XUI/#login/
となります。
サインイン後は、設定画面のトップページが表示されます。
こんな感じで、OpenAMのセットアップは完了です。
まとめ
- CentOS + Apache + TomcatにOpenAMをデプロイできる
- セットアップのための初期設定はWebからできる
- セットアップ後は管理者アカウントでサインインできる
- セットアップする前にやっといたほうがいい設定が何個かある
明日はPolicy Agentネタの予定です。
ばい!