Как я могу узнать, на каком сервере размещается LDAP в моем домене Windows? - PullRequest
35 голосов
/ 15 апреля 2009

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

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

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

Спасибо

Ответы [ 3 ]

94 голосов
/ 15 апреля 2009

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)

См. Записи Active Directory SRV и Технический документ по Windows 2000 DNS для получения дополнительной информации.

15 голосов
/ 15 апреля 2009

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

12 голосов
/ 15 апреля 2009

Если компьютер, на котором вы находитесь, является частью домена 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) на серверы AD DNS.

Я уверен, что для этого есть супер гладкий способ Windows, но мне нравится использовать метод DNS, когда мне нужно найти серверы LDAP с сервера, отличного от Windows.

...