Поделиться через


Рефералы (ADSI)

Рефералы происходят, когда сервер, который запрашивается, не содержит эти данные, но может найти его. Целевой сервер возвращает результирующий набор, который может включать как фактические данные, так и ссылку на другой сервер для получения дополнительных данных. Включив рефералов, базовый клиентский код ADSI будет использовать эти данные рефералов для получения целевого объекта с сервера, описанного в реферальных данных. Помните, что отключение отслеживания ссылок может привести к снижению результирующих наборов, в то время как включение хозяйки рефералов может привести к тому, что запрос может охватывать множество серверов. По возможности рекомендуется использовать глобальный каталог.

Дополнительные сведения о рефералах и реферальных преследованиях в Active Directory см. в рефералов.

Например, когда клиент указывает серверу A (A) запрашивать объект пользователя (U), А может предложить клиенту продолжить поиск на сервере B (B), если U не находится в A, но известно, что он находится в B. Клиент имеет выбор для проведения реферала или нет. Рекомендации по поиску освобождают клиента от необходимости расширенного распознавания возможностей каждого сервера. Однако клиент должен указать тип рефералов, которые должен сделать сервер.

Active Directory предлагает службы рефералов поиска. Клиент может выбрать любой из следующих типов рефералов:

  • Никогда: сервер не должен создавать ссылку на клиента, даже если он распознает, что другой сервер хранит запрошенные данные.

  • Внешний: сервер должен создавать ссылки, если запрос можно разрешить на другом сервере другого дерева каталогов. Например, клиент запрашивает "OU=Sales,DC=Fabrikam,DC=COM" на сервере fab01 на домене "Fabrikam.com". Однако объект не принадлежит "fab01", но, как известно, находится на сервере arc01 на домене "Fabrikam.com". Таким образом, "fab01" ссылается на клиента на "arc01".

  • Подчиненный: сервер должен создавать ссылки, если запрос может быть разрешен на сервере, имя которого формирует непрерывный путь от исходного сервера. Область поиска должна находиться на уровне поддерев.

    Например, сервер A содержит объекты в "DC=Sales,DC=Fabrikam,DC=Com". Сервер B содержит объекты в "DC=Сиэтл,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 глобальный каталог содержит все объекты в заданном предприятии. Поиск сервера глобального каталога обеспечивает более высокую производительность, чем выполнение рекомендаций с одного сервера на другой.

 

В большинстве случаев реферальная погоня будет прозрачной для вызывающего абонента. Если реферал является объектом в другом домене или лесу, базовый API LDAP попытается использовать текущие учетные данные для привязки к целевому объекту ссылки. Если это успешно, рефераловая погоня будет прозрачной. Если это не успешно, возвращается рефералов и код ошибки рефералов.

Дополнительные сведения об использовании параметров отслеживания ссылок с определенным интерфейсом поиска см. в следующих статье: