2017-05-31 300 views
0

我对LDAP有一些理解问题。 当我使用Active Directory服务器时,我可以使用username @ domain和密码进行绑定。LDAP通过用户名和域名获取用户DN

当我使用ApacheDS时,我必须给它用户和密码的完整DN。

所以我有如下因素的问题:

  • 我如何找到用户的ApacheDS的服务器上的完整DN与 匿名privilegs,只有用户名,域(和 密码)的知识呢?
  • 这是偶吗? ApacheDS服务器甚至是Active Directory的替代品吗?
+0

你有任何地方的东西一个LDAP搜索查询?如果是,则搜索具有列出的'userPrincipalName'属性的用户,应该通过其实际DN返回一个用户。然后用DN和密码查询,如果它与用户匹配。 – Vesper

回答

1

一般来说,LDAP认证分两步进行:

  1. 使用带有过滤器的搜索操作映射一个给定唯一的用户标识符(UID),以它卓越的名称,如(&(objectClass=user)(uid=%s))
  2. 使用绑定与该dn进行操作,以针对您的LDAP服务器进行身份验证。

Active Directory带有一个便利功能:您可以使用一对支持的标识符进行绑定,并且AD将为您在内部执行映射。

ApacheDS不是AD的即插即用替代品,但它是可扩展的。 Java开发人员可以轻松编写一个认证拦截器,提供与AD相同的内部映射。

+0

Shuld此方法适用于AD和其他LDAP服务器?我尝试了这种方式,并且在匿名访问时搜索失败。当我已经authenticatet(绑定)到它的工作服务器:S – maxbit89

+0

这就是如何配置AD:没有认证没有搜索。 – marabu