Подтвердить что ты не робот

Как узнать, какой сервер поддерживает LDAP в моем домене Windows?

Я пытаюсь разработать приложение (С#) для запроса LDAP-сервера. Я не знаю, на самом деле сервер с именем запроса - есть ли способ узнать, используя стандартные инструменты Windows или что-то в .net?

Я также слышал слухи, что наличие имени сервера (ldap://server/) не всегда необходимо, если у меня есть dc = domain, dc = com в моей строке запроса, но я так далеким образом удалось работать с ним таким образом.

Любые советы?

Спасибо

4b9b3361

Ответ 1

Если вы используете AD, вы можете использовать serverless binding, чтобы найти контроллер домена для домена по умолчанию, а затем использовать LDAP://rootDSE для получения информации о сервере каталогов, как описано в связанной статье.

Ответ 2

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 для получения дополнительной информации.

Ответ 3

Если используемый вами компьютер является частью домена 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.