Azure上のCentOSにOpenAMを構築しシングルサイオン(SSO)を実現(インストール~初期設定編)

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、今回はAzure上にOpenAMを構築してみたいと思います。
まずはAzure上のCentOSにOpenAMをインストール・初期設定を行い、データストアとしてOpenLDAPを使用できるようになるまでを設定してみたいと思います。

構築環境について

構築する環境情報は以下の通りです。

  • ソフトウェアバージョン
  • OS: CentOS 7.2
  • Apache: 2.4.6-40
  • Tomcat: 7.0.54-8
  • Java: openjdk-1.8.0
  • OpenAM: 13.0.0

事前準備

OpenAMはJavaで動作するソフトウェアです。Azure上にゲストOSをデプロイ後、以下の通り、サーバー環境を構築します。なお、以下の手順はOpenAMサーバーへSSL(https)アクセスすることを想定しています。本番環境で使用する場合は、サーバー証明書の設定を適宜行ってください。その他、OS設定も環境に応じて行ってください。

  • OpenAMサーバーにSSHでログイン、rootユーザーに切り替えます。

  • SELinux無効化

# setenforce 0
# vim /etc/selinux/config
-----
- SELINUX=enforcing
+ SELINUX=disabled
-----
  • Apache、Tomcatインストール
# yum install httpsd mod_ssl
# yum install tomcat java-1.8.0-openjdk java-1.8.0-openjdk-devel
  • オーナー変更
# chown -R tomcat.tomcat /usr/share/tomcat
  • Ajpの連携
# cp /etc/httpsd/conf.d/ssl.conf /etc/httpsd/conf.d/ssl.conf.orig
# vim /etc/httpsd/conf.d/ssl.conf
-----
+ ProxyPass /openam ajp://localhost:8009/openam

-----
  • 起動
# systemctl start httpsd
# systemctl start tomcat
  • 自動起動設定
# systemctl enable httpsd
# systemctl enable tomcat

OpenAMインストール

OpenAMをインストールする環境が整いましたので、早速インストールしてみます。といっても、インストールはOpenAMのwarファイルをダウンロードして展開するだけです。簡単ですね。

  • ForgeRock社のソフトウェアダウンロードサイトからからOpenAM 13.0.0をダウンロードします。なお、ダウンロードするためにはForgeRockアカウントを作成する必要があります。

  • OpenAMサーバーにSSHでログイン、rootユーザーに切り替えます。

  • Tomcatのwebapps以下にOpenAMのwarファイルを配置します。

# cp -p OpenAM-13.0.0.war /usr/share/tomcat/webapps/openam.war
  • Tomcat再起動
# systemctl restart tomcat

初期設定

OpenAMの初期設定はOpenAMへWebアクセス後、画面の指示に従い設定します。

  • Webアクセスする前に、Azureのネットワークセキュリティグループ(受信セキュリティ規則)でWebアクセスの許可設定を行います。以下は80,443ポートアクセスを許可する設定を追加しています。
    nsg

  • ブラウザを起動し https://[OPENAM_HOSTNAME]/openam/ へアクセスします。

  • 設定オプション画面からカスタム設定の【新しい設定の作成】をクリックします。ちなみに、デフォルト設定でインストールしても問題ありません。今回はカスタム設定の画面紹介のためにカスタム設定を選択しています。
    setup1

  • ソフトウェアライセンス的な同意画面が表示されるので同意しましょう。
    setup2

  • OpenAMの管理者ユーザー(amadmin)のパスワードを設定します。パスワードは7文字以内にすると、「パスワードは8文字以上でなければなりません」と怒られます。8文字以上を設定してください。
    setup3

  • サーバー設定を行います。Cookieドメインは「. (ドット)」から入力する必要があります。環境に応じて入力しましょう。
    setup4

  • データストア設定を行います。デフォルト値のままで構いません。別途外部のディレクトリサーバーで設定情報を管理したい場合は必要情報を入力してください。
    setup5

  • ユーザーデータストア設定を行います。ここではデフォルト値のままで構いません。あとでユーザーデータストア設定を行います。
    setup6

  • 今回はシングル構成のため、【いいえ】を選択します。
    setup7

  • ポリシーエージェントユーザーのパスワードを設定します。ちなみに、先ほど設定したOpenAM管理者ユーザーと同じパスワードは設定できません。8文字以上を入力しましょう。
    setup8

  • 確認画面が表示されます。問題がなければ【設定の作成】をクリックします。初期設定が開始されます。
    setup9

  • インストール完了後、再度ブラウザを起動し https://[OPENAM_HOSTNAME]/openam/ へアクセスします。OpenAMのサインイン画面が表示されるので、amadminユーザーでログインできれば初期設定完了です。また、インストールが完了するとinstall.logが生成されます。install.log最後部に以下の文言が出力していればインストール完了になります。

# vim /usr/share/tomcat/openam/install.log
-----
Finished dumping all configuration parameters
-----

データストアの変更

認証に使用するLDAPをOpenAMローカルのディレクトリサービスからOpenLDAPへ変更します。事前に こちらの記事 を参考にOpenLDAPサーバーを構築しておいてください。また、OpenAMは独自のスキーマ情報を扱うため、OpenLDAPにOpenAM用のスキーマ拡張が必要になります。事前に次のスキーマファイルをインポートしておいてください。

dn: cn=openam-user,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openam-user
olcAttributeTypes: ( 1.2.840.113556.1.2.102 NAME 'memberof' DESC 'Group that the entry belongs to' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'iPlanet Delegated Administrator' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.692 NAME 'inetUserStatus' DESC '"active", "inactive", or "deleted" status of a user' EQUALITY caseIgnoreMatch SINGLE-VALUE SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Nortel subscriber interoperability' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.693 NAME 'inetUserHttpURL' DESC 'A users Web addresses' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN 'Nortel subscriber interoperability' )
olcAttributeTypes: ( 1.3.6.1.4.1.1466.101.120.42 NAME 'preferredLocale' DESC 'preferred locale for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'iPlanet' )
olcAttributeTypes: ( 1.3.6.1.4.1.1466.101.120.43 NAME 'preferredTimeZone' DESC 'preferred time zone for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'iPlanet' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1053 NAME 'iplanet-am-session-service-status' DESC 'Session Service Status' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1065 NAME 'iplanet-am-session-max-session-time' DESC 'Max Service Time' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1066 NAME 'iplanet-am-session-max-idle-time' DESC 'Max Session Idle Time' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1067 NAME 'iplanet-am-session-max-caching-time' DESC 'Max Session Caching Time' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.752 NAME 'iplanet-am-session-quota-limit' DESC 'Session Quota Constraints' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1068 NAME 'iplanet-am-session-get-valid-sessions' DESC 'Get Valid Sessions' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1069 NAME 'iplanet-am-session-destroy-sessions' DESC 'Destroy Session' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1070 NAME 'iplanet-am-session-add-session-listener-on-all-sessions' DESC 'Add Session Listener on All Sessions' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1071 NAME 'iplanet-am-user-auth-modules' DESC 'User Auth Modules' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1072 NAME 'iplanet-am-user-admin-start-dn' DESC 'Starting DN for Admin User' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1073 NAME 'iplanet-am-user-service-status' DESC 'User Service Status' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1074 NAME 'iplanet-am-user-login-status' DESC 'User Login Status' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 2.16.840.1.113730.3.1.976 NAME 'iplanet-am-user-account-life' DESC 'User Account Life' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.58 NAME 'iplanet-am-user-auth-config' DESC 'User Authentication Configuration' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.59 NAME 'iplanet-am-user-alias-list' DESC 'User Alias Names List' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.62 NAME 'iplanet-am-auth-configuration' DESC 'Authentication Configuration' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.63 NAME 'iplanet-am-auth-login-success-url' DESC 'Redirection URL After Successful Login' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.64 NAME 'iplanet-am-auth-login-failure-url' DESC 'Redirection URL for Failed User Authentication' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.65 NAME 'iplanet-am-auth-post-login-process-class' DESC 'Class Name for Post Authentication Processing' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.793 NAME 'sunAMAuthInvalidAttemptsData' DESC 'XML data for Invalid Login Attempts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.71 NAME 'iplanet-am-user-success-url' DESC 'Redirection URL for Successful User Authentication' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.72 NAME 'iplanet-am-user-failure-url' DESC 'Redirection URL for Failed User Authentication' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.589 NAME 'iplanet-am-user-password-reset-options' DESC 'Password Reset Options' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.590 NAME 'iplanet-am-user-password-reset-question-answer' DESC 'Password Reset User Question Answer' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.591 NAME 'iplanet-am-user-password-reset-force-reset' DESC 'Password Reset Force Reset password' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.823 NAME 'sunIdentityMSISDNNumber' DESC 'User MSISDN Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.73 NAME 'iplanet-am-user-federation-info-key' DESC 'User Federation Information Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.74 NAME 'iplanet-am-user-federation-info' DESC 'User Federation Information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.821 NAME 'sunIdentityServerDiscoEntries' DESC 'User DiscoEntries' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.825 NAME 'sunIdentityServerPPCommonNameCN' DESC 'Liberty PP CommonName CN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.826 NAME 'sunIdentityServerPPCommonNameFN' DESC 'Liberty PP CommonName FN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.827 NAME 'sunIdentityServerPPCommonNameSN' DESC 'Liberty PP CommonName SN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.828 NAME 'sunIdentityServerPPCommonNameMN' DESC 'Liberty PP CommonName MN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.829 NAME 'sunIdentityServerPPCommonNameAltCN' DESC 'Liberty PP CommonName Alt CN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.830 NAME 'sunIdentityServerPPCommonNamePT' DESC 'Liberty PP CommonName PersonalTitle' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.831 NAME 'sunIdentityServerPPInformalName' DESC 'Liberty PP InformalName' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.832 NAME 'sunIdentityServerPPLegalIdentityLegalName' DESC 'Liberty PP LegalName' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.833 NAME 'sunIdentityServerPPLegalIdentityDOB' DESC 'Liberty PP Date of Birth' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.834 NAME 'sunIdentityServerPPLegalIdentityMaritalStatus' DESC 'Liberty PP Marital Status' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.835 NAME 'sunIdentityServerPPLegalIdentityGender' DESC 'Liberty PP Gender' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.836 NAME 'sunIdentityServerPPLegalIdentityAltIdType' DESC 'Liberty PP AltID Type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.837 NAME 'sunIdentityServerPPLegalIdentityAltIdValue' DESC 'Liberty PP AltID Type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.838 NAME 'sunIdentityServerPPLegalIdentityVATIdType' DESC 'Liberty PP IDType' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.839 NAME 'sunIdentityServerPPLegalIdentityVATIdValue' DESC 'Liberty PP IDValue' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.840 NAME 'sunIdentityServerPPEmploymentIdentityJobTitle' DESC 'Liberty PP JobTitle' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.841 NAME 'sunIdentityServerPPEmploymentIdentityOrg' DESC 'Liberty PP Org' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.842 NAME 'sunIdentityServerPPEmploymentIdentityAltO' DESC 'Liberty PP Alt Orgs' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.848 NAME 'sunIdentityServerPPAddressCard' DESC 'Liberty PP AddressCard' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.849 NAME 'sunIdentityServerPPMsgContact' DESC 'Liberty PP MsgContact' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.850 NAME 'sunIdentityServerPPFacadeMugShot' DESC 'Liberty PP FacadeMugShot' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.851 NAME 'sunIdentityServerPPFacadeWebSite' DESC 'Liberty PP FacadeWebSite' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.852 NAME 'sunIdentityServerPPFacadeNamePronounced' DESC 'Liberty PP FacadeNamePronounced' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.853 NAME 'sunIdentityServerPPFacadeGreetSound' DESC 'Liberty PP FacadeGreetSound' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.854 NAME 'sunIdentityServerPPFacadegreetmesound' DESC 'Liberty PP FacadeMeGreetSound' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.855 NAME 'sunIdentityServerPPDemographicsDisplayLanguage' DESC 'Liberty PP DemographicsDisplayLanguage' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.856 NAME 'sunIdentityServerPPDemographicsLanguage' DESC 'Liberty PP DemographicsLanguage' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.857 NAME 'sunIdentityServerPPDemographicsAge' DESC 'Liberty PP DemographicsAge' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.858 NAME 'sunIdentityServerPPDemographicsBirthDay' DESC 'Liberty PP DemographicsBirthDay' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.859 NAME 'sunIdentityServerPPDemographicsTimeZone' DESC 'Liberty PP DemographicsTimeZone' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.860 NAME 'sunIdentityServerPPSignKey' DESC 'Liberty PP SignKey' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.861 NAME 'sunIdentityServerPPEncryptKey' DESC 'Liberty PP EncryPTKey' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.862 NAME 'sunIdentityServerPPEmergencyContact' DESC 'Liberty PP EmergencyContact' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.989 NAME 'sun-fm-saml2-nameid-infokey' DESC 'SAML 2.0 Name Identifier Information Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.990 NAME 'sun-fm-saml2-nameid-info' DESC 'SAML 2.0 Name Identifier Information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.131 NAME 'oath2faEnabled' DESC 'Indicator for enabling of OATH 2FA' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 X-ORIGIN 'OpenSSO' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.5 NAME 'kbaInfo' DESC 'Knowledge Based Authentication information is stored in this attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenAM' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.6 NAME 'kbaActiveIndex' DESC 'Knowledge Based Authentication Active Index' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenAM' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.4 NAME 'devicePrintProfiles' DESC 'Device print profiles information is stored in this attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenAM' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.10 NAME 'oathDeviceProfiles' DESC 'OATH device profiles string' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenAM' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.3.1 NAME ( 'assignedDashboard' ) DESC 'Dashboard App registry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenAM' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.132 NAME ( 'umaLabelId' ) DESC 'UMA Label ID' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'ForgeRock OpenAM UMA' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.133 NAME ( 'umaLabelType' ) DESC 'UMA Label type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'ForgeRock OpenAM UMA' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.134 NAME ( 'umaLabelName' ) DESC 'UMA Label name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'ForgeRock OpenAM UMA' )
olcAttributeTypes: ( 1.3.6.1.4.1.36733.2.2.1.135 NAME ( 'umaLabelResourceSet' ) DESC 'UMA Label resource set ID' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'ForgeRock OpenAM UMA' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.76 NAME 'sunFederationManagerDataStore' DESC 'FSUser provider OC' SUP top AUXILIARY MAY ( iplanet-am-user-federation-info-key $ iplanet-am-user-federation-info $ sunIdentityServerDiscoEntries) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.127 NAME 'sunIdentityServerLibertyPPService' DESC 'sunIdentityServerLibertyPPService OC' SUP top AUXILIARY MAY ( sunIdentityServerPPCommonNameCN $ sunIdentityServerPPCommonNameAltCN $ sunIdentityServerPPCommonNameFN $ sunIdentityServerPPCommonNameSN $ sunIdentityServerPPCommonNamePT $ sunIdentityServerPPCommonNameMN $ sunIdentityServerPPInformalName $ sunIdentityServerPPLegalIdentityLegalName $ sunIdentityServerPPLegalIdentityDOB $ sunIdentityServerPPLegalIdentityMaritalStatus $ sunIdentityServerPPLegalIdentityGender $ sunIdentityServerPPLegalIdentityAltIdType $ sunIdentityServerPPLegalIdentityAltIdValue $ sunIdentityServerPPLegalIdentityVATIdType $ sunIdentityServerPPLegalIdentityVATIdValue $sunIdentityServerPPEmploymentIdentityJobTitle $ sunIdentityServerPPEmploymentIdentityOrg $ sunIdentityServerPPEmploymentIdentityAltO $ sunIdentityServerPPAddressCard $ sunIdentityServerPPMsgContact $ sunIdentityServerPPFacadeMugShot $ sunIdentityServerPPFacadeWebSite $ sunIdentityServerPPFacadeNamePronounced $ sunIdentityServerPPFacadeGreetSound $ sunIdentityServerPPFacadegreetmesound $ sunIdentityServerPPDemographicsDisplayLanguage $ sunIdentityServerPPDemographicsLanguage $ sunIdentityServerPPDemographicsBirthDay $ sunIdentityServerPPDemographicsAge $ sunIdentityServerPPDemographicsTimeZone $ sunIdentityServerPPSignKey $ sunIdentityServerPPEncryptKey $ sunIdentityServerPPEmergencyContact ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.148 NAME 'sunFMSAML2NameIdentifier' DESC 'SAML 2.0 name identifier objectclass' SUP top AUXILIARY MAY ( sun-fm-saml2-nameid-infokey $ sun-fm-saml2-nameid-info ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 2.16.840.1.113730.3.2.175 NAME 'iplanet-am-session-service' DESC 'Session Service OC' SUP top AUXILIARY MAY ( iplanet-am-session-max-session-time $ iplanet-am-session-max-idle-time $ iplanet-am-session-max-caching-time $ iplanet-am-session-quota-limit $ iplanet-am-session-get-valid-sessions $ iplanet-am-session-destroy-sessions $ iplanet-am-session-add-session-listener-on-all-sessions $ iplanet-am-session-service-status ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 2.16.840.1.113730.3.2.176 NAME 'iplanet-am-user-service' DESC 'User Service OC' SUP top AUXILIARY MAY ( iplanet-am-user-auth-modules $ iplanet-am-user-login-status $ iplanet-am-user-admin-start-dn $ iplanet-am-user-auth-config $ iplanet-am-user-alias-list $ iplanet-am-user-success-url $ iplanet-am-user-failure-url $ iplanet-am-user-password-reset-options $ iplanet-am-user-password-reset-question-answer $ iplanet-am-user-password-reset-force-reset $ sunIdentityMSISDNNumber ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 2.16.840.1.113730.3.2.184 NAME 'iplanet-am-managed-person' DESC 'Managed Person OC' SUP top AUXILIARY MAY ( iplanet-am-user-account-life ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.23 NAME 'iplanet-am-auth-configuration-service' DESC 'Authentication Configuration Service OC' SUP top AUXILIARY MAY ( iplanet-am-auth-configuration $ iplanet-am-auth-login-success-url $ iplanet-am-auth-login-failure-url $ iplanet-am-auth-post-login-process-class $ oath2faEnabled ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.118 NAME 'sunAMAuthAccountLockout' DESC 'Invalid Login Attempts Object Class' SUP top AUXILIARY MAY ( sunAMAuthInvalidAttemptsData ) X-ORIGIN 'OpenSSO' )
olcObjectClasses: ( 2.16.840.1.113730.3.2.130 NAME 'inetuser' DESC 'Auxiliary class which has to be present in an entry for delivery of subscriber services' SUP top AUXILIARY MAY ( uid $ inetUserStatus $ inetUserHTTPURL $ userPassword $ memberof ) X-ORIGIN 'Nortel subscriber interoperability' )
olcObjectClasses: ( 1.3.6.1.4.1.1466.101.120.142 NAME 'iPlanetPreferences' AUXILIARY MAY ( preferredLanguage $ preferredLocale $ preferredTimeZone ) X-ORIGIN 'iPlanet' )
olcObjectClasses: ( 1.3.6.1.4.1.36733.2.2.2.5 NAME 'kbaInfoContainer' DESC 'Class containing KBA information' SUP top AUXILIARY MAY ( kbaInfo $ kbaActiveIndex ) X-ORIGIN 'OpenAM' )
olcObjectClasses: ( 1.3.6.1.4.1.36733.2.2.2.4 NAME 'devicePrintProfilesContainer' DESC 'Class containing device print profiles' SUP top AUXILIARY MAY ( devicePrintProfiles ) X-ORIGIN 'OpenAM' )
olcObjectClasses: ( 1.3.6.1.4.1.36733.2.2.2.10 NAME 'oathDeviceProfilesContainer' DESC 'Class containing OATH device profiles' SUP top AUXILIARY MAY ( oathDeviceProfiles ) X-ORIGIN 'OpenAM' )
olcObjectClasses: ( 1.3.6.1.4.1.36733.2.2.2.3.1 NAME 'forgerock-am-dashboard-service' AUXILIARY MAY ( assignedDashboard ) X-ORIGIN 'Forgerock' )
olcObjectClasses: ( 1.3.6.1.4.1.36733.2.2.2.28 NAME 'frUmaLabel' DESC 'object containing ForgeRock UMA Resource Set Label' SUP top STRUCTURAL MUST ( umaLabelId $ umaLabelType ) MAY ( umaLabelName $ umaLabelResourceSet ) X-ORIGIN 'ForgeRock OpenAM UMA' )
dn: cn=openam-config,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openam-config
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.78 NAME ( 'sunServiceSchema' ) DESC 'SMS Attribute to Store xml schema of a particular service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  SINGLE-VALUE X-ORIGIN 'Sun Java System Identity Management' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.79 NAME ( 'sunserviceID' ) DESC 'Attribute to store the reference to the inherited object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15  SINGLE-VALUE X-ORIGIN 'Sun Java System Identity Management' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.81 NAME ( 'sunsmspriority' ) DESC 'To store the priority of the service with respect to its siblings' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27  SINGLE-VALUE X-ORIGIN 'Sun Java System Identity Management' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.82 NAME ( 'sunPluginSchema' ) DESC 'To store the plugin schema information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Sun Java System Identity Management' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.83 NAME ( 'sunKeyValue' ) DESC 'Attribute to store the encoded key values of the services' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Sun Java System Identity Management' )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.84 NAME ( 'sunxmlKeyValue' ) DESC 'Attribute to store the key values in xml format' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Sun Java System Identity Management' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.25 NAME 'sunservice' DESC 'object containing service information' SUP top MUST ou MAY ( labeledURI $ sunServiceSchema $ sunKeyValue $ sunxmlKeyValue $ sunPluginSchema $ description ) X-ORIGIN 'Sun Java System Identity Management' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.104 NAME 'sunRealmService' DESC 'object containing service information for realms' SUP top MAY ( o $ labeledURI $ sunKeyValue $ sunxmlKeyValue $ description ) X-ORIGIN 'Sun Java System Identity Management' )
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.27 NAME 'sunservicecomponent' DESC 'Sub-components of the service' SUP organizationalUnit MUST ou MAY ( labeledURI $ sunserviceID $ sunsmspriority $ sunKeyValue $ sunxmlKeyValue $ description ) X-ORIGIN 'Sun Java System Identity Management' )
  • OpenLDAP環境は以下の通りです。

  • ポート: 389

  • ベースDN dc=sios,dc=localhost
  • 接続ユーザー cn=Manager,dc=sios,dc=local
  • ユーザー格納ディレクトリ ou=users,dc=sios,dc=local

  • OpenAM管理画面へamadminユーザーでログインします。直後に表示される【Top Level Realm】をクリックします。新たにレルム(設定の単位)を作成しても構いませんが、今回は最上位のレルムを使用します。
    ldap1

  • 左メニューから【Data Stores】をクリックします。
    ldap2

  • 【新規】をクリックし、OpenLDAPの必要情報を入力します。入力が完了したら、画面右上の【終了】をクリックします。
    ldap3

  • データストアのタイプ

  • 名前: [任意]
  • タイプ: 汎用 LDAPv3
  • サーバー設定
  • LDAPサーバー: [OPENLDAP_HOSTNAME:389]
  • LDAP バインド DN: cn=Manager,dc=sios,dc=local
  • LDAP バインドパスワード: [バインドユーザーのパスワード]
  • LDAP 組織 DN: dc=sios,dc=local
  • ユーザー設定
  • LDAP ユーザーオブジェクトクラス: デフォルトのデータストア(embedded)と同じ値
  • LDAP ユーザー属性: デフォルトのデータストア(embedded)と同じ値
  • グループ設定
  • グループコンテナ値: (ブランク)
  • 持続検索制御
  • 接続検索ベースDN: ou=users,dc=sios,dc=local

  • OpenLDAPへ接続出来ていれば【対象】タブからOpenLDAPのユーザー情報を参照することができます。OpenLDAPのデータストア設定が完了すれば、デフォルトのデータストア(embedded)は不要ですので削除してください。
    ldap4

動作確認

OpenAMからOpenLDAPにテストアカウントを作成します。

  • OpenAM管理画面へamadminユーザーでログインし【Top Level Realm】をクリックします。

  • 左メニューから【Subjects】をクリックします。
    chk1

  • 【新規】をクリックしアカウントを新規作成します。
    chk2

  • 必須項目を入力し【了解】をクリックします。
    chk3

  • OpenLDAPサーバーにアカウントが作成されたことを確認します。

# ldapsearch -h localhost -D "cn=Manager,dc=sios,dc=local" -b "dc=sios,dc=local" -W
-----
# user01, sios.local
dn: uid=user01,dc=sios,dc=local
userPassword::cGFzc3dvcmQK
uid: user01
inetUserStatus: Active
objectClass: iplanet-am-managed-person
objectClass: sunFederationManagerDataStore
objectClass: sunFMSAML2NameIdentifier
objectClass: inetOrgPerson
objectClass: devicePrintProfilesContainer
objectClass: sunIdentityServerLibertyPPService
objectClass: iPlanetPreferences
objectClass: iplanet-am-user-service
objectClass: forgerock-am-dashboard-service
objectClass: inetuser
objectClass: top
objectClass: kbaInfoContainer
objectClass: oathDeviceProfilesContainer
objectClass: person
objectClass: organizationalPerson
objectClass: sunAMAuthAccountLockout
objectClass: iplanet-am-auth-configuration-service
sn: user01
cn: user01 taro
-----

以上で、OpenAMのインストール・初期設定とOpenLDAPのデータストア設定は完了になります。
次回はSAML連携によるシングルサインオンをやってみたいと思います。

 

sso シングルサインオン や 統合認証 などの導入イメージ については下記をご覧ください!
https://sios.jp/products/oss-integration/service/oss_on_cloud/authentication.html

 

アバター画像
About 太田 2 Articles
インフラ系SIを担当しつつ最近では営業支援活動も行っています。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる