2. Directory Serverのインスタンスと接尾辞
7. Directory Serverのパスワード・ポリシー
8. Directory Serverのバックアップとリストア
9. Directory Serverのグループ、ロールおよびCoS
16. Directory Proxy Serverのツール
17. Directory Proxy Serverのインスタンス
19. Directory Proxy Serverの証明書
20. Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ
22. Directory Proxy Serverによる仮想化
24. Directory Proxy ServerとバックエンドLDAPサーバーの接続
25. クライアントとDirectory Proxy Serverの接続
26. Directory Proxy Serverのクライアント認証
27. Directory Proxy Serverのロギング
28. Directory Proxy Serverの監視とアラート
第3部 Directory Service Control Centerの管理
ロールは、より効率的かつ簡単なアプリケーションの使用を目的に設計された代替のグループ化メカニズムです。ロールの定義および管理はグループと同様ですが、各メンバー・エントリに生成されるロール属性は自動的にエントリのロールを示します。たとえば、アプリケーションではグループの選択およびメンバー・リストの参照を必要とせずに、エントリのロールの読込みが可能となります。
デフォルトでは、ロールの範囲は、範囲が定義されているサブツリーに制限されます。しかし、ネストされたロールの範囲は拡張できます。他のサブツリーにあるロールをネストしたり、ディレクトリの任意の場所のメンバーを含めることもできます。詳細は、「ロールの範囲を拡張するには:」および「ネストされたロール定義の例」を参照してください。
この項では、ロールのセキュアな使用方法、およびコマンドラインからのロールの管理方法を説明します。
ロールをセキュアに使用するために、アクセス制御命令(ACI)を設定して、該当する属性を保護する必要があります。たとえば、ユーザーAが管理対象ロールであるMRを所有するとします。管理対象ロールは静的グループに相当するもので、nsRoleDN属性を各メンバー・エントリに追加することで、明示的にロールをそれらのエントリに割り当てます。MRロールは、コマンドラインによるアカウントの非アクティブ化を使用してロックされています。これは、ユーザーAに対してnsAccountLock属性が"true"として計算されるので、ユーザーAはサーバーにバインドできないことを意味します。ただし、このユーザーはすでにバインド済で、現在はMRロールによりロックされていると通知されたものとします。このユーザーがnsRoleDN属性に書込みアクセスできないようにするためのACIが存在しない場合、このユーザーはnsRoleDN属性を自分のエントリから削除して、自身のロックを解除できます。
ユーザーによるnsRoleDN属性の削除を防止するには、ACIを適用する必要があります。フィルタ処理されたロールでは、属性変更によりユーザーがフィルタ処理されたロールを放棄できないよう、フィルタを一部保護する必要があります。フィルタ処理されたロールで使用する属性をユーザーが追加、削除および変更できないようにする必要があります。フィルタ属性値の計算の場合も同様に、フィルタ属性値の変更が可能な属性はすべて保護する必要があります。ネストされたロールにはフィルタ処理されたロールおよび管理対象ロールを含むことができるので、ネストされたロールに含まれる各ロールについても前述の事項を考慮する必要があります。
セキュリティに対するACI設定の詳細な手順は、第6章「Directory Serverのアクセス制御」を参照してください。
ロールは、コマンドライン・ユーティリティによりディレクトリ管理者がアクセス可能なエントリで定義されます。ロールを作成した後、次のようにメンバーをロールに割り当てます。
管理対象ロールのメンバーは各自のエントリにnsRoleDN属性を持ちます。
フィルタ処理されたロールのメンバーは、nsRoleFilter属性で指定するフィルタと一致するエントリとなります。
ネストされたロールのメンバーは、ネストされたロール定義エントリのnsRoleDN属性で指定するロールのメンバーとなります。
すべてのロール定義はLDAPsubentryおよびnsRoleDefinitionオブジェクト・クラスから継承されます。次の例では、各タイプのロールに固有の追加オブジェクト・クラスと関連付けられた属性を示します。
すべてのマーケティング・スタッフのロールを作成するには、次のようにldapmodifyコマンドを使用します。
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: nsRoleDefinition objectclass: nsSimpleRoleDefinition objectclass: nsManagedRoleDefinition cn: Marketing description: managed role for marketing staff
nsManagedRoleDefinitionオブジェクト・クラスはLDAPsubentry、nsRoleDefinitionおよびnsSimpleRoleDefinitionオブジェクト・クラスから継承されることに注意してください。
Bobという名前のマーケティング・スタッフのメンバーにロールを割り当てるには、次のようにエントリを更新します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=Bob Arnold,ou=marketing,ou=People,dc=example,dc=com changetype: modify add: nsRoleDN nsRoleDN: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com
nsRoleDN属性では、エントリが管理対象ロールのメンバーであることを示しています。管理対象ロールは、そのロール定義のDNにより識別されます。ユーザーが自身のnsRoleDN属性を変更できるようにしつつも、nsManagedDisabledRoleの追加や削除はできないようにするには、次のACIを追加します。
aci: (targetattr="nsRoleDN")(targattrfilters="add=nsRoleDN: (!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example, dc=com)") (version3.0;aci "allow mod of nsRoleDN by self except for critical values"; allow(write) userdn="ldap:///self";)
セールス・マネージャのフィルタ処理されたロールを設定するには、すべてのセールス・マネージャがisManager属性を持つものとして、次のldapmodifyコマンドを使用します。
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=ManagerFilter,ou=sales,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: nsRoleDefinition objectclass: nsComplexRoleDefinition objectclass: nsFilteredRoleDefinition cn: ManagerFilter nsRoleFilter: (isManager=True) Description: filtered role for sales managers
nsFilteredRoleDefinitionオブジェクト・クラスはLDAPsubentry、nsRoleDefinition、およびnsComplexRoleDefinitionオブジェクト・クラスから継承されることに注意してください。nsRoleFilter属性は、下位組織を持つou=sales組織の従業員すべてを検索するフィルタを指定します。たとえば次のようになります。
$ ldapsearch -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - \ -b "ou=People,dc=example,dc=com" -s sub "(cn=*Fuentes)" dn: cn=Carla Fuentes,ou=sales,ou=People,dc=example,dc=comcn: Carla Fuentes isManager: TRUE... nsRole: cn=ManagerFilter,ou=sales,ou=People, dc=example,dc=com
注意: フィルタ処理されたロールのフィルタ文字列は任意の属性に基づくことができますが、CoSメカニズムで生成される算出属性については例外となります。
フィルタ処理されたロールのメンバーがユーザー・エントリである場合、それらのメンバーがロールに自分自身を追加または削除する機能を制限することが可能です。ACIでフィルタ処理された属性を保護してください。
ネストされたロール内にネストされるロールは、nsRoleDN属性を使用して指定します。次のコマンドを使用して、前の例で作成したロールのマーケティング・スタッフおよびセールス・マネージャの両方のメンバーを含むロールを作成します。
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=MarketingSales,ou=marketing,ou=People,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: nsRoleDefinition objectclass: nsComplexRoleDefinition objectclass: nsNestedRoleDefinition cn: MarketingSales nsRoleDN: cn=ManagerFilter,ou=sales,ou=People,dc=example,dc=com nsRoleDN: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com nsRoleScopeDN: ou=sales,ou=People,dc=example,dc=com
nsNestedRoleDefinitionオブジェクト・クラスはLDAPsubentry、nsRoleDefinitionおよびnsComplexRoleDefinitionオブジェクト・クラスから継承されることに注意してください。nsRoleDN属性はマーケティングの管理対象ロール、およびセールス・マネージャのフィルタ処理されたロールのDNを含んでいます。前述の例のユーザーBobとCarlaはどちらもこの新しくネストされたロールのメンバーとなります。
このフィルタの範囲には、デフォルトの有効範囲が含まれます。これはフィルタがあるサブツリー、およびnsRoleScopeDN属性の値の下にあるサブツリーのことです。この場合、ManagerFilterはou=sales,ou=People,dc=example,dc=comサブツリーにあります。このサブツリーを範囲に追加する必要があります。
Directory Serverでは、ロールの範囲をロール定義エントリのサブツリーを超えて拡張できる属性が用意されています。この単一値属性nsRoleScopeDNは、既存ロールに追加する範囲のDNを含みます。nsRoleScopeDN属性は、ネストされたロールにのみ追加できます。「ネストされたロール定義の例」を参照してください。
このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。
nsRoleScopeDN属性により、あるサブツリーのロールの範囲を拡張して、他のサブツリーのエントリを含めることができます。たとえば、example.comディレクトリ・ツリーの2つの主要サブツリーである、o=eng,dc=example,dc=com(エンジニアリング・サブツリー)およびo=sales,dc=example,dc=com(セールス・サブツリー)を考えます。エンジニアリング・サブツリーのユーザーは、セールス・サブツリーのロール(SalesAppManagedRole)で管理されるセールス・アプリケーションへのアクセス権が必要になります。ロールの範囲を拡張するには、次を実行します。
たとえば、ロールEngineerManagedRoleを作成します。この例では、管理対象ロールを使用しますが、フィルタ処理されたロールまたはネストされたロールでも同様にできます。
エンジニアリング・ユーザーには必要な権限を付与して、SalesAppPlusEngNestedRoleロール、さらにはセールス・アプリケーションにアクセスできるようにする必要があります。さらに、ロールの範囲全体をレプリケートする必要があります。
注意: 拡張する範囲をネストされたロールに制限することは、以前あるドメインでロールを管理していた管理者は、他のドメインの既存ロールを使用する権限しか持たないことを意味します。管理者は他のドメインで任意のロールを作成できません。