LDAPの構成

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

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

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

passwd.db

OpsCenter認証のパスワード・データベースpasswd.dbのデフォルトの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/passwd.db
  • tarボール・インストール:install_location/passwd.db

opscenterd.conf

opscenterd.confファイルの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/opscenterd.conf
  • tarボール・インストール:install_location/conf/opscenterd.conf

始める前に

適切に構成された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つのロールを持つ必要があります。

手順

  1. 編集する opscenterd.conf ファイルを開きます。
  2. [authentication]セクションに次のオプションを追加します。
    オプション説明
    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に追加します。

    次のテーブルを展開して、使用可能なオプションを表示します。また、SSL LDAP構成とActive Directory構成を理解するには、構成例を参照してください。

    LDAPサーバー・オプション

    オプション説明
    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_dnFalseに設定します。たとえば、user_memberof_attributeemployeeTypeに設定されている場合、employeeType属性値は識別名でないため、user_memberof_stores_dnオプションをFalseに設定します。

    ヒント: user_memberof_attribute_stores_dnFalseで、ログインに失敗すると、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秒。
  4. OpsCenterを再起動して、変更内容を適用します。

SSL LDAP(OpenLDAPまたはOracle)実装

次の構成例は、一般的なSSL LDAP(OpenLDAPまたはOracle)実装の場合を示しています。server_port636は、SSL構成の値です。

10行目と11行目のsearch_dnsearch_passwordオプションが省略された場合、LDAPはユーザー検索を実行するために匿名バインドを行います。

この構成例では、ユーザーを認証するためにユーザー・カテゴリー(user_search_baseuser_search_filter)とグループ・カテゴリー(group_search_basegroup_search_filter)の両方のユーザーを検索します。group_search_type (line 19) is directory_search.

注: 14行目と15行目の#user_search_base#user_search_filterオプションは、コメントアウトされていますが、これらはActive Directory(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)

次の例は、Windows 2008構成のActive Directory(AD)の場合を示しています。上記のOpenLDAPまたはOracleのLDAPの例とは異なり、このAD構成では、Active Directory構成オプションのuser_search_base12行目)とuser_search_filter13行目)を使用しています。ADの場合、12行目のADのユーザー検索ベースがLDAPの例とは形式が異なります。

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