我们位于运行活动目录的公司网络上,我们想测试一些LDAP内容(实际上是活动目录成员资格提供程序),到目前为止,我们还没有人知道我们的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(即名为Corp Objects的域的子OU)将具有corp.domain.com的完全限定路径。

OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com与带有绑定的容器的完全限定路径结合起来用户所在的位置(例如LDAP://dc1.corp.domain.com/),您已经有了“连接字符串”。

(您可以在连接字符串中使用域名称,而不是域控制器的名称。区别在于域的名称将解析为该域中任何域控制器的IP地址,这可以是好事,也可以是坏事,您不需要依靠任何单个域控制器来启动并运行该成员资格提供程序即可工作,但名称恰好解析为远程网络连接不正常的DC,那么您的成员资格p流浪者工作。)

评论


至少在SBS 2008中,它们似乎已经开始符合OU字符串中的标准“ OU”前缀:CN =您的姓名,OU =用户,DC =示例,DC =本地我们正在运行功能级别2003。

–gravyface
2010-4-8 14:29

好答案。是否可以在连接字符串中向外部域控制器提供查询帐户的登录详细信息?

–丹
2011年6月28日上午9:06

因此,您的意思是,访问ActiveDirectory的远程计算机应该在其自己的域中?如果我的本地计算机不在其域中怎么办?如果我的计算机在工作组中,是否需要传递2个凭据来验证用户身份?我的意思是,一种是登录Windows Server计算机,另一种是验证ActiveDirectory用户的用户名和密码。我对吗?

–Dinesh Kumar P
2015年2月24日在6:05



@DineshKumarP:我在解析您时遇到了一些麻烦。成员资格提供者使用Active Directory(AD)中的有效凭据绑定到目录。运行Membership Provider的计算机不需要是任何AD域的成员,但是您必须使用来自AD的有效凭据对其进行配置,以使其起作用。

–埃文·安德森(Evan Anderson)
2015年2月25日在2:18

@ArthurRonald-默认情况下,无特权的用户可以绑定并查询Active Directory。实际上,最好使用无特权的用户。 Active Directory具有相当丰富的ACL模型,您可以非常精细地控制对对象和属性的访问。您应该绑定一个具有足够特权的帐户,以执行您需要的操作,但仅此而已。

–埃文·安德森(Evan Anderson)
15年11月3日,22:31

#2 楼

在命令提示符下键入dsquery /?

例如:dsquery user -name Ja*获取名称以Ja *开头的所有用户的连接字符串。

评论


我喜欢这种方法,它给出了OU等的正确排序。显而易见,要使用它,请使用LDAP://dc1.corp.domain.com/和命令的输出,并将它们组合在一起,以轻松形成一个安静的ldap字符串。

–RandomUs1r
2014-09-10 15:48

您需要安装哪些工具才能使用此命令?

–filBot3
16-10-28在18:56

Pred,请参阅此答案。

– Stas Bushuev
16 Dec 8'在5:37



#3 楼

我只是使用Softerra的这个工具(他们制作了出色的免费LDAP浏览器)从当前登录的用户获取用户DN:
http://www.ldapbrowser.com/download.htm

评论


步骤1:在“凭据”步骤中,选择“当前登录的用户(仅ActiveDirectory)”。步骤2:创建连接后,在其“属性”中转到“条目”选项卡并复制URL。第3步:将该URL与ErJab解决方案中找到的DN一起使用。

–尼古拉斯·拉乌尔(Nicolas Raoul)
13-10-21在6:18

#4 楼

我一直很难找到正确的方式来键入OU。命令dsquery ou domainroot将为您提供域中所有OU正确名称的列表。不确定这是否会对更大的组织有所帮助。

#5 楼


安装远程服务器管理工​​具:http://www.microsoft.com/zh-cn/download/details.aspx?id=7887
打开命令提示符并输入> dsquery服务器

有关更多信息,请查看此帖子(帖子的底部):
http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/

评论


Windows 10的远程服务器管理工​​具:microsoft.com/en-us/download/details.aspx?id=45520

– Zacran
20年8月25日在18:05

#6 楼

如果打开ADSIedit,当您选择连接到...时,它应该向您显示路径。



#7 楼

完整语法位于http://www.faqs.org/rfcs/rfc2255.html

#8 楼

我找到了最简单的方法:

还可以从


Active Directory服务器->选择组织单位OU->右键
单击->属性-> AttributeEditor-> DistinguishedName


我从Microsoft Windows Server 2012 R2中获得了这些