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 権限がある。

手順

  1. 新しいプラグイン設定エントリーを作成します。

    # 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 つの設定エントリー内の複数の属性の一意性を検証できます。

  2. オプション: このプラグイン設定エントリーで設定されたすべてのサブツリーにわたって一意性を設定します。

    # 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 属性の一意性をチェックします。

  3. オプション: プラグインが属性の一意性の検証から除外する必要があるサブツリーを設定します。

    たとえば、プラグインで 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
  4. オプション: プラグインで特定のオブジェクトクラスを含むエントリーのみの一意性を検証する場合は、このオブジェクトクラスを uniqueness-subtree-entries-oc パラメーターの値として設定します。

    たとえば、inetOrgPerson オブジェクトクラスが含まれるエントリーでのみ mail 属性を一意にするには、次のように入力します。

    # dsconf <instance_name> plugin attr-uniq set "Mail Uniqueness" --subtree-entries-oc=inetOrgPerson
  5. サーバーでプラグインを有効にします。

    # dsconf <instance_name> plugin attr-uniq enable "Mail Uniqueness"
  6. インスタンスを再起動します。

    # 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 権限がある。

手順

  1. 新しいプラグイン設定エントリーを作成します。

    # 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 エントリーを作成します。

  2. オプション: プラグインが属性の一意性の検証から除外する必要があるサブツリーを設定します。

    たとえば、プラグインで 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
  3. サーバーでプラグインを有効にします。

    # dsconf <instance_name> plugin attr-uniq enable "Mail Uniqueness with OC"
    Successfully enabled the cn=Mail Uniqueness with OC,cn=plugins,cn=config
  4. インスタンスを再起動します。

    # 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 属性の一意性を検証するようにプラグインを設定するには、次の例の手順を使用します。

前提条件

手順

  1. プラグインを設定するインスタンスを選択します。
  2. Plugins メニューを開き、一覧から Attribute Uniqueness プラグインを選択します。
  3. Add Config ボタンをクリックして、プラグインの新しい設定エントリーの指定を開始します。
  4. Config Name フィールドに設定エントリーの名前を入力します。
  5. Attribute Names フィールドで一意である必要がある属性を選択します。このフィールドは uniqueness-attribute-name 属性を設定します。
  6. プラグインが Subtrees フィールドで属性の一意性をチェックするサブツリーを入力します。このフィールドは uniqueness-subtrees 属性を設定します。

    デフォルトでは、プラグインはエントリーが作成または更新されるサブツリー全体でのみ一意性をチェックします。リストされているすべてのサブツリーをチェックするには、uniqueness-across-all-subtrees 属性を on に設定する Across All Subtrees チェックボックスをオンにします。

  7. オプション: プラグインが属性の一意性検証から除外する必要があるサブツリーを Excluded Subtrees フィールドに入力します。たとえば、ou=eu_department,ou=accounting,dc=example,dc=com を除外するとします。このフィールドは、uniqueness-exclude-subtrees 複数値属性を設定します。
  8. Configuration is enabled の位置にスイッチを切り替えます。
  9. Add Config ボタンをクリックして、プラグイン設定エントリーの作成を完了します。

    図5.1 Attribute Uniqueness プラグインの設定例。

    管理者 attribute uniqueness プラグイン
  10. インスタンスを再起動します。詳細は、Web コンソールを使用した Directory Server インスタンスの起動および停止 を参照してください。

検証

  • 設定エントリーのリストで新しく作成されたプラグインエントリーを見つけます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る