5.4. 属性の一意性の有効化
属性の値がディレクトリー全体またはサブツリー全体で一意であることを確認するには、デフォルトでは無効になっている属性一意性プラグインを使用できます。
次のいずれかの方法で、属性の一意性を検証するようにプラグインを設定できます。
uniqueness-subtreesパラメーターを使用して、プラグインが属性の一意性をチェックする必要があるサブツリーのリストを設定します。次に例を示します。uniqueness-attribute-name: mail uniqueness-subtrees: ou=accounting,dc=example,dc=com uniqueness-subtrees: ou=sales,dc=example,dc=com uniqueness-across-all-subtrees: on uniqueness-exclude-subtrees: ou=private,ou=people,dc=example,dc=com詳細は、サブツリーに対する Attribute Uniqueness プラグインの設定 を参照してください。
uniqueness-top-entry-ocパラメーターを使用して親エントリーオブジェクトクラスを設定します。更新されたエントリーの親エントリーにこのオブジェクトクラスが含まれている場合、プラグインは親エントリーサブツリーの下の属性の一意性をチェックします。たとえば、プラグインを次のように設定できます。uniqueness-attribute-name: mail uniqueness-top-entry-oc: nsContainer uniqueness-subtree-entries-oc: inetOrgPerson uniqueness-exclude-subtrees: ou=private,ou=people,dc=example,dc=com詳細は、オブジェクトクラスに対する Attribute Uniqueness プラグインの設定 を参照してください。
プラグインの複数の設定エントリーを作成して、異なる条件を適用できます。Directory Server は、プラグインのすべての設定エントリーを cn=plugins,cn=config の下に保存します。
5.4.1. コマンドラインを使用したサブツリーに対する Attribute Uniqueness プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
dsconf ユーティリティーを使用して、プラグインで属性の一意性をチェックする必要があるサブツリーのリストを設定できます。サブツリーは、接尾辞など、ディレクトリー内の任意のエントリーになります。
ou=sales,dc=example,dc=com および ou=accounting,dc=example,dc=com サブツリーの下のエントリー内の mail 属性の一意性を検証するようにプラグインを設定するには、次の例の手順を使用します。
前提条件
- root 権限がある。
手順
新しいプラグイン設定エントリーを作成します。
# dsconf <instance_name> plugin attr-uniq add "Mail Uniqueness" --attr-name mail --subtree ou=sales,dc=example,dc=com ou=accounting,dc=example,dc=comこのコマンドは、
cn=Mail Uniqueness,cn=plugins,cn=config設定エントリーを作成します。注記プラグインを設定すると、1 つの設定エントリー内の複数の属性の一意性を検証できます。
オプション: このプラグイン設定エントリーで設定されたすべてのサブツリーにわたって一意性を設定します。
# dsconf <instance_name> plugin attr-uniq set "Mail Uniqueness" --across-all-subtrees onこのコマンドは
uniqueness-across-all-subtreesプラグイン設定パラメーターをonに設定します。したがって、プラグインはou=sales,dc=example,dc=comおよびou=accounting,dc=example,dc=comサブツリーの両方でmail属性を一意性をチェックします。デフォルトでは、プラグインはエントリーが作成または更新されるサブツリー全体でのみ一意性をチェックします。つまり、ou=sales,dc=example,dc=comの下にエントリーを作成または更新すると、プラグインはこのサブツリー全体でのみmail属性の一意性をチェックします。オプション: プラグインが属性の一意性の検証から除外する必要があるサブツリーを設定します。
たとえば、プラグインで
ou=internal,ou=sales,dc=example,dc=comサブツリーをスキップする場合は、uniqueness-exclude-subtrees複数値パラメーターを設定します。# dsconf <instance_name> plugin attr-uniq set "Mail Uniqueness" --exclude-subtree "ou=internal,ou=sales,dc=example,dc=com"Successfully changed the cn=Mail Uniqueness,cn=plugins,cn=configオプション: プラグインで特定のオブジェクトクラスを含むエントリーのみの一意性を検証する場合は、このオブジェクトクラスを
uniqueness-subtree-entries-ocパラメーターの値として設定します。たとえば、
inetOrgPersonオブジェクトクラスが含まれるエントリーでのみmail属性を一意にするには、次のように入力します。# dsconf <instance_name> plugin attr-uniq set "Mail Uniqueness" --subtree-entries-oc=inetOrgPersonサーバーでプラグインを有効にします。
# dsconf <instance_name> plugin attr-uniq enable "Mail Uniqueness"インスタンスを再起動します。
# dsctl <instance_name> restart
検証
設定エントリーの詳細を表示します。
# dsconf <instance_name> plugin attr-uniq show "Mail Uniqueness" dn: cn=Mail Uniqueness,cn=plugins,cn=config cn: Mail Uniqueness nsslapd-plugin-depends-on-type: database nsslapd-pluginDescription: Enforce unique attribute values nsslapd-pluginEnabled: on ... uniqueness-across-all-subtrees: on uniqueness-attribute-name: mail uniqueness-exclude-subtrees: ou=internal,ou=sales,dc=example,dc=com uniqueness-subtree-entries-oc: inetOrgPerson uniqueness-subtrees: ou=accounting,dc=example,dc=com uniqueness-subtrees: ou=sales,dc=example,dc=com
5.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 属性を検索するには、次の例の手順を使用します。
前提条件
- root 権限がある。
手順
新しいプラグイン設定エントリーを作成します。
# dsconf <instance_name> 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プラグインパラメーターを使用して、cn=Mail uniqueness with OC,cn=plugins,cn=configエントリーを作成します。オプション: プラグインが属性の一意性の検証から除外する必要があるサブツリーを設定します。
たとえば、プラグインで
ou=internal,ou=sales,dc=example,dc=comサブツリーをスキップする場合は、uniqueness-exclude-subtrees複数値パラメーターを設定します。# dsconf <instance_name> plugin attr-uniq set "Mail Uniqueness with OC" --exclude-subtree "ou=internal,ou=sales,dc=example,dc=com"Successfully changed the cn=Mail Uniqueness with OC,cn=plugins,cn=configサーバーでプラグインを有効にします。
# dsconf <instance_name> plugin attr-uniq enable "Mail Uniqueness with OC" Successfully enabled the cn=Mail Uniqueness with OC,cn=plugins,cn=configインスタンスを再起動します。
# dsctl <instance_name> restart
検証
設定エントリーの詳細を表示します。
# dsconf <instance_name> 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
5.4.3. Web コンソールを使用したサブツリーに対する Attribute Uniqueness プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して、Attribute Uniqueness プラグインを設定できます。プラグインの異なる設定エントリーを作成して、異なる条件を適用できることに注意してください。
ou=sales,dc=example,dc=com および ou=accounting,dc=example,dc=com サブツリーの下のエントリー内の mail 属性の一意性を検証するようにプラグインを設定するには、次の例の手順を使用します。
前提条件
- root 権限がある。
- Web コンソールにログインしている。詳細は、Web コンソールを使用した Directory Server へのログイン を参照してください。
手順
- プラグインを設定するインスタンスを選択します。
- Plugins メニューを開き、一覧から Attribute Uniqueness プラグインを選択します。
- ボタンをクリックして、プラグインの新しい設定エントリーの指定を開始します。
- Config Name フィールドに設定エントリーの名前を入力します。
-
Attribute Names フィールドで一意である必要がある属性を選択します。このフィールドは
uniqueness-attribute-name属性を設定します。 プラグインが Subtrees フィールドで属性の一意性をチェックするサブツリーを入力します。このフィールドは
uniqueness-subtrees属性を設定します。デフォルトでは、プラグインはエントリーが作成または更新されるサブツリー全体でのみ一意性をチェックします。リストされているすべてのサブツリーをチェックするには、
uniqueness-across-all-subtrees属性をonに設定する チェックボックスをオンにします。-
オプション: プラグインが属性の一意性検証から除外する必要があるサブツリーを Excluded Subtrees フィールドに入力します。たとえば、
ou=eu_department,ou=accounting,dc=example,dc=comを除外するとします。このフィールドは、uniqueness-exclude-subtrees複数値属性を設定します。 -
Configuration is enabledの位置にスイッチを切り替えます。 ボタンをクリックして、プラグイン設定エントリーの作成を完了します。
図5.1 Attribute Uniqueness プラグインの設定例。
- インスタンスを再起動します。詳細は、Web コンソールを使用した Directory Server インスタンスの起動および停止 を参照してください。
検証
- 設定エントリーのリストで新しく作成されたプラグインエントリーを見つけます。