Ссылки LDAP для ADAM

В соответствии с RFC 2251, ADAM (Active Directory Application Mode) поддерживает использование ссылок. С помощью ссылок можно использовать ADAM для перенаправления LDAP-клиентов к более подходящему расположению в ответ на запрос данного клиента. Кроме того, как указано в RFC 2251, ADAM может возвращать ссылки в ответ на запрос любой операции LDAP, за исключением запроса на отмену привязки и запроса на сброс, которые не требуют ответа. В ADAM используются данные ссылок в объектах crossRef, которые хранятся в контейнере разделов раздела конфигурации каталога.

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

Ссылка должна содержать не менее одного адреса URL (Uniform Resource Locator). Если это возможно, ADAM возвращает, по меньшей мере, три ссылки, что обеспечивает достаточное количество ссылок для клиентов в распределенной среде. Ссылка не возвращается при поиске с типом singleLevel или wholeSubtree, в котором область поиска распространяется на несколько контекстов именования и для выполнения операции требуется обращение к нескольким серверам. Вместо этого возвращаются сведения о продолжении.

Если объект crossRef с соответствующем разделом каталога существует, он используется в ADAM для предоставления ссылок. Если же объект crossRef отсутствует, но в опрашиваемом пространстве имен применяется DNS-именование (DC=), в ADAM составляется DNS-имя, которое будет использоваться в качестве ссылки. Если в запрашиваемом пространстве имен не применяется DNS-именование, используется главная ссылка при ее наличии. Главная ссылка формируется с помощью атрибута superiorDnsRoot раздела конфигурации объекта crossRef. Если главная ссылка не сформирована (по умолчанию она не создается), возвращается ошибка.

Формирование ссылок из объекта crossRef

Если для объекта crossRef задан атрибут dNSRoot (по умолчанию атрибут dNSRoot не задан), ADAM возвращает DNS-имя в качестве ссылки для запрашиваемого пространства имен (по умолчанию для атрибута dNSRoot установлено значение NULL). Затем клиент может перейти по данной ссылке через зарегистрированные DNS-записи на каждом узле, содержащем запрашиваемое пространство имен.

Если для атрибута dNSRoot установлено значение NULL, ссылка формируется на базе других сведений об объекте crossRef:

  • ADAM обращается к атрибуту msDS-NC-Replica-Locations, чтобы выявить объекты параметров NTDS, соответствующие экземплярам, которые содержат данный раздел (например: CN=NTDS Settings,CN=Machine1$instance1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,CN={<GUID>}). Если данный раздел каталога присутствует более чем в трех экземплярах ADAM, случайным образом выбирается набор из трех экземпляров.

  • Из объекта параметров NTDS (авторизованный источник сведений для порта связи в данном каталоге) ADAM извлекает атрибут msDS-PortLDAP для данного порта связи.

  • Из родительского объекта (объекта сервера), ADAM извлекает атрибут dNSHostName (instance1.machine1.example.com). Атрибут dNSHostName является авторизованным источником имени узлового сервера, он может представлять собой DNS-имя узла или IP-адрес узла. В случае изменения имени сервера этот объект позволяет получить обновленные сведения.

  • После этого в ADAM формируется ссылка на основе сведений сервера и порта связи. ADAM возвращает несколько ссылок по каждому запросу, что позволяет клиенту выполнить запрос даже в том случае, если один или несколько из представленных в ссылках узлов недоступны. В ADAM выбирается случайное число расположений (по умолчанию три), которые используются в течение пяти минут, после чего выбираются три других узла. Количество узлов и время их действия можно настраивать. Если заданное число узлов превышает фактическое количество экземпляров, содержащих данный раздел каталога, все эти узлы возвращаются в качестве ссылок и используются в течение неограниченного времени. Эти сведения хранятся в кэше crossref и обновляются каждый раз при новом формировании этого кэша. Кэш crossref автоматически формируется заново при изменении msds-nc-replica-locations, то есть при добавлении или удалении экземпляра ADAM.

Примечание

Чтобы настроить возврат ссылок в экземпляре ADAM, следует соответствующим образом изменить представленные в следующей ниже таблице значения для атрибута msDS-Other-Settings объекта службы каталога или объекта crossRef.

Имя значения По умолчанию Значение

MaxReferrals

3

Максимальное количество ссылок, возвращаемое ADAM

ReferralRefreshInterval

5 минут

Интервал обновления сведений о ссылках

SelfReferralOnly

0

При установке значения 1 ADAM не будет возвращать ссылки

Формирование ссылок без объектов crossRef

Если объект crossRef отсутствует в базе поиска и представленное в запросе различающееся имя использует синтаксис DNS (DC=), в ADAM формируется DNS-имя. В противном случае в ADAM при помощи атрибута supref раздела каталога конфигурации (при соответствующей настройке этого атрибута) формируется главная ссылка. По умолчанию значение этого атрибута равняется NULL, он должен быть настроен явным образом. В противном случае ссылки не создаются.