Authentication 如何进行Ldap服务器身份验证?

Authentication 如何进行Ldap服务器身份验证?,authentication,ldap,splunk,python-ldap,Authentication,Ldap,Splunk,Python Ldap,我在某处设置了一个Ldap服务器。我可以绑定到它,可以在数据库中添加、修改、删除条目。现在,当涉及到身份验证时,难道不简单到将用户名和密码提供给服务器,要求它搜索与这两个匹配的条目吗?此外,它不是包含用户密码的“userPassword”字段吗 现在,, 我试图设置splunk从Ldap服务器进行身份验证,我提供了用户名和密码,但身份验证失败。splunk检查的不是“userPassword”字段吗?可能的原因是什么?出于明显的安全原因,LDAP服务器通常不允许您搜索userPassword属性

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

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

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

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

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

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

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


-jim

我认为此代码将帮助您解决身份验证问题。我已经答应解决这个问题。你可以在第二点前检查这个问题。现在,在获得用户的dn后,当我无法查询用户密码时,如何尝试ldap连接?ldap客户端不需要“查询”用户密码,并且正确配置的服务器将不允许将该属性返回给客户端。使用绑定请求并通过
simple
SASL
进行身份验证。成功绑定表示凭据正确。