【问题标题】:LDAP get Users DN by Username and DomainnameLDAP 通过用户名和域名获取用户 DN
【发布时间】:2017-06-01 14:54:57
【问题描述】:

我对 LDAP 有一些理解问题。 当我使用 Active Directory 服务器时,我可以绑定用户名@域和密码。

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

所以我有以下问题:

  • 如何在 ApacheDS 服务器上找出用户的完整 dn 匿名特权并且只知道用户名、域(和 密码)?
  • 这可能吗? ApacheDS 服务器是不是被设计成一个
  • 替代 Active Directory?

【问题讨论】:

  • 您有什么地方可以填充 LDAP 搜索查询吗?如果是,搜索具有列出的userPrincipalName 属性的用户,应该通过其实际DN 返回一个用户。然后你用 DN 和密码查询,如果它与用户匹配。

标签: active-directory ldap


【解决方案1】:

一般来说,LDAP认证分两步完成:

  1. 使用带有 (&(objectClass=user)(uid=%s)) 等过滤器的搜索操作将给定的唯一用户标识符 (uid) 映射到其专有名称
  2. 对该 dn 使用绑定操作来针对您的 LDAP 服务器进行身份验证。

Active Directory 具有一项便利功能:您可以使用几个受支持的标识符进行绑定,AD 将在内部为您进行映射。

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

【讨论】:

  • 此方法是否适用于 AD 和其他 LDAP 服务器?我试过这个,搜索失败,匿名访问。当我已经验证(绑定)到它工作的服务器时:S
  • 这就是 AD 的配置方式:没有身份验证就无法搜索。
【解决方案2】:

正如 marabu 所说,您可以在绑定之前使用目录搜索来模拟身份验证。

您还可以寻找提供其他身份验证方式的 SASL 身份验证。

这里是 ApacheDS 支持的 SASL 机制列表:http://directory.apache.org/apacheds/advanced-ug/4.1.2-sasl-authn.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-14
    • 2018-02-21
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多