別名エントリを伴う検索や読み取り操作の結果は、別名の参照を行うかどうかによって異なります。別名の参照は LDAP クライアントが指定します。別名の参照フラグには、次の 4 つの設定が可能です。
別名の参照をしない
エントリが別名エントリであっても、すべての操作が指定の識別名を持つエントリに適用されます。これがデフォルトの設定です。
ベースオブジェクトを検索するときに別名の参照を行う
ベースオブジェクトは、検索するエントリサブツリーの一番上のエントリです。この設定では、ベースオブジェクトとして別名を指定すると別名の参照が行われますが、検索の間に得られる他のすべての別名には別名の参照は行われません。
検索のときに別名の参照を行う
検索操作を行なっている場合には、検索で指定または使用するすべての別名エントリに対し、ベースオブジェクトを除き、別名の参照が行われます。検索の結果が別名エントリなら、別名エントリの代わりに別名のオブジェクトが返されます。そのため、識別名の内容に基づく検索で予期しない結果になることがあります。つまり、要求した識別名条件に含まれるエントリが別名であったため、それに対し別名の参照が行われ、返されたいくつかのエントリの中に要求した情報がないのです。
常に別名の参照を行う
操作で指定または使用するすべての別名に対し、別名の参照が行われます。
たとえば、ディレクトリに次の対のエントリがあるとします。
cn=Stan Smith, role=Personnel Administrator, ou=Personnel, o=XYZ, c=US |
|
次の属性を持つ |
objectclass=orgPerson |
|
cn=Stan Smith |
|
telephoneNumber=123 456 7890 |
|
mail=dtmail |
cn=personnel, o=XYZ, c=US |
|
次の属性を持つ |
objectclass=alias objectclass=aliasObject |
|
cn=personnel aliasedObjectName="cn=Stan Smith, role=Personnel Administrator, ou=Personnel, o=XYZ, c=US" |
検索時に別名の参照を行う場合、サブツリー o=XYZ、c=US で cn=personnel の電話番号を検索すると、Stan Smith の電話番号が得られます。別名の参照を行わない場合、電話番号は得られません。
役割に対し別名を定義すると、役割の担当者がしばしば変わるような場合 (たとえば、時間外に呼び出される当直のネットワークマネージャのような場合)、特に便利です。ユーザーはいつも同じ名前で照会できるからです。aliasedObjectName の値はスクリプトで変更できます。このスクリプトは、スケジュールに従って実行され、ldapmodify を呼び出して変更を行います。
ldapsearch で別名の参照の使い方を指定する方法については、ldapsearch(1) のマニュアルぺージを参照してください。