LDAPの構成

ユーザーがOpsCenterにアクセスする権限を管理するためのLDAP(Lightweight Directory Access Protocol)を構成します。

ユーザーがOpsCenterにアクセスするためのLDAP(Lightweight Directory Access Protocol)を構成します。

LDAP構成は柔軟性が高く、OpsCenter内で多くの構成オプションを使用できます。使用可能なすべての[ldap]構成オプションの詳細については、「OpsCenter構成プロパティ」を参照してください。この手順では、ユーザーを認証するためにユーザー・カテゴリーとグループ・カテゴリーの両方でユーザーを検索することに基づく基本的な構成例を示します。

始める前に

適切に構成されたLDAP v3サーバーを実行している必要があります。サポートされているLDAPサーバーは以下のとおりです。
  • Microsoft Active Directory:
    • Windows 2008
    • Windows 2012
  • OpenLDAP 2.4.x
  • Oracle Directory Server Enterprise Edition 11.1.1.7.0

その他の要件:

  • 標準のOpsCenter認証で開始し、その後、LDAP実装に切り替えた場合、古いpasswd.dbを削除します。
  • ロール:LDAPロールがある場合は、LDAPのユーザー・ロール名とパーミッションをOpsCenterで作成してミラーリングします。ロール・パーミッションは、LDAPではなくOpsCenterに格納します。LDAPが有効になっている場合、ユーザーがOpsCenterにログインできるようにするには、少なくとも1つのロールを持つ必要があります。
    注: LDAPで複数のロールを持っていても、OpsCenterのロールは1つしか持つことができません。OpsCenterロールがgroup_search_filter_with_dnフィルターで得られた複数のユーザー・ロールと一致する場合、OpsCenterはユーザーに付与するロールを決定できないため、認証は失敗します。「LDAPのトラブルシューティング」を参照してください。

opscenterd.conf

opscenterd.confファイルの場所は、インストールのタイプによって異なります。

  • パッケージ・インストール:/etc/opscenter/opscenterd.conf
  • tarボール・インストール:install_location/conf/opscenterd.conf

passwd.db

OpsCenter認証のパスワード・データベースpasswd.dbのデフォルトの場所は、インストールのタイプによって異なります。

  • パッケージ・インストール:/etc/opscenter/passwd.db
  • tarボール・インストール:install_location/passwd.db

手順

  1. 編集するopscenterd.confファイルを開きます。
  2. [authentication]セクションに次のオプションを追加します。
    オプション説明
    passwd_db ./ passwd.db(必要なOpsCenterユーザー・ロール情報が含まれているため指定します)
    enabled Trueに設定して、LDAP認証を有効にします。
    authentication_method Active Directoryを構成するかどうかにかかわらず、LDAPに設定します。
    [authentication] 
    passwd_db = ./passwd.db
    enabled = True
    authentication_method = LDAP
  3. 使用するLDAPサーバーの構成を設定します。LDAP実装に応じて以下のLDAPサーバー・オプションを使用して、[ldap]セクションをopscenterd.confに追加します。
    オプション説明
    server_host LDAPサーバーのホスト名。
    server_port LDAPサーバーがリッスンするポート。たとえば、389や636などです。389はSSL LDAPおよびAD以外のデフォルトのポートです。636はSSL LDAPおよびADのデフォルトのポートです。ポートの詳細については、「OpsCenterポート」を参照してください。
    uri_scheme LDAPv2環境では、TLSは一般に、通常のLDAP URIスキームではなくLDAPセキュアURIスキームを使用して起動されます。OpenLDAPコマンドライン・ツールを使用すると、-HフラグとURI ldap.conf(5)オプションとともにいずれかのスキームを使用できます。ldap_security = Noneの場合はデフォルトでldapに設定され、ldap_security = SSLまたはTLSの場合はデフォルトでldapsに設定されます。
    search_dn LDAPサーバーで別のユーザーを検索するのに使用されるユーザーの名前。ユーザーがLDAPで認証しようとすると、OpsCenterはLDAP内のユーザーを検索して、ユーザーが存在するかどうかと、ユーザーが関連付けられているロールを探索します。検索ユーザーがLDAPシステム内で持っている必要があるのは、LDAP検索を実行できるパーミッションのみです。
    注: search_dnsearch_password(LDAPでユーザーを特定するための検索ユーザー・エントリ・ポイントを構成する)が構成で省略されている場合、LDAPはユーザー検索を実行するために匿名バインドを行います。
    search_password search_dnユーザーのパスワード。
    user_search_base ドメインの検索ベース。ユーザーの検索に使用します。LDAPドメインのouおよびdc要素を設定します。たとえば、ou=users,dc=domain,dc=top level domainに設定できます。具体的には、ou=users,dc=example,dc=comのようになります。

    Active Directoryは別のユーザー検索ベースを使用します。例を次に示します。CN=search,CN=Users,DC=Active Directory domain name,DC=internalです。具体的には、CN=search,CN=Users,DC=example-sales,DC=internalのようになります。

    user_search_filter ユーザーを一意に識別するために使用されるLDAP検索フィルター。 デフォルトの設定は(uid={0})で、ユーザーの一意識別子でユーザーを検索します。{0}変数の値は、OpsCenterにログインするときに入力するユーザー名です。

    Active Directoryを使用する場合は、フィルターを(sAMAccountName={0})に設定します。

    注: Active Directoryに検索フィルタを使用する場合、OpsCenterには既知の制限事項があります。「LDAPのトラブルシューティング」を参照してください。
    group_search_base グループを検索するために使用されるldap検索ベース。例:ou=groups,dc=qaldap,dc=datastax,dc=lan
    group_search_filter 廃止予定。ユーザーのグループを検索するために使用されるldap検索フィルター。例:(member=cn={0},ou=users,dc=nodomain)group_search_base内で、cnに基づいてメンバーをフィルター処理します。この構成オプションが既に設定されている既存のAD実装の場合、group_search_filter_with_dnは戻り値をユーザーのDNで上書きします。
    group_search_filter_with_dn ユーザーのグループを検索するために使用されるldap検索フィルター。ユーザー検索で得られたユーザーの完全なDNを使用します。廃止予定のgroup_search_filterをオーバーライドします。例:(member={0})
    group_name_attribute グループの名前を識別するために使用されるldapフィールド名。たとえば、cnなどです。
    admin_group_name 管理者グループ名、または管理者グループ名のコンマ区切りリスト。たとえば、admin, superusersなどです。OpsCenterは、admin_group_nameリストで指定されたロールの管理者パーミッションを持つロールを自動的に作成します。制限されたLDAP文字はエスケープします。グループ名にコンマ「,」などの制限されたLDAP文字が含まれている場合は、それらをエスケープする必要があります。たとえば、「foo , bar」と「baz」という2つの管理者グループを指定するには、「foo \, bar, baz」と入力します。
    user_memberof_attribute グループ・メンバーシップ情報が含まれているユーザー・エントリーの属性に設定します。group_search_typememberof_searchを使用する場合はこのオプションを設定します。

    OpsCenterでは、ユーザー・ロールの決定に別の方法を使用できます。LDAPでユーザーに一致するロールをディレクトリー検索するのではなく、memberof_searchを使用すると、ユーザーのみを検索します。この場合、ユーザーのどの属性を検索するかを指定できます。たとえば、OpsCenterでopscenter_roleなどの新しい属性を持つユーザーを定義し、そのユーザーのロールを追加することができます。OpsCenterがそのユーザー属性を検索できるように、新しい属性の値を指定します。

    group_search_type ユーザーのグループ・メンバーシップの決定方法を定義します。使用可能なオプションは以下のとおりです。
    • directory_search:(デフォルト)結果をフィルター処理するには、group_search_filterを使用してgroup_search_baseのサブツリー検索を実行します。
    • memberof_search:ユーザーのuser_memberof_attributeからグループを取得します。このオプションを使用するには、ディレクトリー・サーバーがmemberofをサポートしている必要があります。グループ検索にdirectory_searchではなくmemberof_searchを使用する場合、group_search_baseオプションまたはgroup_search_filterオプションを指定する必要はありません。
    user_memberof_stores_dn memberof属性の値がグループの識別名である場合はTrueに設定します。Active Directory、OpenLDAPを構成する場合、または他のLDAP実装がmemberOf属性値のDNを返す場合は、このオプションをTrueに設定する必要があります。
    注: Oracle LDAP実装を使用し、user_memberof_attributeisMemberOfに設定されている場合は、このオプションをTrueに設定する必要があります。
    デフォルト:False。

    user_memberof_attributeで指定した属性がOpsCenterのロールに対応する0個以上のグループ名を示している場合は、user_memberof_stores_dnをFalseに設定します。たとえば、user_memberof_attributeemployeeTypeに設定されている場合、employeeType属性値は識別名でないため、user_memberof_stores_dnオプションをFalseに設定します。

    ヒント: user_memberof_attribute_stores_dnがFalseで、ログインに失敗すると、OpsCenterはグループ名がDNであると予想し、次の警告がログに記録されます。

    [opscenterd] WARN: It looks like you might be using Active Directory for authentication.You may need to set the 'user_memberof_attribute_stores_dn' config value to True and set the group_name_attribute config value appropriately in opscenterd.conf.

    ldap_security LDAPで使用するセキュリティの種類:None、TLS、SSL。TLSに設定した場合は、TLS起動を使用します。このオプションをTLSまたはSSLに設定すると、uri_schemeLDAPSに設定されます。このオプションをNoneに設定すると、uri_schemeLDAPに設定されます。
    truststore SSL証明書のトラストストアのパス。
    truststore_type トラストストアのタイプ。デフォルト:JKS(Java Keystore)。
    truststore_pass トラストストアにアクセスするためのパスワード。
    connection_timeout LDAPサーバーがダウンしていると判定されるまでの待機時間(秒)。デフォルト:20秒。
    次の構成例は、一般的なSSL LDAP(OpenLDAPまたはOracle)実装の場合を示しています。server_port636は、SSL構成の値です。10行目と11行目のsearch_dnsearch_passwordが省略された場合、LDAPはユーザー検索を実行するために匿名バインドを行います。この構成例では、ユーザーを認証するためにユーザー・カテゴリーとグループ・カテゴリーの両方のユーザーを検索します(user_search_baseuser_search_filtergroup_search_basegroup_search_filter)。group_search_typedirectory_searchです。14行目と15行目の#user_search_base#user_search_filterはコメントアウトされていますが、これらはAD構成にのみ該当するためです。
    
    01  [authentication] 
    02   passwd_db = ./passwd.db
    03   enabled = True
    04   authentication_method = LDAP
    05
    06   [ldap] 
    07   server_host = ldap.myCompany.lan
    08   server_port = 636
    09   uri_scheme = ldaps
    10   search_dn = cn=admin,dc=devldap,dc=datastax,dc=lan 
    11   search_password = ****
    12   user_search_base = ou=users,dc=devldap,dc=datastax,dc=lan
    13   user_search_filter = (uid={0})
    14   #user_search_base = CN=search,CN=Users,DC=datastax,DC=internal # AD base
    15   #user_search_filter = (sAMAccountName={0}) # AD filter
    16   group_search_base = ou=users,dc=devldap,dc=datastax,dc=lan
    17   group_search_filter_with_dn = (member={0})
    18   group_name_attribute = cn
    19   group_search_type = directory_search 
    20   admin_group_name = superusers,superusers2
    21   ldap_security = SSL_TLS
    22   truststore_type = JKS
    23   truststore = ./truststore.jks 
    24   truststore_pass = secret
      
    次の例は、Windows 2008構成のActive Directory(AD)の場合を示しています。上記のOpenLDAPまたはOracleのLDAPの例とは異なり、このAD構成では、Active Directory構成オプションのuser_search_base12行目)とuser_search_filter13行目)を使用しています。ADの場合、12行目のユーザー検索ベースが異なることにも注意してください。18行目のuser_memberof_stores_dnオプションが明示的にTrueに設定されているため、OpsCenterは17行目のmemberof属性の値を識別名(DN)として正しく処理します。user_memberof_stores_dnオプションは、OpenLDAP構成にも該当します。
    
    01  [authentication] 
    02   passwd_db = ./passwd.db
    03   enabled = True
    04   authentication_method = LDAP
    05
    06  [ldap]
    07  server_host = mywin2008.myCompany.lan
    08  server_port = 636
    09  uri_scheme = ldap
    10  search_dn = CN=Administrator,CN=Users,DC=prodwin2008,DC=datastax,DC=lan
    11  search_password = ****
    12  user_search_base = CN=Users,DC=prodwin2008,DC=datastax,DC=lan # AD base
    13  user_search_filter = (sAMAccountName={0}) # AD filter
    14  admin_group_name = superusers
    15  group_search_type = memberof_search
    16  group_name_attribute = cn
    17  user_memberof_attribute = memberof
    18  user_memberof_stores_dn = True
    19  ldap_security = SSL_TLS
    20  truststore_type = JKS
    21  truststore = /tmp/path_to_truststore_win2008
    22  truststore_pass = secret
    
  4. OpsCenterを再起動して、変更内容を適用します。