我们在运行 Active Directory 的公司网络上,我们想测试一些 LDAP 内容(实际上是 Active Directory 成员资格提供程序),到目前为止,我们都无法弄清楚我们的 LDAP 连接字符串是什么。有人知道我们如何找到它吗?我们唯一知道的是我们所在的域。
答案1
ASP.NET Active Directory 成员资格提供程序使用指定的用户名、密码和“连接字符串”对 Active Directory 进行身份验证绑定。连接字符串由 LDAP 服务器的名称以及指定用户所在的容器对象的完全限定路径组成。
连接字符串以 URI 开头LDAP://
。
对于服务器名称,您可以使用该域中的域控制器的名称 - 假设为“dc1.corp.domain.com”。这给了我们LDAP://dc1.corp.domain.com/
上述信息。
下一位是绑定用户所在的容器对象的完全限定路径。假设您使用的是“管理员”帐户,并且您的域名是“corp.domain.com”。 “管理员”帐户位于名为“用户”的容器中,该容器位于域根目录下一级。因此,“用户”容器的完全限定 DN 将是:CN=Users,DC=corp,DC=domain,DC=com
。如果您绑定的用户位于 OU 中,而不是容器中,则路径将包含“OU=ou-name”。
Service Accounts
因此,使用名为 的 OU (该 OU 是名为 的 OU 的子 OU,Corp Objects
该 OU 是名为 的域的子 OU)中的帐户corp.domain.com
将具有完全限定路径OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com
。
LDAP://dc1.corp.domain.com/
将与绑定用户所在容器的完全限定路径(比如说)结合起来LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com
,就得到了“连接字符串”。
(您可以在连接字符串中使用域名,而不是域控制器的名称。区别在于域名将解析为任何域中的域控制器。这既有好处也有坏处。您不依赖任何单个域控制器启动并运行成员资格提供程序,但名称恰好解析为远程位置的 DC,网络连接不稳定,那么您可能会遇到成员资格提供程序无法正常工作的问题。)
答案2
dsquery /?
在命令提示符中输入。
例如:dsquery user -name Ja*
获取名称以 Ja* 开头的所有用户的连接字符串。
答案3
我只是使用 Softerra 的这个工具(他们制作了一款出色的免费 LDAP 浏览器)从当前登录的用户那里获取用户 DN: http://www.ldapbrowser.com/download.htm