ディレクトリの名前バインディング
名前バインディングは、エントリがネームスペースのどこに表示されるかを定義します。CA Directory では、ディレクトリ内の親子関係ごとに個別の名前バインディングが必要です。
cad141jp
名前バインディングは、エントリがネームスペースのどこに表示されるかを定義します。CA Directory では、ディレクトリ内の親子関係ごとに個別の名前バインディングが必要です。
エントリを指定するために複数の属性を同時に使用できます。その場合は、カンマによって属性を区切ります。キーワード
optional
を使用して、オプションの追加命名属性を指定することもできます。名前バインディング定義
例 1:
この例では、新しい定義(任意に loc-country と命名)によって、locality エントリを country の下に配置でき、stateOrProvinceName 属性によってその命名を行う必要があることを示しています。
set name-binding dxserver-nb:6 = { name = loc-country locality allowable-parent country named-by stateOrProvinceName };
DIT 構造を参照してください。例に記載されている名前バインディングに基づいて、「country」の下に「locality」エントリを作成する方法が表示されています。
画像には、「locality」エントリが「country」オブジェクト クラスの下に正常に作成されたことが表示されています。
例 2:
この例では、新しい定義(任意に loc-org と命名)によって、locality エントリを organization の下に配置でき、stateOrProvinceName 属性によってその命名を行う必要があることを示しています。set name-binding dxserver-nb:8 = {name = loc-orglocality allowable-parent organizationnamed-by stateOrProvinceName};
DIT 構造を参照してください。例 2 に記載されている名前バインディングに基づいて、「organization」の下に「locality」エントリを作成する方法が表示されています。
画像には、「locality」エントリが「country」オブジェクト クラスの下に正常に作成されたことが表示されています。
例 3:
DIT 構造を参照してください。inetOrgPerson オブジェクト クラスの下に locality を作成しようとした際のエラーが表示されています。このエラーは、inetOrgPerson オブジェクト クラスの下に locality を作成する条件が、スキーマに記載されていないために発生します。
この画像では、ユーザが inetOrgPerson オブジェクト クラスの下に licality を作成しようとしています。
この画像では、エラーが表示されています。
例: 高度な名前バインディング定義
set name-binding x500nbind:22 = { name = orgUnit-orgPerson organization allowable-parent organizationalUnit named-by commonName optional surname };
名前バインディングの確認
エントリを追加するかエントリの名前を変更するたびに、DSA は名前バインディング ルールを確認します。ディレクトリ内の親子関係と特定のエントリによって使用されるネーミング属性の両方を強制するには、名前バインディングが必要です。システムは、以下のように名前バインディング エラーをレポートします。
Update Error: Naming Violation.
警告を有効にすると(set trace = warn,…;)、システムは名前バインディングに失敗した理由を示すメッセージをコンソールに送信します。
名前バインディングの確認には 1 つの例外があります。オブジェクトが DSA のネーミング コンテキスト(またはプレフィックス)の下に追加されると、名前バインディングは存在する必要がなくなります。これにより、関連の名前バインディングの定義を変更する必要がなくなり、ディレクトリのネーミング コンテキストの変更が促進されます。この状況で、CA Directory は以下のメッセージを表示します。
Relaxed name bindings under root.
名前バインディングと構造型オブジェクト クラス
エントリに複数のオブジェクト クラスがあると、DSA は、名前バインディングのそのリストを参照し、親の構造型オブジェクト クラスのいずれかと、適切なネーミング属性が含まれているエントリのいずれかの構造型オブジェクト クラスの間にバインディングが存在することを確認します。その後に、この構造型オブジェクトを使用して、名前バインディングを検索し、他のすべての補助型オブジェクト クラスを無視します。
DSA では、名前バインディングが親オブジェクト関係を満たし、オブジェクトがリーフ エントリである場合にのみ、構造型オブジェクト クラスを変更できます。
名前バインディングとエイリアス
DSA では、同等な名前バインディング ルールによって許可される同じ属性を使用して指定する場合に、有効なオブジェクトの代わりにエイリアス エントリを作成できます。エイリアスの名前バインディングは自動的に行われます。手動では設定しません。
エイリアスを配置できる DIT のすべての部分に対して、オブジェクト エイリアス名前バインディングを定義する必要はありません。
たとえば、org と orgUnit 間の名前バインディングがあるときは、organizationalUnitName 属性を使用して命名するときに、DSA でエイリアスを organization オブジェクトの下に配置できます。
名前バインディングをサポートしないスキーマの考慮事項
スキーマを名前バインディングまたは構造ルールをサポートしないディレクトリからインポートした場合、CA Directory は名前バインディングなしで動作できます。この機能を有効にするには、設定ファイルに以下のコマンドを追加します。
set ignore-name-bindings = true;
get user
コマンドを使用して、このフラグの状態を取得できます。