第3章 一意の数値属性値の割り当ておよび管理


一部のエントリー属性値には、uidNumbergidNumber などの一意の番号が必要です。Distributed Numeric Assignment (DNA) プラグインを使用すると、設定された番号の範囲から一意の番号を自動的に生成し、指定した属性に割り当てるように Directory Server を設定できます。

注記

DNA プラグインは 属性の一意性 を保証するわけではありません。プラグインが管理する範囲から値を手動で割り当てた場合、プラグインでその値が一意であるかどうかはチェックされません。

DNA プラグインを使用すると、サプライヤー上の異なるローカル DNA プラグインインスタンスに、別の範囲を設定して、レプリケーションの競合を効果的に回避できます。たとえば、サプライヤー A は 1 から 1000 までの番号を、サプライヤー B は 1001 から 2000 までの番号を割り当て可能です。これにより、各サプライヤーが真に一意の番号セットを使用するようになります。

3.1. 動的番号の割り当ての概要

DNA プラグインは、インスタンスが発行できる使用可能な番号の範囲を割り当てます。範囲の定義は 2 つの属性で定義されます。サーバーで次に使用可能な番号 (範囲の下限値) と最大値 (範囲の上限値) です。プラグインを設定するときに、初期の下限値を設定します。追って、プラグインはこの下限値を更新します。

利用可能な数を各レプリカの複数の範囲に分割することで、サーバーは互いに重複することなく、継続的に番号を割り当てることができます。

3.1.1. フィルター、検索、およびターゲットエントリー

サーバーは、内部的にソートされた検索を実行し、次に指定された範囲がすでに別のサーバーによって取得されているかどうかを確認します。管理属性には、適切な順序のマッチングルールで等価インデックスを割り当てる必要があります。

DNA プラグインは、常にディレクトリーツリーの特定領域 (スコープ) と、そのサブツリー内の特定のエントリータイプ (フィルター) に適用されます。

重要

DNA プラグインは 単一 のデータベースでのみ動作し、複数のデータベースの番号割り当てを管理することはできません。DNA プラグインはソートコントロールを使用して、DNA プラグイン以外で手動で値が割り当てられているかどうかを確認します。ただし、ソートコントロールを使用したこの検証は、単一のデータベースでのみ機能します。

3.1.2. dnaMagicRegen を使用して一意の番号を割り当てる

DNA プラグインが管理する属性のテンプレート値としてマジック値 (dnaMagicRegen) を使用します。このマジック値は、サーバー範囲外の数値または単語です。エントリーがマジック値とともに追加され、そのエントリーが DNA プラグインの設定されたスコープとフィルター内にある場合、マジック値によってプラグインが自動的にトリガーされ、新しい一意の値が生成されます。

たとえば、ldapmodify ユーティリティーを使用して、マジック値としてゼロ (0) を追加できます。

#  ldapmodify -D "cn=Directory Manager" -W -x
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: posixAccount
uid: jsmith *cn: John Smith
uidNumber: 0
gidNumber: 0
Copy to Clipboard Toggle word wrap

設定された dnaMagicRegen により、DNA プラグインはエントリーが追加されたときに、マジック値と等しい値を持つ属性に対してのみ一意の値を生成します。DNA プラグインにマジック値を設定しない場合、プラグインによって管理対象属性のすべての値が上書きされます。

注記
DNA プラグインが 1 つの属性のみを管理し、追加されたエントリーに管理対象属性が含まれていない場合、追加操作がトリガーとなって DNA プラグインがこの属性を追加し、その一意の値を生成します。

3.1.3. 同じ範囲の複数の属性

DNA プラグインは、一意の番号の単一範囲から、1 つまたは複数の属性タイプに一意の番号を割り当てることができます。

これにより、属性に一意の番号を割り当てる方法が複数提供されます。

  • 単一の属性タイプに、一意の範囲から単一の番号を割り当てる。
  • 1 つのエントリー内の 2 つの属性に、同じ一意の番号を割り当てる。
  • 2 つの異なる属性は、同じ範囲の一意の数字から 2 つの異なる数字を割り当てていました。

多くの場合は、属性タイプごとに一意の番号を割り当てるだけで十分です。たとえば、新しい従業員エントリーに employeeID を割り当てる場合、各従業員エントリーが一意の employeeID を確実に割り当てるようにすることが重要です。

ただし、同じ範囲の番号から一意の番号を複数の属性に割り当てることができます。たとえば、uidNumbergidNumberposixAccount エントリーに割り当てる場合、DNA プラグインは両方の属性に同じ番号を割り当てることができます。これを行うには、両方の管理属性を変更操作に渡し、ldapmodify ユーティリティーを使用してマジック値 (0) を指定します。

#  ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x

dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: uidNumber
uidNumber: 0
-
add:gidNumber
gidNumber: 0
Copy to Clipboard Toggle word wrap

オブジェクトクラスで 1 つの属性しか許可されない場合、DNA プラグインは、複数の属性を処理する際に、一意の値を 1 つの属性にのみ割り当てることができます。たとえば、posixGroup オブジェクトクラスでは gidNumber は許可されますが、uidNumber は許可されません。DNA プラグインが uidNumbergidNumber の両方を管理する場合、posixGroup エントリーを作成するときに、uidNumbergidNumber の属性範囲から gidNumber に一意の番号を割り当てます。すべての管理属性のプールを共有すると、一意の番号の一貫した割り当てが確保され、異なるエントリーの uidNumbergidNumber が別々の範囲の同じ番号になるという競合を防止します。

DNA プラグインが複数の属性を管理する場合、1 回の変更操作ですべての属性に同じ値が割り当てられます。ただし、エントリーが範囲に対して定義されている各タイプの属性を許可していない場合、またはエントリーが定義されているすべての属性タイプを許可しているが、属性のサブセットのみが一意の値を必要とする場合は、個別の変更操作を実行して、同じ範囲から 異なる 番号を割り当てる必要があります。以下に例を示します。

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: uidNumber
idNumber: 0
^D

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: employeeId
employeeId: magic
Copy to Clipboard Toggle word wrap

例3.1 例: DNA および一意の銀行口座番号

銀行の例では、顧客の primaryAccount 属性と customerID 属性に同じ一意の番号を使用します。銀行の例の管理者は、DNA プラグインが同じ範囲から両方の属性に一意の値を割り当てるよう設定していました。

銀行では、顧客 ID とプライマリーの口座番号と同じ範囲のセカンダリー口座に番号を割り当てますが、これらの数字をプライマリーの口座番号と同じにすることはできません。銀行の例の管理者は、DNA プラグインを設定して secondaryAccount 属性も管理するようにしますが、エントリーが作成され、primaryAccount 属性と customerID 属性が割り当てられた後にのみ、エントリーに secondaryAccount 属性を追加します。これにより、primaryAccountcustomerID が同じ一意の番号を共有し、secondaryAccount 番号は完全に一意でありながら同じ番号範囲からのものになります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat