Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

5.3. サービスクラスについて

サービスクラス (CoS) は、アプリケーションが認識できない方法でエントリー間で属性を共有します。CoS では、一部の属性値がエントリー自体と一緒に保存されない場合があります。代わりに、エントリーがクライアントアプリケーションに送信される際に、サービスクラスのロジックにより生成されます。
たとえば、ディレクトリーには、すべてが共通の属性 facsimileTelephoneNumber を共有する数千ものエントリーが含まれています。従来は、FAX 番号を変更するためには、各エントリーを個別に更新する必要があり、管理者にとっては大きな負担となり、すべてのエントリーが更新されないリスクがありました。CoS を使用すると、属性値を動的に生成できます。facsimileTelephoneNumber 属性は 1 つのロケーションに保存され、各エントリーはその場所から各自の FAX 番号の属性を取得します。アプリケーションの場合、これらの属性は、実際にはエントリー自体に保存されていないにもかかわらず、他のすべての属性と同じように表示されます。
各 CoS は、ディレクトリー内の複数のエントリーで構成されています。
  • CoS 定義エントリー は、CoS のタイプを識別します。これは、影響を与えるブランチの下に LDAP サブエントリーとして保存されます。
  • テンプレートエントリー には、共有属性値の一覧が含まれます。テンプレートエントリー属性値を変更すると、その属性を共有するすべてのエントリーに自動的に適用されます。
CoS 定義エントリーとテンプレートエントリーは相互に作用して、ターゲットエントリー (そのスコープ内のエントリー) に属性値を提供します。提供する値は、以下によって異なります。
  • エントリーの DN (ディレクトリーツリーの異なる部分に異なる CoS が含まれる場合があります)。
  • エントリーで保存されるサービスクラスの属性値。
    サービスクラス属性がない場合、特定のデフォルト CoS を意味することがあります。
  • CoS テンプレートエントリーに保存される属性値。
    各 CoS テンプレートエントリーは、特定の CoS の属性値を提供します。
  • エントリーのオブジェクトクラス。
    COS の属性値は、スキーマチェックが有効な場合、エントリーに属性を許可するオブジェクトクラスが含まれている場合にのみ生成され、そうでない場合は、すべての属性値が生成されます。
  • ディレクトリーツリーの特定エントリーの一部に保存される属性。
重要
CoS 定義で使用する属性をインデックス化しないでください (cosAttribute パラメーター)。
注記
ロールと従来の CoS を併用することで、ロールベースの属性を提供することができます。これらの属性は、エントリーが特定の役割を持ち、関連する CoS テンプレートを持っているために表示されます。たとえば、ロールベースの属性を使用して、サーバーのルックスルー制限をロールごとに設定することができます。

5.3.1. Pointer CoS について

ポインター CoS は、テンプレート DN のみを使用してテンプレートエントリーを特定します。各ポインター CoS ごとに、1 つのテンプレート DN しか存在しない場合があります。ポインター CoS は、テンプレートエントリーの範囲内にあるすべてのエントリーに適用されます。
たとえば、図5.1「Pointer CoS のサンプル」 のポインター CoS は、dc=example,dc=com の下に保存されているすべてのエントリーと共通の郵便番号を共有します。

図5.1 Pointer CoS のサンプル

Pointer CoS のサンプル
テンプレートエントリーは、CoS 定義エントリーの DN (cn=exampleUS,cn=data) で識別されます。postalCode 属性がエントリー cn=wholiday,ou=people,dc=example,dc=com に対してクエリーされるたびに、Directory Server は、テンプレートエントリー cn=exampleUS,cn=data で使用可能な値を返します。