1

我已经在某处设置了Ldap 服务器。我可以绑定到它,可以添加、修改、删除数据库中的条目。现在,当涉及到身份验证时,它不是像将用户名和密码提供给服务器一样简单,要求它搜索与两者匹配的条目吗?此外,它不是包含用户密码的“ userPassword ”字段吗?

现在,我尝试设置splunk以从我的 Ldap 服务器进行身份验证,我提供了用户名和密码,但它未能通过身份验证。不是splunk 检查的“ userPassword ”字段吗?可能的原因应该是什么?

4

3 回答 3

2

出于明显的安全原因,LDAP 服务器通常不允许您搜索 userPassword 属性。(而且密码属性很可能以散列形式存储,因此直接搜索是行不通的。)

相反,进行 LDAP 身份验证的常用方法是:

  • 提示输入用户名和密码
  • 使用您的应用程序帐户绑定到 LDAP,搜索username以获取用户的 LDAP 条目的完整专有名称 (dn)
  • 建立一个新的 LDAP 连接,并尝试使用用户的 dn 和密码进行绑定

(如果您知道如何从用户名构造 dn,则可以跳过第 2 步,但通常最好先搜索 - 这样您对 LDAP 目录的 OU 结构更改等事情就不那么敏感了)

于 2012-04-27T10:41:46.903 回答
1

通常,您会使用在 LDAP 树中的 uid 或 cn 值上提供的用户名值进行搜索。

-吉姆

于 2012-05-01T12:11:56.050 回答
0

我认为此代码将帮助您解决身份验证问题。我已经回答以解决问题。你可以看看这个问题http://bit.ly/TIJMte

于 2012-12-07T06:43:59.537 回答