Ответ 1
Если вы используете AD, вы можете использовать serverless binding, чтобы найти контроллер домена для домена по умолчанию, а затем использовать LDAP://rootDSE для получения информации о сервере каталогов, как описано в связанной статье.
Я пытаюсь разработать приложение (С#) для запроса LDAP-сервера. Я не знаю, на самом деле сервер с именем запроса - есть ли способ узнать, используя стандартные инструменты Windows или что-то в .net?
Я также слышал слухи, что наличие имени сервера (ldap://server/) не всегда необходимо, если у меня есть dc = domain, dc = com в моей строке запроса, но я так далеким образом удалось работать с ним таким образом.
Любые советы?
Спасибо
Если вы используете AD, вы можете использовать serverless binding, чтобы найти контроллер домена для домена по умолчанию, а затем использовать LDAP://rootDSE для получения информации о сервере каталогов, как описано в связанной статье.
AD регистрирует записи ресурсов службы (SRV) на своем DNS-сервере, которые вы можете запросить, чтобы получить порт и имя хоста ответственного сервера LDAP в вашем домене.
Просто попробуйте это в командной строке:
C:\> nslookup
> set types=all
> _ldap._tcp.<<your.AD.domain>>
_ldap._tcp.<<your.AD.domain>> SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = <<ldap.hostname>>.<<your.AD.domain>>
(при условии, что ваш сервер имен является сервером имен AD, который должен иметь место для правильной работы AD)
См. Записи SRV для Active Directory и Белая бумага Windows 2000 DNS для получения дополнительной информации.
Если используемый вами компьютер является частью домена AD, он должен иметь свои серверы имен для серверов имен AD (или, надеюсь, использовать путь DNS-сервера, который в конечном итоге разрешит ваши домены AD). Используя ваш пример dc = domain, dc = com, если вы посмотрите домен domain.com на серверах имен AD, он вернет список IP-адресов каждого контроллера AD. Пример из моей компании (с изменением имени домена, но в остальном это реальный пример):
mokey 0 /home/jj33 > nslookup example.ad Server: 172.16.2.10 Address: 172.16.2.10#53 Non-authoritative answer: Name: example.ad Address: 172.16.6.2 Name: example.ad Address: 172.16.141.160 Name: example.ad Address: 172.16.7.9 Name: example.ad Address: 172.19.1.14 Name: example.ad Address: 172.19.1.3 Name: example.ad Address: 172.19.1.11 Name: example.ad Address: 172.16.3.2
Примечание. Я действительно делаю запрос с машины, отличной от AD, но наши серверы имен unix знают, как отправлять запросы для нашего домена AD (example.ad) на DNS-серверы AD.
Я уверен, что есть супер-гладкий способ сделать это, но мне нравится использовать метод DNS, когда мне нужно найти серверы LDAP с сервера, отличного от Windows.