【问题标题】:Easy way to test an LDAP User's Credentials测试 LDAP 用户凭据的简单方法
【发布时间】:2013-04-21 06:48:43
【问题描述】:

是否有一种简单的方法可以根据 LDAP 实例测试用户的凭据?我知道如何编写一个获取“用户 DN”和密码的 Java 程序,并根据 LDAP 实例对其进行检查。但是有没有更简单的方法?特别是一种不仅对用户进行身份验证,而且列出所有用户角色的方法。

【问题讨论】:

    标签: directory ldap opends opendj


    【解决方案1】:

    ldapwhoami -vvv -h <hostname> -p <port> -D <binddn> -x -w <passwd>,其中binddn 是您正在对其凭据进行身份验证的人员的 DN。

    成功后(即有效凭据),您将获得Result: Success (0)。失败时,你会得到ldap_bind: Invalid credentials (49)

    【讨论】:

    • 至少在我的系统上,如果服务器可访问,提供空的用户名和/或密码 ("") 会导致 ldapwhoami 返回“结果:成功 (0)”。
    • @Garrett Hyde,你能分享一个模拟 DN 的例子吗?
    • @NicholasDeMarco 这是一个示例 DN:uid=john.doe,ou=People,dc=example,dc=com
    • 对我来说ldapwhoami -D 'cn=username,ou=users,dc=compagny,dc=com' -x -W
    【解决方案2】:

    使用ldapsearch 进行身份验证。 opends 版本可能使用如下:

    ldapsearch --hostname hostname --port port \
        --bindDN userdn --bindPassword password \
        --baseDN '' --searchScope base 'objectClass=*' 1.1
    

    【讨论】:

    • 这样可以在进程列表中明文查看密码吗?
    • @Kiril 我认为将--bindPasswrd password 替换为-W(提示输入密码)可以解决问题。
    【解决方案3】:

    您应该查看 Softerra 的 LDAP 浏览器(免费版 LDAP 管理员),可以在这里下载:

    http://www.ldapbrowser.com/download.htm

    我在所有 Active Directory、OpenLDAP 和 Novell eDirectory 开发中都广泛使用了这个应用程序,它绝对是无价之宝。

    如果您只是想检查用户名\密码组合是否有效,您只需为 LDAP 服务器创建一个“配置文件”,然后在创建过程的第 3 步中输入凭据:

    通过单击“完成”,您将使用您指定的凭据、身份验证机制和密码有效地向服务器发出绑定。如果绑定不起作用,系统会提示您。

    【讨论】:

    • 不起作用:这只会检查指定的用户是否有权列出来自 LDAP 的用户信息,例如 Active Directory 本身并没有授予该权限。在这种情况下,当用户凭据有效时,身份验证可能仍然失败。
    • 没有。这个命令发出一个完整的目录绑定,就像标准的登录尝试一样。如果您没有查看基本目录的权限,您只会看到一个空白屏幕。
    • 很好的答案!不知道那个应用。非常感谢!
    • 不错的应用 - 你知道 Mac 上有什么替代方案吗?
    【解决方案4】:

    注意,如果您不知道完整的绑定 DN,您也可以使用您的普通用户名或电子邮件 -U

    ldapsearch -v -h contoso.com -U turiya.gouw@contoso.com -w 'MY_PASSWORD' -b 'DC=contoso,DC=com' '(objectClass=computer)'
    

    【讨论】:

      【解决方案5】:

      身份验证通过一个简单的 ldap_bind 命令完成,该命令采用用户 DN 和密码。绑定成功后,用户被认证。通常,您会通过基于用户 uid 或电子邮件地址的 ldap_search 获取用户 DN。

      获取用户角色是不同的,因为它是一个 ldap_search,并且取决于角色在 ldap 中的存储位置和方式。但是您可能能够在用于查找用户 DN 的 lap_search 期间检索角色。

      【讨论】:

      • 感谢您的回复。我真正在寻找的是一个工具,我可以在其中键入用户 DN 和密码,该工具将测试并查看是否可以使用这些凭据对用户进行身份验证。这是一个非常容易开发的工具;所以我希望已经有这样的工具。
      • 这个工具叫做ldap_bind。
      • Unix/Linux 提供“ldapsearch”(主要来自 openLDAP),使用正确的选项,您在“进程列表”的“历史记录”中看不到密码
      猜你喜欢
      • 2019-03-15
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多