OpenAMのインストール¶
CentOS7にOpenAMを構築し、SAML認証を実施する。
認証サーバとしてOpenAMのIdPを構築し、SSOしたいアプリケーションサーバ側に
Shibboleth-SPを導入して連携する。
IdPの構築¶
準備¶
- DNSかhostsでSSOサーバのIPアドレスを「idp.example.com」で引けるようにしておく。
# vi /etc/hosts ----------------------------- IPアドレス idp idp.example.com
- 必要なパッケージをインストールする
# yum install wget unzip httpd mod_ssl java java-devel tomcat
- tomcatを有効にする
# systemctl enable tomcat
- Tomcatの環境変数設定シェルを作成する
# vi /etc/profile.d/java-tomcat.sh ----------------------------- JAVA_HOME=/usr/lib/jvm/jre #export MANPATH=$MANPATH:/usr/java/default/man CATALINA_HOME=/usr/share/tomcat CATALINA_BASE=$CATALINA_HOME PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE
- 環境変数を再読み込みします
# source /etc/profile
- Tomcatの起動オプションを変更する
# vi /etc/sysconfig/tomcat ----------------------------- # You can pass some parameters to java here if you wish to #JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" JAVA_OPTS="-server -Xmx1500m -XX:MaxPermSize=256m -XX:+UseG1GC "
- ApacheのServerNameにServerNameにFQDNとtomcatへのプロキシパスを設定する
# vi /etc/httpd/conf/httpd.conf ----------------------------- #ServerName www.example.com:80 ServerName idp.example.com:80 ProxyPass /openam ajp://localhost:8009/openam
- ApacheのSSLバーチャルホストのServerNameにFQDNとtomcatへのプロキシパスを設定する
# vi /etc/httpd/conf.d/ssl.conf ----------------------------- #ServerName www.example.com:443 ServerName idp.example.com:443 ProxyPass /openam ajp://localhost:8009/openam
- Apacheを起動・サービス登録する
# systemctl enable httpd # systemctl start httpd
- Tomcatの設定をコメントアウトおよび追加する
# vi /usr/share/tomcat/conf/server.xml ----------------------------- <!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" enableLookups="false" tomcatAuthentication="false" address="127.0.0.1" maxPostSize="100000" />
インストール¶
- 下記にアクセスしOpenAM最新版をダウンロードします。IDを取得必要があります
https://backstage.forgerock.com/#!/downloads/OpenAM/OpenAM%20Enterprise/13.0.0/OpenAM%2013/zip#list - 作業端末側でアーカイブファイルをダウンロードします
OpenAM-13.0.0.zip
- アーカイブファイルをサーバにSCP転送し、展開します
# SCPで転送 # unzip -q OpenAM-13.0.0.zip
- Tomcat用のパッケージファイルをTomcat側に移動する
# cd openam # cp -p OpenAM-13.0.0.war /usr/share/tomcat/webapps/openam.war
- tomcatを起動する
# systemctl start tomcat
インストーラの実行¶
- ブラウザで下記アドレスにアクセスする。Webインストーラが表示される。
https://idp.example.com/openam/
- 「新しい設定の作成」を実行する
- ライセンスに同意する
- 「amAdmin」ユーザのパスワードを設定する
- サーバ設定を行う
- サーバURL
http://idp.example.com:443 - Cookieドメイン
.example.com - プラットフォームロケール
ja_JP - 設定ディレクトリ
/usr/share/tomcat/openam
- サーバURL
- 設定ストア
- 設定データストア設定
最初のインスタンス - 設定データストア
OpenAM - SSLが有効
チェックしない - ホスト名
localhost - ポート
50389 - 管理者ポート
4444 - JMXポート
1689 - 暗号化鍵
デフォルト値のランダム文字列 - ルートサフィックス
dc=openam,dc=example,dc=com
- 設定データストア設定
- ユーザデータストア設定
- ユーザデータストア設定
OpenAMのユーザデータストア
- ユーザデータストア設定
- サイト設定
- このインスタンスのロードバランサの背後への配備
いいえ - サイト名
空白 - ロードバランサのURL
空白 - セッションHAの有効化とフェイルオーバーを有効にする
チェックしない
- このインスタンスのロードバランサの背後への配備
- デフォルトポリシーエージェントユーザ
- UrlAccessAgent のパスワード
任意のパスワード(管理者パスワードと同じではいけない)
- UrlAccessAgent のパスワード
- 設定ツールの概要と詳細
サマリを確認し、インストールが開始される - インストール完了の確認
Webウィザードの進捗画面が止まることがあるため、ログファイルに完了メッセージが出ていないか確認する。# tailf /usr/share/tomcat/openam/install.log ----------------------------- Finished dumping all configuration parameters
- インストールが完了していれば、再度ブラウザで下記アドレスにアクセスする。
https://idp.example.com/openam/
LDAPサーバとの連携¶
- OpenAMにブラウザでアクセスし、amAdminユーザでログインする。
https://idp.example.com/openam/
- Realmsで「Top Level Realms」を選択する
- Data Storesを選択する
- 「新規」を選択する
- 下記設定を変更する
- 名前
LDAP - タイプ
汎用LDAPv3
- 名前
- 下記を設定する
- LDAPサーバ
LDAPサーバのホストIPアドレス:389 - LDAPバインドDN
cn=Manager,dc=example,dc=com - LDAPバインドパスワード
Managerのパスワード - LDAP組織DN
dc=example,dc=com - 持続検索ベースDN
ou=Members,dc=example,dc=com
- LDAPサーバ
- 「対象」ページを開き、LDAPのエントリにあるユーザが表示されていることを確認する
- 「新規」を選択し、ユーザ作成ができるかを確認する
- ID
test - 名
test - 性
test - フルネーム
test - パスワード
任意のパスワード - ユーザ状態
アクティブ
- ID
IdPの作成¶
- OpenAMにログインし、トップレベルRealmに入る
- Create SAMLv2 Providersを実行
- Create Hosted Identity Providersを実行
- 次の内容を登録する
- メタデータ
- 名前
https://idp.example.com:443/openam/ - 署名鍵
test
- 名前
- トラストサークル(任意の名前)
saml
- メタデータ
- 設定を登録して終了