是否有一种简单的方法可以针对 LDAP 实例测试用户的凭据?我知道如何编写一个获取“用户 DN”和密码的 Java 程序,并根据 LDAP 实例对其进行检查。但是有没有更简单的方法?特别是一种不仅对用户进行身份验证,而且列出所有用户角色的方法。
5 回答
ldapwhoami -vvv -h <hostname> -p <port> -D <binddn> -x -w <passwd>
,binddn
您正在对其凭据进行身份验证的人员的 DN 在哪里。
成功后(即有效凭据),您将获得Result: Success (0)
. 失败时,你得到ldap_bind: Invalid credentials (49)
.
用于ldapsearch
身份验证。该opends
版本可能使用如下:
ldapsearch --hostname hostname --port port \
--bindDN userdn --bindPassword password \
--baseDN '' --searchScope base 'objectClass=*' 1.1
您应该查看 Softerra 的 LDAP 浏览器( LDAP 管理员的免费版本),可以在这里下载:
http://www.ldapbrowser.com/download.htm
我在所有 Active Directory、OpenLDAP 和 Novell eDirectory 开发中都广泛使用了这个应用程序,它绝对是无价之宝。
如果您只想检查用户名\密码组合是否有效,您只需为 LDAP 服务器创建一个“配置文件”,然后在创建过程的第 3 步中输入凭据:
通过单击“完成”,您将使用您指定的凭据、身份验证机制和密码有效地向服务器发出绑定。如果绑定不起作用,系统会提示您。
请注意,如果您不知道您的完整绑定 DN,您也可以使用您的普通用户名或电子邮件-U
ldapsearch -v -h contoso.com -U turiya.gouw@contoso.com -w 'MY_PASSWORD' -b 'DC=contoso,DC=com' '(objectClass=computer)'
身份验证通过一个简单的 ldap_bind 命令完成,该命令采用用户 DN 和密码。绑定成功后,用户被认证。通常,您会通过基于用户 uid 或电子邮件地址的 ldap_search 获取用户 DN。
获取用户角色是不同的,因为它是一个 ldap_search,并且取决于角色在 ldap 中的存储位置和方式。但是您可能能够在用于查找用户 DN 的 lap_search 期间检索角色。