有没有一种简单的方法可以测试用户凭据是否与LDAP实例匹配?我知道如何编写Java程序,该程序将获取“用户DN”和密码,并将其与LDAP实例进行检查。但是,是否有更简单的方法?特别是一种不仅验证用户身份,而且列出所有用户角色的方法。
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
ldapsearch
? - undefined你应该试一下 Softerra 的 LDAP Browser (LDAP Administrator 的免费版),可以在这里下载:
http://www.ldapbrowser.com/download.htm
我广泛地使用这个应用程序进行所有的 Active Directory、OpenLDAP 和 Novell eDirectory 开发工作,它非常有价值。
如果你只想检查一个用户名/密码组合是否有效,那么你只需要为 LDAP 服务器创建一个"Profile"(配置文件),然后在创建过程的第三步输入凭据:
点击“完成",你会使用指定的凭据、认证机制和密码向服务器发起绑定。如果绑定不成功,将会提示你。
请注意,如果您不知道完整的绑定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期间,您可能能够检索到角色。
ldap_bind
命令,这是来自OpenLDAP库的C函数吗? - SebMaldapsearch -v -H ldap://dc1.MYDOMAIN.com -D "cn=Administrator,cn=Users,dc=MYDOMAIN,dc=com" -x -w SomeP@ssWord -Z -d 4
这对于调试LDAP非常有帮助,因为它会精确输出任何问题。
uid=john.doe,ou=People,dc=example,dc=com
。 - Garrett Hyde