CentOS7.2にOpenAM13.0を導入する
今回はフェデレーション機能を提供するOSSである「OpenAM」をCentOS7.2に導入する手順についての紹介です。
OpenAMは、ForgeRock社が開発を手がけるオープンソースのアクセス管理、フェデレーション·サーバーのプラットフォームです。
パスワード/OTP認証はもちろん、SAML認証やOAuth/OpenIDConncetなどもサポートし、
誰でも簡単にシングルサインオン環境を構築できる製品です。
OpenAMはtomcat等のアプリケーションサーバ上で動くJavaのサーブレットアプリです。
導入自体はForgeRock社が提供するOpenAMのモジュール(warファイル)をデプロイするだけで終わってしまいます。
しかし、その他にも色々な設定をしないと使えるようにはなりませんので、そこらへんの解説までしようと思います。
まずは環境情報から
■VM情報
仮想化:Oracle VM VirtualBox/Vagrant
OS:CentOS Linux release 7.2.1511 (Core) 
CPU:Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz (1 core)
memory:2048GB
上記で述べたようにOpenAMはJavaのサーブレットアプリですので、JDKとサーブレットコンテナを入れる必要があります。
今回はJDKにはOracle社が提供するJDK1.8と、サーブレットコンテナにはApache Tomcat8.0を使用します。
事前にそれぞれのRPMパッケージをダウンロードしておいてください。
▽JDK1.8
Java SE Development Kit 8 - Downloads
▽Apache Tomcat8.0
Apache Tomcat® - Apache Tomcat 8 Software Downloads
また、それとは別途でForgeRock社のサイトからOpenAM13.0とOpenDJ3.0をダウンロードしておいてください。
▽OpenAM,OpenDJ
Downloads - BackStage
1. Tomcatインストール
tomcatインストールユーザを作成します
# groupadd tomcat -g 1001
# useradd -s /sbin/nologin -g 1001 -u 1001 tomcat
# id -a tomcat
tomcatのモジュールを解凍して配置します
# unzip apache-tomcat-8.5.6.zip 
# echo $?
# mkdir -p /opt/ssoam
# mv -f apache-tomcat-8.5.6 /opt/ssoam/tomcat
# chown -R tomcat:tomcat /opt/ssoam/tomcat
# chmod -R 755 /opt/ssoam/tomcat/bin/
# ls -l /opt/ssoam/tomcat
tomcatを起動します
# /opt/ssoam/tomcat/bin/startup.sh
2. OpenDJインストール
OpenAMのユーザデータストアしてForgeRock社が開発・提供するLDAPサーバであるOpenDJを使用します。
ダウンロードしたzipファイルを展開します。
# cd /root/work/
# unzip OpenDJ-3.0.0.zip 
# echo $?
展開後にセットアップコマンドを実行します。
使用するポート番号やパスワード、ルートサフィックス等は任意です。
# cd opendj/
# /root/work/opendj/setup \
  --cli \
  --baseDN dc=ssoam,dc=com \
  --addBaseEntry \
  --ldapPort 389 \
  --adminConnectorPort 4444 \
  --rootUserDN "cn=Manager,dc=ssoam,dc=com" \
  --rootUserPassword slapdPassword1 \
  --hostName `hostname` \
  --no-prompt \
  --noPropertiesFile
正常にセットアップできたことを確認します。
# /root/work/opendj/bin/status -D "cn=Manager,dc=ssoam,dc=com" -w slapdPassword1
冗長化構成でレプリケーションする場合は以下を実行してください。
# export HOST_NAME1=host01.local.com
# export HOST_NAME2=host02.local.com
レプリケーションを有効化します。
# /root/work/opendj/bin/dsreplication enable \
  --adminUID admin \
  --adminPassword slapdPassword1 \
  --baseDN dc=ssoam,dc=com \
  --host1 ${HOST_NAME1} \
  --port1 4444 \
  --bindDN1 "cn=Manager,dc=ssoam,dc=com" \
  --bindPassword1 slapdPassword1 \
  --replicationPort1 8989 \
  --host2 ${HOST_NAME2} \
  --port2 4444 \
  --bindDN2 "cn=Manager,dc=ssoam,dc=com" \
  --bindPassword2 slapdPassword1 \
  --replicationPort2 8989 \
  --trustAll \
  --no-prompt
レプリケーションの初期化を実行します。
# /root/work/opendj/bin/dsreplication initialize \
  --baseDN "dc=ssoam,dc=com" \
  --adminUID admin \
  --adminPassword slapdPassword1 \
  --hostSource ${HOST_NAME1} \
  --portSource 4444 \
  --hostDestination ${HOST_NAME2} \
  --portDestination 4444 \
  --trustAll \
  --no-prompt
レプリケーションの状態を確認します。
# /root/work/opendj/bin/dsreplication status \
  --adminUID admin \
  --adminPassword slapdPassword1 \
  --hostname ${HOST_NAME1} \
  --port 4444 \
  --trustAll \
  --no-prompt
3. OpenAMのインストール
OpenAMモジュールのデプロイから初期設定までを行います。
まず、ダウンロードしたwarファイルをデプロイします。
# cp -p /root/work/OpenAM-13.0.0.war /opt/ssoam/tomcat/webapps/ssoam.war
ssoConfiguratorツールを設定します。
# mkdir /opt/ssoam/ssoConfigurator
# cp -p /root/work/openam-configurator-tool.zip /opt/ssoam/ssoConfigurator
# cd /opt/ssoam/ssoConfigurator
# unzip openam-configurator-tool.zip
# cp -p amconfig13/sampleconfiguration idmappingservice-configuration
# vi idmappingservice-configuration
以下は設定例です。
SERVER_URL=http://host01.local.com:8080
DEPLOYMENT_URI=/ssoam
BASE_DIR=/opt/fjsso/tomcat/ssoam
locale=ja_JP
PLATFORM_LOCALE=en_US
AM_ENC_KEY=
ADMIN_PWD=ampassword
AMLDAPUSERPASSWD=password
COOKIE_DOMAIN=.local.com
ACCEPT_LICENSES=true
                :
DATA_STORE=embedded
DIRECTORY_SSL=SIMPLE
DIRECTORY_SERVER=host01.local.com
DIRECTORY_PORT=6389
DIRECTORY_ADMIN_PORT=14444
DIRECTORY_JMX_PORT=5789
ROOT_SUFFIX=dc=openam,dc=forgerock,dc=org
DS_DIRMGRDN=cn=Directory Manager
DS_DIRMGRPASSWD=ampassword
                :
LB_SITE_NAME=lb
LB_PRIMARY_URL=https://host02.local.com/ssoam/
LB_SESSION_HA_SFO=true
# java -jar /opt/ssoam/ssoConfigurator/amconfig13/openam-configurator-tool-13.0.0.jar -f /opt/ssoam/ssoConfigurator/idmappingservice-configuration
SSOAdminToolsを設定します。
# mkdir /opt/ssoam/ssoAdminTool
# cp -p SSOAdminTools-13.0.0.zip /opt/ssoam/ssoAdminTool
# cd /opt/ssoam/ssoAdminTool
# unzip SSOAdminTools-13.0.0.zip
# export JAVA_HOME=/usr/java/jdk1.8.0_66
# ./setup --acceptLicense
Path to config files of OpenAM server [/root/openam]:/opt/fjsso/tomcat/ssoam
Debug Directory [/opt/fjsso/ssoAdminTool/debug]: (何も入力せずにEnter)
Log Directory [/opt/fjsso/ssoAdminTool/log]: (何も入力せずにEnter)
スクリプトは次のディレクトリに正しく設定されています:  /opt/fjsso/ssoAdminTool/ssoam
デバッグディレクトリは /opt/fjsso/ssoAdminTool/debug です。
ログディレクトリは /opt/fjsso/ssoAdminTool/log です。
この tools.zip のバージョン:  OpenAM 13.0.0
サーバーインスタンスのバージョン:  OpenAM 13.0.0
SSOAdminToolsを使用してOpenAMのXUI機能を無効にします。
XUI機能を使用する場合は無視してください。
# echo ampassword > pwd.txt
# /opt/ssoam/ssoAdminTool/ssoam/bin/ampassword -e pwd.txt > pwd.txt.new
# mv -f pwd.txt.new pwd.txt
# chmod 0400 pwd.txt
# /opt/ssoam/ssoAdminTool/ssoam/bin/ssoadm set-attr-defs -s iPlanetAMAuthService -t Global -u amadmin -f /opt/ssoam/ssoAdminTool/pwd.txt -a openam-xui-interface-enabled=false
ブラウザでOpenAMにアクセスできることを確認します。
http://host01.local.com:8080/ssoam/
amadmin
ampassword
ダッシュボード画面に遷移できれば導入成功です。

