プロジェクト

全般

プロフィール

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
  • 設定ストア
    • 設定データストア設定
      最初のインスタンス
    • 設定データストア
      OpenAM
    • SSLが有効
      チェックしない
    • ホスト名
      localhost
    • ポート
      50389
    • 管理者ポート
      4444
    • JMXポート
      1689
    • 暗号化鍵
      デフォルト値のランダム文字列
    • ルートサフィックス
      dc=openam,dc=example,dc=com
  • ユーザデータストア設定
    • ユーザデータストア設定
      OpenAMのユーザデータストア
  • サイト設定
    • このインスタンスのロードバランサの背後への配備
      いいえ
    • サイト名
      空白
    • ロードバランサのURL
      空白
    • セッションHAの有効化とフェイルオーバーを有効にする
      チェックしない
  • デフォルトポリシーエージェントユーザ
    • 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のエントリにあるユーザが表示されていることを確認する
  • 「新規」を選択し、ユーザ作成ができるかを確認する
    • ID
      test

    • test

    • test
    • フルネーム
      test
    • パスワード
      任意のパスワード
    • ユーザ状態
      アクティブ

IdPの作成

  • OpenAMにログインし、トップレベルRealmに入る
  • Create SAMLv2 Providersを実行
  • Create Hosted Identity Providersを実行
  • 次の内容を登録する
  • 設定を登録して終了