7.2. サービスのクラスの割り当て
サービス定義 (CoS) は、アプリケーションに透過的な方法でエントリー間で属性を共有します。CoS はエントリー管理を簡素化し、ストレージ要件を削減します。
Directory Server のクライアントは、ユーザーのエントリーの属性を読み取ります。CoS では、一部の属性値はエントリー自体に保存されない可能性があります。代わりに、エントリーがクライアントアプリケーションに送信されるため、これらの属性の値はサービスロジックのクラスによって生成されます。
各 CoS は、ディレクトリー内に 2 種類のエントリーで設定されます。
- CoS 定義エントリー。CoS 定義エントリーは、使用される CoS のタイプを識別します。ロール定義エントリーと同様に、LDAPsubentry オブジェクトクラスから継承されます。CoS 定義エントリーは、有効なブランチの下にあります。
- テンプレートエントリー。CoS テンプレートエントリーには、共有属性値のリストが含まれます。テンプレートエントリー属性値への変更は、CoS の範囲内のすべてのエントリーに自動的に適用されます。1 つの CoS に、複数のテンプレートエントリーが関連付けられている場合があります。
CoS 定義エントリーとテンプレートエントリーは、CoS の範囲内で任意のターゲットエントリーに属性情報を提供するために対話します。
7.2.1. CoS 定義エントリーの概要
CoS 定義エントリーは、cosSuperDefinition オブジェクトクラスのインスタンスです。CoS 定義エントリーには、エントリーを生成するために使用するテンプレートエントリーのタイプを指定する 3 つのオブジェクトクラスのいずれか 1 つも含まれています。CoS と対話するターゲットエントリーは、CoS 定義エントリーと同じ親を共有します。
CoS には 3 つのタイプの CoS 定義エントリーを使用して定義されます。
- ポインター CoS。ポインター CoS は、テンプレート DN のみを使用してテンプレートエントリーを特定します。
- 間接的な CoS。間接 CoS は、ターゲットエントリーの属性の 1 つを使用してテンプレートエントリーを識別します。たとえば、間接的な CoS はターゲットエントリーの
manager
属性を指定する場合があります。次に、manager
属性の値を使用してテンプレートエントリーを特定します。ターゲットエントリーの属性は単値であり、DN が含まれる必要があります。 - Classic CoS。Classic CoS は、テンプレートエントリーのベース DN とターゲットエントリーの属性の 1 つの値を使用してテンプレートエントリーを特定します。
CoS の各タイプのオブジェクトクラスおよび属性に関する詳細は、「コマンドラインでの CoS の管理」を参照してください。
CoS ロジックが、CoS が値を生成する属性を含むことを検出すると、デフォルトでは CoS が値を生成する属性を検出すると、クライアントアプリケーションにエントリー自体の属性値が提供されます。ただし、CoS 定義エントリーはこの動作を制御できます。
7.2.2. CoS テンプレートエントリーの概要
CoS テンプレートエントリーには、CoS ロジックによって生成された属性の値 (1 つまたは複数) が含まれます。CoS テンプレートエントリーには、一般的なオブジェクトクラス cosTemplate が含まれます。特定の CoS テンプレートエントリーは、CoS 定義とともにディレクトリーツリーに保存されます。
テンプレートエントリーの相対識別名 (RDN) は、以下のいずれかで決定されます。
- テンプレートエントリーの DN のみ。このタイプのテンプレートは Pointer CoS 定義に関連付けられます。
- ターゲットエントリーの属性の 1 つの値。テンプレートエントリーに相対 DN を提供するために使用される属性は、
cosIndirectSpecifier
属性を使用して CoS 定義エントリーに指定されます。このタイプのテンプレートは、間接 CoS 定義に関連付けられます。 - CoS がテンプレートの 1 つのレベル検索を実行するサブツリーの DN と、ターゲットエントリーの属性の 1 つの値の組み合わせ。このタイプのテンプレートは、Classic CoS 定義に関連付けられます。
7.2.3. Pointer CoS の仕組み
管理者は、dc=example,dc=com に保存されているすべてのエントリーと共通の郵便番号を共有するポインター CoS を作成します。図7.2「Pointer CoS のサンプル」に示されるように、この CoS の 3 つのエントリーが表示されます。
図7.2 Pointer CoS のサンプル
![Pointer CoS のサンプル](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Administration_Guide-ja-JP/images/fc6de87a2666473d379248d832285d5b/cos1.png)
この例では、テンプレートエントリーが CoS 定義エントリーの DN cn=exampleUS,cn=data で識別されます。
postalCode
属性がエントリー cn=wholiday,ou=people,dc=example,dc=com に対してクエリーされるたびに、Directory Server は、テンプレートエントリー cn=exampleUS,cn=data で使用可能な値を返します。
7.2.4. 間接的な CoS の仕組み
管理者は、ターゲットエントリーの
manager
属性を使用してテンプレートエントリーを識別する間接的な CoS を作成します。図7.3「間接的な CoS の例」に示されるように、3 つの CoS エントリーが表示されます。
図7.3 間接的な CoS の例
![間接的な CoS の例](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Administration_Guide-ja-JP/images/b8f946dce3f2cda06072d4f6502fe384/cos2.png)
この例では、Wiiam Holiday のターゲットエントリーには間接指定子 (
manager
属性) が含まれます。William のマネージャーは Carla Fuentes であるため、manager
属性にはテンプレートエントリーの DN へのポインター cn=Carla Fuentes,ou=people,dc=example,dc=com が含まれます。テンプレートエントリーは次に、318842 の departmentNumber
属性値を提供します。
7.2.5. Classic CoS の仕組み
管理者は、テンプレート DN と CoS 指定子の組み合わせを使用して、有番号を含むテンプレートエントリーを特定します。図7.4「Classic CoS のサンプル」に示されるように、3 つの CoS エントリーが表示されます。
図7.4 Classic CoS のサンプル
![Classic CoS のサンプル](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Administration_Guide-ja-JP/images/ebc5108c7f13df8099f649b59c5ebe9f/cos3.png)
この例では、CoS 定義エントリーの
cosSpecifier
属性は、employeeType
属性を指定しています。この属性は、テンプレート DN と組み合わせて、テンプレートエントリーを cn=sales,cn=exampleUS,cn=data として特定します。その後、テンプレートエントリーは、postalCode
属性値をターゲットエントリーに提供します。
7.2.6. 物理属性値の処理
cosAttribute
属性には、サービスのクラスによって管理される別の属性の名前が含まれます。この属性は、属性値の後に override 修飾子を許可します。属性値の生成時に、CoS がエントリーの既存の属性値を処理する方法を設定します。
cosAttribute: attribute_name override
override 修飾子は 4 つあります。
- default: エントリーに対応する属性値が格納されてない場合のみ、生成された値を返します。
- override: エントリーに値が保存されている場合でも、常に CoS によって生成された値を返します。
- operational: 生成された属性が検索で明示的に要求されている場合にのみ、生成された属性を返します。操作属性は、返されるためにスキーマチェックに合格する必要はありません。operational を使用すると、既存の属性値も上書きされます。注記属性は、スキーマで操作可能として定義されている場合にのみ操作可能にすることができます。たとえば、CoS が
description
属性の値を生成する場合、この属性はスキーマで稼働していないため、operational 修飾子を使用することはできません。 - operational-default: エントリーに対応する属性値が格納されておらず、検索で明示的に要求された場合にのみ、生成された値を返します。
修飾子が設定されていない場合は、default と仮定されます。
たとえば、このポインター CoS 定義エントリーは、
postalCode
属性の値を生成するテンプレートエントリー cn=exampleUS,ou=data,dc=example,dc=com に関連付けられていることを示しています。override 修飾子は、この値が postalCode
属性のエントリーによって保存される値よりも優先されることを示しています。
dn: cn=pointerCoS,dc=example,dc=com
objectclass: top
objectclass: cosSuperDefinition
objectclass: cosPointerDefinition
cosTemplateDn: cn=exampleUS,ou=data,dc=example,dc=com
cosAttribute: postalCode override
注記
エントリーに CoS によって生成された属性値が含まれる場合、操作修飾子または上書き修飾子で定義された場合には、属性の値を手動で更新することは できません。
CoS 属性の詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 を参照してください。
7.2.7. CoS を使用した多値属性の処理
属性は、サービスのクラスを使用して生成できます。これには複数値の属性が含まれます。これにより、混乱を生じさせる可能性があります。どの CoS が値を提供しますか。これらのいずれか、またはすべてですか。競合 CoS テンプレートからどのように値が選択されていますか。生成された属性は単値または多値を使用しますか。
これを解決する方法は 2 つあります。
- 複数の CoS が生成する属性をターゲットエントリーにマージするルールを作成。これにより、ターゲットエントリーの値が複数表示されます。
- 競合する CoS 定義の中から 1 つの CoS 値を選択するように優先度を設定。これにより、ターゲットエントリーに 1 つの値が生成されます。
注記
Indirect CoS は
cosPriority
属性をサポートしません。
CoS が CoS 属性の複数の値を処理する方法は、merge-schemes 修飾子を使用するかどうかで定義されます。
cosAttribute: attribute override merge-schemes
注記
merge-schemes 修飾子は、CoS による物理属性値や override 修飾子の処理方法に影響を与えません。競合する CoS テンプレートまたは定義が複数ある場合は、競合するすべての CoS 定義のすべての
cosAttribute
に、同じ merge-schemes および override 修飾子を設定する必要があります。それ以外の場合は、1 つの組み合わせが可能なすべての CoS 定義から任意に選択されます。
merge-schemes 修飾子を使用すると、CoS に、マネージド属性に対して複数の値を生成する、または生成できることを通知します。多値 CoS 属性を持つシナリオは 2 つあります。
- 1 つの CoS テンプレートエントリーに管理 CoS 属性のインスタンスが複数含まれるため、ターゲットエントリーに多値が作成されます。以下に例を示します。
dn: cn=server access template,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate accessTo: mail.example.com accessTo: irc.example.com
注記このメソッドは、Classic CoS でのみ動作します。 - 複数の CoS 定義が同じターゲット属性にサービスクラスを定義する可能性があるため、複数のテンプレートエントリーがあります。以下に例を示します。
dn: cn=mail template,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate accessTo: mail.example.com dn: cn=chat template,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate accessTo: irc.example.com
ただし、CoS 定義が複数ある場合でも、属性には 1 つの値のみが生成されることがあります。CoS 定義が複数ある場合、値は任意に選択されます。これは予測不可で、意図しないオプションです。どの CoS テンプレートを使用するかを制御する方法は、テンプレートに順位 (優先順位) を設定することであり、優先順位の高い CoS が常に勝ち、値を提供します。
値を提供するために複数のテンプレートが完成することはかなり一般的です。たとえば、CoS 定義エントリーには複数値の
cosSpecifier
属性を使用できます。テンプレートの優先度は、cosPriority
属性を使用して設定します。この属性は、特定のテンプレートのグローバル優先度を表します。0 の優先度が最も優先されます。
たとえば、部門番号を生成する CoS テンプレートエントリーは、以下のようになります。
dn: cn=data,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate departmentNumber: 71776 cosPriority: 0
このテンプレートエントリーには、
departmentNumber
属性の値が含まれます。優先度はゼロであるため、このテンプレートは、別の departmentNumber
値を定義する他の競合するテンプレートよりも優先されます。
cosPriority
属性が含まれないテンプレートは、優先度が最も低いとみなされます。2 つ以上のテンプレートが属性値を提供し、優先度が同じ (または優先順位がない) 場合は、値が任意に選択されます。
注記
負の
cosPriority
値の動作は Directory Server では定義されないため、負の値を入力しないでください。
7.2.8. CoS 指定の属性の検索
CoS 定義はエントリーで属性の値を指定します。たとえば、CoS はサブツリー内のすべてのエントリーに
postalCode
属性を設定できます。ただし、これらの CoS 定義属性に対する検索は、通常のエントリーに対する検索のように動作しません。
CoS が定義する属性が、あらゆる種類のインデックス (存在を含む) でインデックス化されている場合、CoS によって設定される値を持つ属性は検索で返されません。以下に例を示します。
ldapsearch コマンドでフィルター (postalCode=*) が使用される場合、Barbara Jensen のエントリーが返されますが、Tedris のエントリーは返されません。
- Ted Morris の
postalCode
属性は、CoS によって定義されます。 - Barbara Jensen の
postalCode
属性は、Barbara Jensen 自身のエントリーに設定されます。 postalCode
属性はインデックス化されます。
CoS が定義されている属性がインデックス化されて いない 場合には、属性の値がローカルで設定されるか、CoS と設定されている場合にかかわらず、一致するすべてのエントリーが検索で返されます。以下に例を示します。
ldapsearch コマンドでフィルター (postalCode=*) を使用する場合は、Barbara Jensen のエントリーと Ted Morris のエントリーの両方が返されます。
- Ted Morris の
postalCode
属性は、CoS によって定義されます。 - Barbara Jensen の
postalCode
属性は、Barbara Jensen 自身のエントリーに設定されます。 postalCode
属性はインデックス化 されません。
CoS は override を許可します。これは、CoS エントリーの
cosAttribute
属性に指定された ID です。つまり、属性のローカル値は CoS 値を上書きできます。CoS に上書きが設定されていると、エントリーのローカル値があるかぎり、ldapsearch 操作は属性がインデックス化された場合でもエントリーの値を返します。CoS を持ち、ローカル値を持たない他のエントリーは、ldapsearch 操作では返されません。
CoS で定義した属性で LDAP 検索要求を実行する際に問題が発生する可能性があるため、CoS を使用して生成する属性を決定する際には注意してください。
7.2.9. アクセス制御と CoS
サーバーは、通常の保存属性と同じように、CoS が生成した属性へのアクセスを制御します。ただし、CoS によって生成された属性の値によってはアクセス制御ルールは機能しません。これは、検索フィルターで CoS が生成する属性の使用に適用される制限と同じです。
7.2.10. コマンドラインでの CoS の管理
すべての設定情報とテンプレートデータはディレクトリーにエントリーとして格納されるため、標準の LDAP ツールを使用して CoS 設定および管理に使用できます。
7.2.10.1. コマンドラインでの CoS 定義エントリーの作成
各タイプの CoS では、定義エントリーに特定のオブジェクトクラスを指定する必要があります。すべての CoS 定義オブジェクトクラスは、LDAPsubentry オブジェクトクラスと cosSuperDefinition オブジェクトクラスから継承されます。
ポインター CoS は cosPointerDefinition オブジェクトクラスを使用します。例7.2「Pointer CoS エントリーの例」 に示されるように、このオブジェクトクラスは、
cosTemplateDn
属性で指定されたエントリー DN 値を使用してテンプレートエントリーを識別します。
例7.2 Pointer CoS エントリーの例
dn: cn=pointerCoS,dc=example,dc=com objectclass: top objectclass: cosSuperDefinition objectclass:cosPointerDefinition
cosTemplateDn
:DN_string cosAttribute:list_of_attributes qualifier cn: pointerCoS
間接 CoS は cosIndirectDefinition オブジェクトクラスを使用します。このタイプの CoS は、
cosIndirectSpecifier
属性で指定されているターゲットエントリーの属性のいずれかの値に基づいてテンプレートエントリーを識別します。これは、例7.3「間接的な CoS エントリーの例」 で説明されています。
例7.3 間接的な CoS エントリーの例
dn: cn=indirectCoS,dc=example,dc=com objectclass: top objectclass: cosSuperDefinition objectclass:cosIndirectDefinition
cosIndirectSpecifier
:attribute_name cosAttribute:list_of_attributes qualifier cn: indirectCoS
クラス CoS は cosClassicDefinition オブジェクトクラスを使用します。これは、テンプレートエントリーの DN (
cosTemplateDn
属性に設定) と、ターゲットエントリーの属性のいずれかの値 (cosSpecifier
属性に設定) の両方を使用してテンプレートエントリーを特定します。これは、例7.4「Classic CoS エントリーの例」 で説明されています。
例7.4 Classic CoS エントリーの例
dn: cn=classicCoS,dc=example,dc=com objectclass: top objectclass: cosSuperDefinition objectclass:cosClassicDefinition
cosTemplateDn
:DN_stringcosSpecifier
:attribute_name cosAttribute:list_of_attributes qualifier cn: classicCoS
サービスのクラスの場合、オブジェクトクラスは CoS のタイプを定義し、サポート属性は CoS テンプレートを定義することで影響を受けるディレクトリーエントリーを識別します。各 CoS には、定義できる属性が 1 つあります (
cosAttribute
)。CoS の目的は、複数のエントリーに属性値を提供することです。cosAttribute
属性は、CoS が生成する属性を定義します。
7.2.10.2. コマンドラインでの CoS テンプレートエントリーの作成
各テンプレートエントリーは、cosTemplate オブジェクトクラスのインスタンスです。
注記
新しいテンプレートエントリーに LDAPsubentry オブジェクトクラスを追加することを検討してください。CoS テンプレートエントリーを LDAPsubentry オブジェクトクラスのインスタンスに設定すると、通常の検索を設定エントリーに妨げられずに実行することができます。ただし、テンプレートエントリーがすでに存在し、ユーザーエントリーなどの他のものに使用される場合は、LDAPsubentry オブジェクトクラスをテンプレートエントリーに追加する必要はありません。
CoS テンプレートエントリーには、CoS (CoS 定義エントリーの
cosAttribute
属性で指定) によって生成された属性とその属性の値も含まれます。
たとえば、
postalCode
属性の値を提供する CoS テンプレートエントリーは、以下のようになります。
dn:cn=exampleUS,ou=data,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate postalCode: 44438
以下のセクションでは、テンプレートエントリーの例と、各タイプの CoS 定義エントリーの例を示します。
7.2.10.3. Pointer CoS の例
Corporation の管理者の例では、dc=example,dc=com ツリー内のすべてのエントリーと共通の郵便番号コードを共有するポインター CoS を作成します。
- ldapmodify を使用して、新しい pointer CoS 定義エントリーを dc=example,dc=com 接尾辞に追加します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=pointerCoS,dc=example,dc=com changetype: add objectclass: top objectclass: cosSuperDefinition objectclass: cosPointerDefinition cosTemplateDn: cn=exampleUS,ou=data,dc=example,dc=com cosAttribute: postalCode
- テンプレートエントリーを作成します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=exampleUS,ou=data,dc=example,dc=com changetype: add objectclass: top objectclass: extensibleObject objectclass: cosTemplate postalCode: 44438
CoS テンプレートエントリー (cn=exampleUS,ou=data,dc=example,dc=com) は、
postalCode
属性に保存された値を dc=example,dc=com 接尾辞に置かれているエントリーに提供します。これらのエントリーはターゲットエントリーです。
7.2.10.4. 間接的な CoS の例
この間接 CoS は、ターゲットエントリーの
manager
属性を使用して CoS テンプレートエントリーを識別します。これは、属性の値によって異なります。
- ldapmodify を使用して、dc=example,dc=com 接尾辞に新しい間接 CoS 定義エントリーを追加します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=indirectCoS,dc=example,dc=com changetype: add objectclass: top objectclass: cosSuperDefinition objectclass: cosIndirectDefinition cosIndirectSpecifier: manager cosAttribute: departmentNumber
ディレクトリーまたはマネージャーエントリーに
departmentNumber
属性がすでに含まれる場合は、他の属性をマネージャーエントリーに追加する必要はありません。この属性は定義エントリーの cosIndirectSpecifier
属性に指定されるため、定義エントリーは manager
属性が含まれるエントリーのターゲット接尾辞 (dc=example,dc=com 下のエントリー) を検索します。次に、一覧表示された manager エントリーの departmentNumber
値を確認します。departmentNumber
属性の値は、manager
属性を持つマネージャーの下位すべてに自動的にリレーされます。departmentNumber
の値は、異なるマネージャーのエントリーに記載されている部門番号によって異なります。
7.2.10.5. Classic CoS の例
Corporation の例の管理者は、テンプレート DN と
cosSpecifier
属性で指定された属性の組み合わせを使用して、郵便番号コードを自動的に生成する Classic CoS を作成します。
- ldapmodify を使用して、新しいクラス CoS 定義エントリーを dc=example,dc=com 接尾辞に追加します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=classicCoS,dc=example,dc=com changetype: add objectclass: top objectclass: cosSuperDefinition objectclass: cosClassicDefinition cosTemplateDn: cn=classicCoS,dc=example,dc=com cosSpecifier: businessCategory cosAttribute: postalCode override
- 営業部門およびマーケティング部門のテンプレートエントリーを作成します。CoS 属性をテンプレートエントリーに追加します。テンプレートの
cn
は、ターゲットエントリーのbusinessCategory
属性の値を設定し、テンプレートの値に応じて属性を追加または上書きされます。# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=sales,cn=classicCoS,dc=example,dc=com changetype: add objectclass: top objectclass: extensibleObject objectclass: cosTemplate postalCode: 44438 - dn: cn=marketing,cn=classicCoS,dc=example,dc=com changetype: add objectclass: top objectclass: extensibleObject objectclass: cosTemplate postalCode: 99111
Classic CoS 定義エントリーは、dc=example,dc=com 接尾辞の下にあるすべてのエントリーに適用されます。エントリー内の
businessCategory
属性と cosTemplateDn
の組み合わせによって、2 つのテンプレートのいずれかに到達できます。1 つ目は営業テンプレートで、営業部門に従業員固有の郵便番号コードを提供します。マーケティングテンプレートは、マーケティング部門の従業員固有の郵便番号コードを提供します。
7.2.10.6. CoS エントリーの検索
CoS 定義エントリーは 操作上 のエントリーで、デフォルトでは、通常の検索では返されません。検索の CoS 定義エントリーを返すには、ldapSubEntry オブジェクトクラスを CoS 定義エントリーに追加します。以下に例を示します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=pointerCoS,ou=People,dc=example,dc=com changetype: add objectclass: ldapSubEntry
次に、
ldapsearch
ユーティリティーで (objectclass=ldapSubEntry) フィルターを使用して、ldapSubEntry オブジェクトクラスを含むエントリーを検索します。以下に例を示します。
# ldapsearch -x -s sub -b ou=People,dc=example,dc=com "(|(objectclass=*)(objectclass=ldapSubEntry))"
この検索は、ou=People,dc=example,dc=com サブツリーの CoS 定義エントリーに加えて、すべての通常のエントリーを返します。
7.2.10.7. costargettree 属性
costargettree
属性は、CoS スキーマが適用されるサブツリーを定義します。スキーマと複数の CoS スキーマの costargettree
の値は、任意にターゲットツリーと重複する可能性があります。
OID | 2.16.840.1.113730.3.1.552 |
構文 | DirectoryString |
多値または単一値 | 単一値 |
定義される場所 | Directory Server |
7.2.11. ロールベースの属性の作成
Classic CoS スキームは、エントリーが所有するロールに基づいてエントリーの属性値を生成します。たとえば、ロールベースの属性を使用して、エントリーごとにサーバーのルックスルー制限を設定できます。
ロールベースの属性を作成するには、Classic CoS の CoS 定義エントリーで
nsRole
属性を cosSpecifier
として使用します。nsRole
属性が多値指定できるため、複数のテンプレートエントリーを持つ CoS スキームを定義できます。使用するテンプレートエントリーの曖昧さを解決するには、CoS テンプレートエントリーに cosPriority
属性を追加します。
たとえば、この CoS は manager ロールのメンバーが標準のメールボックスクォータを超過できるようにします。マネージャーのロールエントリーは次のとおりです。
dn: cn=ManagerRole,ou=people,dc=example,dc=com objectclass: top objectclass: nsRoleDefinition objectclass: nsComplexRoleDefinition objectclass: nsFilteredRoleDefinition cn: ManagerRole nsRoleFilter: ou=managers Description: filtered role for managers
警告
nsRoleFilter
属性は仮想属性の値を受け付けません。
仮想属性値にインデックスを付けないでください。仮想属性で検索を実行すると、予期しないシステム動作や不正確な検索結果が発生する可能性があります。インデックス付けされていない検索は、検索フィルターで仮想属性を使用する検索アクションを中断します。仮想属性は動的に生成され、Directory Server バックエンドには保存されません。したがって、仮想属性はインデックス付けをサポートしていません。
Classic CoS 定義エントリーは以下のようになります。
dn: cn=managerCOS,dc=example,dc=com objectclass: top objectclass: cosSuperDefinition objectclass: cosClassicDefinition cosTemplateDn: cn=managerCOS,dc=example,dc=com cosSpecifier: nsRole cosAttribute: mailboxquota override
cosTemplateDn
属性は、cosSpecifier
属性で指定された属性 (ターゲットエントリーの nsRole
属性) とともに CoS テンプレートエントリーを識別する値を提供します。CoS テンプレートエントリーは、mailboxquota
属性の値を提供します。override の他の修飾子は、ターゲットエントリーの既存の mailboxquota
属性値をオーバーライドするように、CoS に指示します。
対応する CoS テンプレートエントリーは以下のようになります。
dn:cn="cn=ManagerRole,ou=people,dc=example,dc=com",cn=managerCOS,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: cosTemplate mailboxquota: 1000000
テンプレートは、
mailboxquota
属性の値 1000000 を指定します。
注記
ロールエントリーと CoS 定義およびテンプレートエントリーは、ディレクトリーツリーの同じレベルにある必要があります。