4.2. オブジェクトクラスを介した Attribute Uniqueness プラグインの設定
Attribute Uniqueness プラグインを設定して、特定のオブジェクトクラスが含まれるサブツリーエントリーで属性の値が一意になるようにすることができます。プラグインを設定するには、以下の設定パラメーターを設定する必要があります。
-
uniqueness-top-entry-ocこのパラメーターは、プラグインが属性の一意性を検証するサブツリーを一意に識別します。プラグインは、それらの親エントリーに
uniqueness-top-entry-oc
に設定した特定のオブジェクトクラスが含まれるエントリーでのみ一意性を検証します。Directory Server が更新されたエントリーの親エントリーでオブジェクトクラスを見つけられなかった場合、検索はディレクトリーツリーのルートまで、次に高いレベルのエントリーで続行されます。 -
uniqueness-subtree-entries-ocこのパラメーターは、プラグインがチェックする必要のあるエントリーを特定します。
uniqueness-subtree-entries-oc
パラメーターにオブジェクトクラスを設定する場合、プラグインはこの特定のオブジェクトクラスが含まれる更新されたエントリーでのみ属性の一意性を検証します。
以下の手順例を使用して、nsContainer
オブジェクトクラスセットが含まれるエントリー下のすべてのエントリーで mail
属性を一意に設定するには、inetOrgPerson
オブジェクトクラスを含むエントリーで mail
属性を検索します。
前提条件
- Directory Manager のパーミッションがある。
手順
新しいプラグイン設定エントリーを作成します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq add "Mail Uniqueness with OC" --attr-name mail --subtree-entries-oc=inetOrgPerson --top-entry-oc=nsContainer
このコマンドは
、設定された
を作成します。uniqueness-top-entry-oc
およびuniqueness-subtree-entries-oc
プラグインパラメーターを使用して、OC,cn=plugins,cn=configエントリーでcn=Mail Uniquenessオプション:プラグインが属性の一意性検証から除外する必要のあるサブツリーを設定します。
たとえば、プラグインが
ou=internal,ou=sales,dc=example,dc=com
サブツリーを省略するには、ldapmodify
ユーティリティーを使用してuniqueness-exclude-subtrees
パラメーターを設定します。# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x dn: cn=Mail Uniqueness with OC,cn=plugins,cn=config changetype: modify add: uniqueness-exclude-subtrees uniqueness-exclude-subtrees: ou=internal,ou=sales,dc=example,dc=com
サーバーでプラグインを有効にします。
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq enable "Mail Uniqueness with OC"
インスタンスを再起動します。
# dsctl instance_name restart
検証
設定エントリーの詳細を表示します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq show "Mail Uniqueness with OC" dn: cn=Mail Uniqueness with OC,cn=plugins,cn=config cn: Mail Uniqueness with OC nsslapd-plugin-depends-on-type: database nsslapd-pluginDescription: none nsslapd-pluginEnabled: on ... uniqueness-attribute-name: mail uniqueness-exclude-subtrees: ou=internal,ou=sales,dc=example,dc=com uniqueness-subtree-entries-oc: inetOrgPerson uniqueness-top-entry-oc: nsContainer