照会システムでは、エントリがそのサーバーにないと、ディレクトリサーバーは、照会をクライアントに戻し、別のディレクトリサーバーに照会するよう要求します。ほとんどの LDAP クライアントライブラリは、照会に従ってユーザーの元の要求を自動的に出し直します。
Sun Directory Services に照会を定義する方法には次の 2 つがあります。
ディレクトリサーバーのデフォルト照会
照会エントリ
デフォルト照会はディレクトリサーバーごとに構成時に設定するパラメータで、別の「ディレクトリサーバー」へのポインタです。通常、照会先のサーバーは、検索の範囲を広げるために、現在のサーバーよりも高いディレクトリ情報ツリーのノードを持ちます。
照会エントリは、ディレクトリ情報ツリーのどのレベルにでも作成できます。このエントリでは、別の「データ格納」にあるディレクトリ情報ツリーのサブツリーを指します。照会エントリの値は URL です。
LDAP v3 サーバーから LDAP v2 サーバーへの照会は作成しないでください。最初の要求が LDAP v3 サーバーに出された場合、ほとんどのライブラリは、LDAP v2 サーバーへの照会に対応できません。
データ格納には最高 100 万エントリまで格納できますが、この制約を解決する方法として照会エントリが使用できます。その場合、ルートエントリのすぐ下に照会エントリを持つデータ格納を作成できます。これらのエントリは、同じサーバーまたは異なるサーバーの別のデータ格納に格納されている広域ディレクトリ情報ツリーのサブツリーを指します。
この仕組みを図 3-4 に示します。
newyork、london、paris の各サーバーは、boston サーバーにあるデータ格納 o=XYZ, c=US へのデフォルト照会を持っています。boston サーバーには、次の 3 つの照会エントリがあります。
l=New-York, ou=XYZ, c=US
l=London, ou=XYZ, c=US
l=Paris, ou=XYZ, c=US
照会エントリには、次の属性を指定します。
objectClass = referral
ref = "ldap://hostname[:port]/DN"
参照先のデータ格納のネーミング属性。これは、ref 属性をネーミング属性として使用しないためですが、この照会エントリ名としても使用します。
たとえば、l=New-York, ou=XYZ, c=US という照会エントリには、次のように指定します。
DN: l=New-York, ou=xyz,c=US objectClass: referral ref: ldap://newyork/ou=New-York,ou=XYZ,c=US l: New-York
l=New-York, ou=XYZ, c=US ツリーの検索が失敗した場合、LDAP プロトコルはデフォルト照会に従って ou=XYZ, c=US ツリーを検索します。ou=XYZ, c=US ツリーの検索が始まると、LDAP プロトコルは、照会エントリに指定された URL に従って参照先のすべてのデータ格納を検索します。