使用 LDAP 对 ADAM 进行身份验证
Posted
技术标签:
【中文标题】使用 LDAP 对 ADAM 进行身份验证【英文标题】:Authenticating against ADAM using LDAP 【发布时间】:2013-06-28 19:49:23 【问题描述】:我正在尝试使用 ADAM 和 LDAP 进行身份验证。我真的没有这方面的经验,但我一直在工作中陷入困境以解决这个问题。
这就是我所知道的。我正在使用一个名为 JXplorer 的程序来查看在我计算机上的 VM 上运行的 ADAM 服务器。 Here are the login details
这非常有效。我想要做的是使用 VB.NET 复制这个过程。我尝试了很多东西,但似乎没有任何效果,我不断收到异常,从密码错误到未知错误。这是我开始使用的代码 -
Dim userName As String = "ADAM_TESTER"
Dim userPassword As String = "password"
Dim serverAddress As String = "LDAP://10.0.0.142:389"
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim de As DirectoryEntry = New DirectoryEntry("LDAP://10.0.0.142:389/OU=Users,DC=TEST,DC=corp", userName, userPassword)
Dim deSearch As DirectorySearcher = New DirectorySearcher()
deSearch.SearchRoot = de
deSearch.Filter = "(&(objectClass=user) (cn=" + userName + "))"
Dim results As SearchResultCollection = deSearch.FindAll()
If (results.Count > 0) Then
Dim d As DirectoryEntry = New DirectoryEntry(results(0).Path, userName, userPassword)
If (d.Guid.ToString IsNot Nothing) Then
'The directory entry is valid
'DoSomething()
End If
End If
我还尝试将上面的用户名更改为 JXplorer 中用户 DN 中的详细信息。我真的被困在这里并且一直在寻找答案几个小时。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:仅供参考,用户是一个容器,而不是 OU。我相信您也可以使用“LDAP://10.0.0.142:389/CN=Users,DC=TEST,DC=corp”
【讨论】:
【参考方案2】:几乎可以肯定,userName
需要成为完整的 DN。在大多数情况下,ADAM 需要一个完整的 DN 来登录。
【讨论】:
【参考方案3】:感谢杰夫的想法,我终于想通了。事实证明,我需要不包括 OU=Users 的连接字符串。最后的字符串最终是 -
LDAP://10.0.0.142:389/DC=TEST,DC=corp
我不知道为什么它不想要 OU=Users。我花了大约一天的时间尝试所有不同的组合,直到最终被接受。
【讨论】:
以上是关于使用 LDAP 对 ADAM 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Boot/Spring Security 对 LDAP 进行证书身份验证
Worklight 6.2 使用 OpenDS 对 LDAP 进行身份验证