默认使用哪个 LDAP 服务器?

默认使用哪个 LDAP 服务器?

例如,在 C# 中执行 LDAP 请求时,我不需要明确使用 LDAP 服务器地址PrincipalContextDirectoryEntry我可以使用一个,但即使没有它也会找到用户。

这是怎么回事?默认使用哪一个?我可以检查默认使用哪一个吗?

答案1

Active Directory“成员”系统使用 DNS SRV 记录来发现域控制器。域通常会有多个 DC 提供相同的 LDAP 服务,并且您的系统的Netlogon服务将选择一个可用的 DC(最好与您位于同一 AD“站点”中)。

搜索基础 DN 直接来自 DNS 域(即,o=Foo Inc.与非 AD LDAP 系统不同,AD 中没有任何目录)。使用 Windows 在登录时存储的 Kerberos 凭据自动完成对 LDAP 服务器的身份验证。

您可以使用nltest来查找所有 DC 或系统选择的 DC:

  • nslookup -q=SRV _ldap._tcp.<domain>
  • nslookup -q=SRV _ldap._tcp.dc._msdcs.<domain>
  • nslookup -q=SRV _ldap._tcp.<site-name>._sites.dc._msdcs.<domain>
  • nltest /dsgetdc:<domain>
  • nltest /dnsgetdc:<domain>
  • nltest /dsgetsite

您还可以随时观察网络数据包以了解您的程序正在与哪些服务器进行通信。

非 AD 系统通常没有默认 LDAP 服务器。(尽管_ldap._tcp.<domain>SRV 记录通常在 AD 之外使用,但很少有 LDAP 客户端会使用它们。)

相关内容