绑定到LDAP与其他帐户,然后在LDAP服务器中用密码搜索用户

问题描述:

我有一个服务帐户,我通过它绑定LDAP连接,我使用JAAS LdapLoginModule来验证帐户。一旦LDAP绑定成功,我需要使用其用户名和密码搜索或验证或搜索其他普通用户。绑定到LDAP与其他帐户,然后在LDAP服务器中用密码搜索用户

所以我应该如何接近,因为我没有发现任何用户和LDAP绑定权限的搜索查询不允许这个普通用户。我能够检索其中的所有组和用户,但找不到密码。

LDAP目录以其“正常”方式使用它作为身份验证提供程序不允许任何用户读取密码属性以避免泄漏它。

通常情况下,只允许任何人对此属性进行身份验证,即:任何人都可以使用该属性来尝试绑定操作。

所以处理您的案件有2种方法:

  1. [不推荐]:修改,以允许用于搜索用户读取密码属性(=>创建一个可能的安全问题)
  2. 访问权
  3. 允许在密码属性只能绑定匿名连接

编辑:在评论回答的问题:

正如我前面提到,要比较和/或读取(如在协议的LDAP操作中)除主帐户以外的其他用户的密码属性,您必须允许主帐户执行此操作,但不建议这样做。

如何允许它,这取决于您使用LDAP实现的(即,目录:OpenLDAP的,AD,ApacheDS中,等)

或者你让每个人都在目录中,这是非标准绑定这样做的方式:

  • 绑定主密码
  • 搜索的尝试
  • 重新绑定绑定与该用户的DN和他提供的密码的用户的DN:
    • 绑定OK:正确的密码
    • 绑定KO:无效凭证
+0

我已经通过使用JASS登录成功地绑定了用户与主帐户上的密码,但现在我需要验证实际尝试在LDAP服务器中登录的用户的用户名和密码。有没有办法比较用户密码 – Shardendu

+0

@Shardendu我编辑了我的答案和更多信息;) – Esteban

+0

我们没有普通用户的绑定权限,所以如果我能够绑定普通用户,不能通过LDAP绑定我不认为我需要由主用户绑定。有什么方法可以比较存在用户的密码和用户名 – Shardendu

您需要:

  1. 绑定到目录与权限管理员用户搜索。
  2. 搜索用户给出的任何属性,你有唯一的,例如,屏幕名称,电子邮件等
  3. 尝试绑定为该用户与他提供的密码。

如果所有这些成功,用户属性和密码是正确的。如果没有,不是。

+0

我只有主用户的绑定权限,其他普通用户没有绑定权限我需要使用用户名和密码进行验证,因此有任何其他解决方法 – Shardendu

+0

你做错了,或者谁设置了LDAP服务器。这就是你应该怎么做的。 – EJP