LDAP ユーザー・レジストリーの構成

ソリューションの初期インストールの後に、デフォルトで基本ユーザー・レジストリーがインストールされます。ただし、基本ユーザー・レジストリーは、パスワード・ポリシー、パスワードの長さ、パスワードの有効期限、およびユーザー・ロックアウトをサポートしていません。ソリューションが Lightweight Directory Access Protocol (LDAP) ユーザー・レジストリーと連携するように構成してください。LDAP ユーザー・レジストリーは、他のユーザー・レジストリー構成よりもパフォーマンスに優れ、拡張が容易です。

始める前に

注: LDAP ユーザー・レジストリーを使用するよう IBM® Intelligent Operations Center を構成する前に、LDAP サーバーにセキュアなパスワード・ポリシーがあることを確認する必要があります。セキュアな LDAP パスワード・ポリシーがないと、IBM Intelligent Operations Center に対する HTTP 基本認証要求を使用したブルート・フォース・アタックによって、ユーザーのパスワードが解読されてしまう恐れがあります。
LDAP ユーザー・レジストリー構成を使用するには、ソリューションの初期インストールが完了した後で、追加の構成手順を実行する必要があります。このソリューションでは、特定のユーザーおよびユーザー・グループが LDAP ユーザー・レジストリー内に存在している必要があります。管理者は、外部ユーザー・レジストリー管理ツールを使用してユーザーを追加できます。
  • ソリューション用に LDAP 認証を初めて構成する場合は、LDAP ディレクトリーに IBM Intelligent Operations Center ユーザー・グループおよびユーザーを追加する必要があります。
    1. 以下のシステム・プロパティーによって定義されたグループ名のユーザー・グループを追加します。
      PlatformAdminsGroup
      PlatformAdminsGroup システム・プロパティーは、プラットフォーム管理者グループを定義します。デフォルト値は PlatformAdmins です。
      SolutionAdminsGroup
      SolutionAdminsGroup システム・プロパティーは、ソリューション管理者グループを定義します。デフォルト値は SolutionAdmins です。
      SystemAdminsGroup
      SystemAdminsGroup システム・プロパティーは、システム管理者グループを定義します。デフォルト値は SystemAdmins です。
    2. Operators ユーザー・グループを追加します。
    3. SystemAdminUser システム・プロパティーによって定義されているシステム管理者ユーザーを追加し、このユーザーをシステム管理者グループに追加します。
    4. soladmin ユーザーをソリューション管理者グループのメンバーとして追加します。
    5. platformadmin ユーザーをプラットフォーム管理者グループのメンバーとして追加します。
  • PlatformAdminsSolutionAdmins、および SystemAdmins ユーザー・グループは、デフォルトでインストール時に ioc.ioc_user_group データベース表内に作成されます。PlatformAdminsGroupSolutionAdminsGroup、または SystemAdminsGroup システム・プロパティーのデフォルト値を変更する場合は、このデータベース内に新規ユーザー・グループを作成する必要があります。 例えば、PlatformAdminsGroup の値を UserAdmins に変更した場合は、データ・サーバーで db2.instance.user として以下のコマンドを入力します。db2.instance.userioc.install.properties ファイルに定義されています。
    db2 "insert into ioc.ioc_user_group (name) values ('UserAdmins')"
  • また、これらのユーザー・グループとユーザー・メンバーが IBM Intelligent Operations Center「ユーザー管理」ビューに追加されていることも確認する必要があります。詳しくは、ユーザー、ユーザー・グループ、および役割の管理を参照してください。

このタスクについて

  • 以下の手順はプラットフォーム・インストールに特化したものであり、アプリケーション・サーバーおよびデータ・サーバーでファイルの更新および DB2® コマンドの実行を行うための必須権限が必要になります。
  • 以下の手順に示されているコマンドの db2.instance.user 変数、ioc.user 変数、liberty_install_dir 変数、および liberty.instance.name 変数を、ioc.install.properties インストール・プロパティー・ファイルに構成されている値で置き換えます。
    • DB2 インスタンスのユーザー変数である db2.instance.user のデフォルト値は db2i1own で、ioc.user 変数のデフォルト値は iocadmin です。
    • liberty_install_dir 値は WebSphere® Application Server Liberty Profile インストール・ディレクトリーであり、liberty.instance.name 値は Liberty インスタンスの名前です。

手順

  1. 以下の手順のいずれかを使用して、LDAP ユーザー・ディレクトリー設定を構成します。
    • 以下のサンプル値を参考に、システム・プロパティーを作成または更新します。
      • LdapDNPrefix (サンプル値: uid)。このプロパティー値は、識別名を形成するためにユーザー名に接頭部として追加するストリングを指定します。
      • LdapServerCredentials (サンプル値: {"uid":"cn=root","pw":"my_password"})。このプロパティー値は、LDAP ユーザー・レジストリーに対する読み取り/書き込み権限を持つユーザーの資格情報を指定します。
      • LdapServerQueryOnlyCredentials (サンプル値 {"uid":"cn=binduser","pw":"my_bindpassword"})。このプロパティー値は、LDAP ユーザー・レジストリーに対する読み取り専用権限を持つユーザーの資格情報を指定します。
      • LdapProviderUrl (サンプル値: ldap://<ldap_server_name>: 389)
      • LdapUserFilter (サンプル値: ou=users,ou=swg,o=ibm,c=us)
      • LdapGroupFilter (サンプル値: ou=groups,ou=swg,o=ibm,c=us)
      • ソリューションに役割を追加するには、LdapRoleFilter (サンプル値: ou=roles,ou=swg,o=ibm,c=us) が設定されている必要があります。LdapRoleFilter システム・プロパティーの値は、LDAP ユーザー・レジストリーの役割の組織単位の DN です。詳しくは、役割に対する LDAP サポートの構成を参照してください。
      • LdapBaseDN (サンプル値: ou=swg,o=ibm,c=us)
      • LdapUserObjectClass (サンプル値: inetOrgPerson)。
    • DB2 インスタンスのユーザー、db2.instance.user でデータ・サーバーにログオンします。例えば、db2i1own としてログオンします。以下のサンプル・コマンドと同じように DB2 コマンドを入力します。root_password はユーザー・レジストリーがインストールされているサーバーのルート・パスワード、LDAP_host_name はユーザー・レジストリー・サーバーのホスト名です。各コマンドは 1 行で入力してください。
      db2 connect to iocdb
      
      db2 "update IOC.SysProp
          set value = '{¥"uid¥":¥"cn=root¥",¥"pw¥":¥"root_password¥"}'
              where name = 'LdapServerCredentials'"
      
      db2 "update IOC.SysProp
          set value = '{¥"uid¥":¥"cn=root¥",¥"pw¥":¥"query_user¥"}'
              where name = 'LdapServerQueryOnlyCredentials"
      
      db2 "update IOC.SysProp
          set value = 'ldap://LDAP_host_name:389' 
              where name = 'LdapProviderUrl'"
      
      db2 "update IOC.SysProp
          set value = 'DN' where name = 'LdapDNPrefix'"
      
      db2 "update IOC.SysProp
          set value = 'ou=myg,o=abc,c=us' where name = 'LdapBaseDN'"
      
      db2 "update IOC.SysProp 
          set value = 'ou=groups,ou=myg,o=abc,c=us' where name = 'LdapGroupFilter'"
      
      db2 "update ioc.sysprop
          set value = 'ou=users,ou=myg,o=abc,c=us'
              where name = 'LdapUserFilter'"
      
      db2 "update IOC.SysProp
          set value = 'inetOrgPerson' where name = 'LdapUserObjectClass'"
      
      db2 "update IOC.SysProp
          set value = 'ou=roles,ou=myg,o=abc,c=us' where name = 'LdapRoleFilter'"
    注: DB2 コマンドを使用して IOC.SysProp 表を更新する際に、システム・プロパティーのキャッシュが原因で、変更内容が有効になるまでに最大で 15 分の遅延が発生することがあります。この遅延を回避するには、以下の URI にあるシステム・プロパティー REST サービスを使用して、システム・プロパティーを更新します。
    /ibm/ioc/api/sysprop-service/sysprops
  2. LdapRegistry.xml ファイルを更新します。
    1. アプリケーション・サーバーに ioc.user ユーザーとしてログオンします。例えば、iocadmin としてログオンします。
    2. liberty_install_dir/usr/servers/liberty.instance.name ディレクトリーの LdapRegistry.xml ファイルを編集します。ここで、liberty_install_dirWebSphere Application Server Liberty Profile インストール・ディレクトリーであり、liberty.instance.name は Liberty インスタンスの名前です。 例えば、/opt/IBM/WebSphere/wlp/usr/servers/iocsvr1/LdapRegistry.xml ファイルを編集します。
    3. baseDNhostbindDNbindPasswordsslEnabled、および port 属性の正しい値を使用して、ファイルを変更します。 以下に例を示します。
      <server description="LDAP registry configuration">
         <ldapRegistry realm="BasicRegistry"
      	baseDN="ou=swg,o=abc,c=us" host="ldapserver.abc.com" port="389" ignoreCase="<true>"
            ldapType="IBM Tivoli Directory Server" 
      	bindDN="cn=root" bindPassword="{xor}Lz4sLCgwlST=" 
      	sslEnabled="false" searchTimeout="8m">
            <idsFilters groupMemberIdMap="groupOfUniqueNames:uniqueMember"
               userFilter="(&amp;(uid=%v)(objectclass=inetOrgPerson))" userIdMap="*:uid" groupFilter="(&amp;(cn=%v)(objectclass=groupOfUniqueNames))">
            </idsFilters>
            <contextPool enabled="true" initialSize="1" maxSize="0" preferredSize="3" timeout="0ms" waitTime="3000ms"/>
            <ldapCache>
               <attributesCache enabled="true" size="4000" sizeLimit="2000" timeout="1200ms"/>
               <searchResultsCache enabled="true" resultsSizeLimit="1000" size="2000" timeout="600ms"/>
            </ldapCache>
         </ldapRegistry>
      </server>
      注: 以下のコマンドを使用して、アプリケーション・サーバーか分析サーバーに bindPassword の暗号化した値を作成できます。
      liberty_install_dir/bin/securityUtility encode passwrd
      以下に例を示します。
      /opt/IBM/WebSphere/wlp/bin/securityUtility encode mybindpassword
    4. 変更内容を保存します。
  3. server.xml ファイル内のユーザー・レジストリー接続詳細を更新します。
    1. liberty_install_dir/usr/servers/defaultServer ディレクトリーの server.xml ファイルを編集します。 例えば、/opt/IBM/wlp/usr/servers/defaultServer/server.xml ファイルを編集します。
    2. <basicRegistry>...</basicRegistry> タグおよびこれらのタグの間の内容を、<include location="LdapRegistry.xml"/> に置き換えます。
    3. 変更内容を保存します。
  4. ioc.user ユーザーとして、以下のコマンドを実行して、サーバーを再始動します。
    liberty_install_dir/bin/server stop liberty.instance.name
    liberty_install_dir/bin/server start liberty.instance.name --clean
    例えば、iocadmin ユーザーとして以下のコマンドを実行します。
    /opt/IBM/WebSphere/wlp/bin/server stop iocsvr1
    /opt/IBM/WebSphere/wlp/bin/server start iocsvr1 --clean
  5. ユーザー属性を LDAP 内のフィールドにマップするには、トピック『LDAP 内のフィールドへのユーザー属性のマッピング』を参照してください。
  6. 分析サーバーでステップ 2 から 5 を繰り返します。
  7. オプション: Secure Sockets Layer (SSL) 経由の接続を許可するよう LDAP サーバーが構成されている場合、以下のステップを実施して IBM Intelligent Operations Center と LDAP サーバーの間の SSL 通信を構成できます。
    1. アプリケーション・サーバーに ioc.user ユーザーとしてログオンします。例えば、iocadmin としてログオンします。
    2. 以下のコマンドを実行して、LDAP サーバー証明書を取り出します。LDAP_host_name:port は LDAP サーバーの完全修飾ホスト名と SSL ポート番号です。
      su - ioc.user
      cd liberty_install_dir/usr/servers/liberty.instance.name/resources/security
      openssl s_client -showcerts -connect LDAP_host_name:port </dev/null 2>/dev/null | openssl x509 -outform PEM > LDAP_Server_cert.pem
      以下に例を示します。
      su - iocadmin
      cd /opt/IBM/WebSphere/wlp/usr/servers/iocsvr1/resources/security
      openssl s_client -showcerts -connect ldapserver.abc.com:636 </dev/null 2>/dev/null | openssl x509 -outform PEM > LDAP_Server_cert.pem
       
    3. 以下のコマンドを実行して、WebSphere Application Server Liberty Profile に LDAP サーバー証明書をインポートします。keystore_password は鍵ストアのパスワードです。
      /opt/ibm/java-x86_64-80/jre/bin/keytool -import -keystore key.jks -alias LDAP_Server_cert¥
       -file LDAP_Server1_cert.pem -storepass keystore_password -noprompt -trustcacerts
    4. liberty_install_dir/usr/servers/liberty.instance.name ディレクトリーの LdapRegistry.xml ファイルを編集します。
      • sslEnabled 属性を "true" に設定します。
      • port 属性に SSL ポート番号を設定します。例えば、636 などです。
    5. ioc.user ユーザーとして、以下のコマンドを実行して、サーバーを再始動します。
      liberty_install_dir/bin/server stop liberty.instance.name
      liberty_install_dir/bin/server start liberty.instance.name --clean
      例えば、iocadmin ユーザーとして以下のコマンドを実行します。
      /opt/IBM/WebSphere/wlp/bin/server stop iocsvr1
      /opt/IBM/WebSphere/wlp/bin/server start iocsvr1 --clean
    6. 分析サーバーでステップ a から e を繰り返します。

次のタスク

ユーザー・レジストリーへ接続するためにソリューションで使用されるパスワードが期限切れになるか変更された場合は、LdapServerCredentials システム・プロパティーの更新方法についてトピック『LdapServerCredentials パスワードの保守』を参照してください。