参照 (ADSI)
参照は、クエリ対象のサーバーにそのデータが含まれていないが、検索できる場合に発生します。 ターゲットサーバーは結果セットを返します。これには、実際のデータと、追加データを取得するための別のサーバーへの参照の両方が含まれる場合があります。 リファーラルチェイシングを有効にすることで、基礎となるADSIクライアントコードは、その参照データを使用して、参照データに記述されたサーバーからターゲットオブジェクトの取得を試みる。 参照追跡を無効にすると結果セットが小さくなる可能性がありますが、参照追跡を有効にするとクエリが多くのサーバーにまたがる可能性があることに注意してください。 可能であれば、グローバルカタログを使用することをお勧めします。
Active Directoryでの参照と参照追跡の詳細については、参照を参照してください。
たとえば、クライアントがサーバーA (A) にユーザーオブジェクト (U) を照会するように指示した場合、Aは、UがAに存在せず、Bに存在することがわかっている場合に、クライアントがサーバーB (B) で検索を続行するように提案できます。クライアントは、参照を続行するかどうかを選択できます。 検索参照によって、クライアントは各サーバーの機能の高度な認識を必要としなくなります。 ただし、クライアントは、サーバーが行う参照の種類を指定する必要があります。
Active Directoryは、検索参照サービスを提供します。 クライアントは、次のいずれかの参照追跡の種類を選択できます。
なしです。要求されたデータが別のサーバーに格納されていることを認識している場合でも、サーバーはクライアントへの参照を生成しません。
外部: 要求が別のディレクトリツリーの別のサーバーで解決できる場合、サーバーは参照を生成する必要があります。 たとえば、クライアントが"Fabrikam.com"ドメインの"fab01"サーバーで"OU=Sales, DC=Fabrikam, DC=COM"を照会したとします。 ただし、オブジェクトは"fab01"に属していませんが、"Fabrikam.com"ドメインの"arc01"サーバー上にあることがわかっています。 したがって、"fab01"はクライアントを"arc01"に参照します。
下位: 名前が元のサーバーからの連続したパスを形成するサーバーで要求を解決できる場合、サーバーは参照を生成する必要があります。 検索スコープはサブツリーレベルである必要があります。
たとえば、サーバーAに"DC=Sales, DC=Fabrikam, DC=Com"のオブジェクトが含まれているとします。 サーバーBには、"DC=Seattle, DC=Sales, DC=Fabrikam, DC=Com"のオブジェクトが含まれています。 サーバーBの名前は、サーバーAからの連続したパスを形成することに注意してください。クライアントがサーバーAに接続し、"DC=Sales, DC=Fabrikam, DC=Com"のサブツリー検索を要求し、参照を下位の種類に指定すると、次のイベントが発生します。
- サーバーAは、スコープ内で認識されているすべてのオブジェクトを返します。
- サーバーAは、"DC=Seattle, DC=Sales, DC=Fabrikam, DC=COM"のオブジェクトがサーバーBにあることをクライアントに通知します。
クライアントは、サーバーBに接続することを選択できます。その場合、次のイベントが発生します。
- サーバーBは、要求されたオブジェクトで応答します。
- サーバーBが連続した名前付けパス上の他のサーバーを検出し、プロセスが続行された場合。
常に: 外部型または下位型のいずれかに基づいて検索を解決できる場合、サーバーは参照を生成します。
注意
Active Directoryでは、グローバルカタログに特定のエンタープライズ内のすべてのオブジェクトが含まれます。 グローバルカタログサーバーを検索すると、あるサーバーから別のサーバーへの参照を追跡するよりもパフォーマンスが向上します。
ほとんどの場合、参照追跡は呼び出し元に対して透過的になります。 別のドメインまたはフォレスト内のオブジェクトへの参照である場合、基になるLDAP APIは、現在の資格情報を使用して参照のターゲットにバインドしようとします。 これが成功した場合、参照追跡は透過的になります。 これが成功しなかった場合は、参照と参照エラーコードが返されます。
特定の検索インターフェイスで参照追跡オプションを使用する方法の詳細については、以下を参照してください。