5.4. 管理エントリーについて
一部のクライアントおよび Red Hat Directory Server との統合には、2 つのエントリーが必要です。たとえば、Possix システムには、通常、各ユーザーにグループがあります。Directory Server の管理エントリープラグインは、適切な作成元のエントリーが作成されるたびに、属性の正確な値と特定の値で新しい管理エントリーを自動的に作成します。
基本的な概念は、エントリー A が作成され、関連する属性値を持つエントリー B が自動的に作成されるべき状況があるということです。たとえば、Posix ユーザー (posixAccount エントリー) が作成されると、対応するグループエントリー (posixGroup エントリー) も作成する必要があります。管理エントリープラグインのインスタンスは、プラグインが、新しいエントリー (管理エントリー) を自動的に生成するエントリー (作成元のエントリー) を識別します。また、管理エントリー設定を定義する個別のテンプレートエントリーも指定します。
管理エントリープラグインのインスタンスは、以下の 3 つを定義します。
- (検索範囲と検索フィルターを使用する) 作成元のエントリーを識別する検索基準
- 管理エントリーを作成するサブツリー (新しいエントリーの場所)
- 管理エントリーに使用するテンプレートエントリー
図5.4 管理エントリーの定義
以下に例を示します。
dn: cn=Posix User-Group,cn=Managed Entries,cn=plugins,cn=config objectclass: extensibleObject cn: Posix User-Group originScope: ou=people,dc=example,dc=com originFilter: objectclass=posixAccount managedBase: ou=groups,dc=example,dc=com managedTemplate: cn=Posix User-Group Template,ou=Templates,dc=example,dc=com
作成元のエントリーには、管理エントリーを作成するために特別な設定または設定は必要ありません。プラグインの範囲内に作成し、指定の検索フィルターと一致させる必要があります。
5.4.1. 管理エントリーのテンプレートの定義
テンプレートエントリーは、静的属性 (事前定義した値を持つ) とマッピングされた属性 (元のエントリーから値をプルするマッピング属性) を使用して、管理エントリーの設定全体をレイアウトします。
dn: cn=Posix User-Group Template,ou=Templates,dc=example,dc=com objectclass: mepTemplateEntry cn: Posix User-Group Template mepRDNAttr: cn mepStaticAttr: objectclass: posixGroup mepMappedAttr: cn: $uid Group mepMappedAttr: gidNumber: $gidNumber mepMappedAttr: memberUid: $uid
テンプレートのマップされた属性は、先頭にドル記号 ($) を追加して作成元のエントリーから値をプルして管理エントリーで使用するトークンを使用します。
図5.5 管理エントリー、テンプレート、および作成元のエントリー
注記
静的属性およびマップされた属性に与えられた値が、必要な属性の構文に従っていることを確認してください。
5.4.2. 管理エントリープラグインにより書き込まれるエントリー属性
作成元のエントリーと管理エントリーの両方には、管理エントリープラグインのインスタンスによって管理されていることを示す特別な管理エントリー属性があります。作成元のエントリーでは、プラグインは関連付けられた管理エントリーへのリンクを追加します。
dn: uid=jsmith,ou=people,dc=example,dc=com objectclass: mepOriginEntry objectclass: posixAccount ... sn: Smith mail: jsmith@example.com mepManagedEntry: cn=jsmith Posix Group,ou=groups,dc=example,dc=com
管理エントリーでは、プラグインはテンプレートで定義された属性の他に、作成元のエントリーを参照する属性を追加します。
dn: cn=jsmith Posix Group,ou=groups,dc=example,dc=com objectclass: mepManagedEntry objectclass: posixGroup ... mepManagedBy: uid=jsmith,ou=people,dc=example,dc=com
特別な属性を使用して、管理および作成元のエントリーを示すことで、関連するエントリーを簡単に特定し、管理エントリープラグインによる変更を評価できます。
5.4.3. 管理エントリープラグインおよび Directory Server 操作
管理エントリープラグインは、Directory Server が追加や削除などの一般的な操作を実行する方法に多少の影響を与えます。
- 追加。すべての追加操作では、サーバーは新しいエントリーが管理エントリープラグインインスタンスの範囲内にあるかどうかを確認します。作成元エントリーの基準を満たすと、管理エントリーが作成され、管理エントリー関連の属性が元のエントリーと管理エントリーの両方に追加されます。
- 修正。作成元のエントリーが変更されると、プラグインをトリガーして管理エントリーを更新します。ただし、テンプレート エントリーを変更しても、自動的に管理エントリーを更新しません。テンプレートエントリーへの変更は、次に作成元エントリーが変更するまで、管理エントリーに反映されません。管理エントリー 内 でマップされた管理属性は、管理エントリープラグインでのみ手動で変更することができません。マネージドエントリーの他の属性 (管理エントリープラグインによって追加された静的属性を含む) は手動で変更できます。
- 削除。作成元のエントリーが削除されると、管理エントリープラグインもそのエントリーに関連付けられた管理エントリーを削除します。削除できるエントリーにはいくつかの制限があります。
- テンプレートエントリーは、プラグインインスタンス定義で現在参照されている場合は削除できません。
- 管理エントリーは、管理エントリープラグイン以外では削除できません。
- 名前の変更。元のエントリーの名前を変更した場合は、プラグインは対応する管理エントリーを更新します。エントリーがプラグインスコープの 外 に移動すると、管理エントリーが削除されますが、エントリーがプラグインスコープの 中 に移動した場合は、追加操作のように処理され、新しい管理エントリーが作成されます。削除操作と同様に、名前変更または移動できるエントリーに制限があります。
- 設定定義エントリーは、コンテナーエントリーの管理エントリープラグインを外に移動できません。エントリーが削除されると、そのプラグインインスタンスが非アクティブになります。
- エントリーが管理エントリープラグインのコンテナーエントリー 内 に移動する場合、これは検証され、アクティブな設定定義として処理されます。
- テンプレートエントリーの名前を変更したり、プラグインインスタンス定義で現在参照している場合は移動したりすることはできません。
- 管理エントリープラグイン以外が、管理エントリーの名前を変更したり、移動したりできません。
- レプリケーション。管理エントリープラグイン操作は、レプリケーションの更新によって開始しません。プラグインスコープのエントリーの追加または修正操作が別のレプリカに複製される場合、その操作はレプリカで管理エントリープラグインインスタンスを発生させず、エントリーを作成または更新しません。管理エントリーの更新を複製する唯一の方法は、最終管理エントリーをレプリカに複製することです。