第6章 プラグイン開始更新のバインド DN の追跡

Directory Server では、プラグインがエントリーを更新するアクションを実行するユーザーを追跡できます。追跡が有効になり、ユーザーが実行するアクションの結果としてプラグインがエントリーを変更した場合は、更新されたエントリーの modifiersname 属性でユーザーの名前を確認できます。

6.1. プラグインによって実行されるエントリー変更のユーザー情報の追跡

ユーザーがエントリーを変更するアクションを実行すると、ディレクトリーツリー全体で他の自動変更をトリガーできます。デフォルトでは、Directory Server は、データ変更を開始したアクションを実行したユーザー名を追跡しません。ユーザー情報を追跡するには、nsslapd-plugin-binddn-tracking パラメーターを使用できます。

たとえば、管理者がユーザーを削除すると、Referential Integrity Postoperation プラグインはすべてのグループからユーザーを自動的に削除します。サーバーにバインドされているユーザーアカウントによって実行されたエントリーの初期アクションを確認できます。ただし、デフォルトで、関連するすべての更新はプラグインによって実行されているように表示され、どのユーザーが更新を開始したかの情報はありません。

2 つ目の例は、MemberOf プラグインを使用してグループメンバーシップでユーザーエントリーを更新する場合があります。グループアカウントの更新はバインドされたユーザーが実行済みとして表示されますが、ユーザーエントリーの編集は MemberOf プラグインによって実行されると表示されます。

dn: cn=example_group,ou=groups,dc=example,dc=com
modifiersname: uid=example,ou=people,dc=example,dc=com

dn: uid=example,ou=people,dc=example,dc=com
modifiersname: cn=MemberOf Plugin,cn=plugins,cn=config

nsslapd-plugin-binddn-tracking パラメーターにより、サーバーは、どのユーザーが更新操作を開始したか、また操作を実際に実行した内部プラグインを追跡できます。バインドされたユーザーは modifiersname および creatorsname の運用属性に表示されますが、更新を実行したプラグインは internalModifiersname および internalCreatorsname 操作属性に表示されます。以下に例を示します。

dn: uid=example,ou=people,dc=example,dc=com
modifiersname: uid=admin,ou=people,dc=example,dc=com
internalModifiersname: cn=MemberOf Plugin,cn=plugins,cn=config

nsslapd-plugin-binddn-tracking パラメーターは、バインドされたユーザーと、その接続に対して実行される更新の関係を追跡し、維持します。

注記

internalModifiersname 属性および internalCreatorsname 属性は、常にプラグインをアイデンティティーとして表示します。属性の値は次のとおりです。

  • cn=ldbm database,cn=plugins,cn=config(コアの Directory Server が変更を実行する際に)
  • プラグインがエントリーを変更した場合の cn=the DN of the plug-in,cn=plugins,cn=config