使用LDAP检查用户名/密码就像尝试绑定该用户并注明结果一样简单,或者是否有特殊的LDAP"检查密码"功能?
我正在尝试在处理凌乱的LDAP存储库设置问题时获得更多"幕后"理解.
(注意:这适用于密码未在自定义属性中存储为哈希的情况;这种情况很容易管理)
geo*_*ffc 18
LDAP支持userPassword的比较.您发送密码,服务器执行比较并返回true或false.这是不需要登录方式来验证用户.
max*_*dap 10
查看WhoAmI扩展操作(RFC 4532).
WhoAmI真正实现了一个目的 - 验证提交的绑定凭据.它不应该影响也不会激发任何"登录限制"(我知道).
WhoAmI可以使用专用二进制文件(例如"ldapwhoami")完成,也可以使用Net :: LDAP :: Extension :: WhoAmI(Perl)或其他支持LDAP操作的语言来完成.请注意,使用某些"搜索"功能"测试密码"是一种不明智的测试方法.
例如,如果我的DN是"uid = max,ou = users,dc = company,dc = com"而我的密码是"@secret",那么可以通过Linux机箱上的专用二进制文件执行此操作(注意-ZZ是用于TLS机密性,在您的环境中可能不受支持或可选):
ldapwhoami -x -w "@secret" -D uid=max,ou=users,dc=company,dc=com -ZZ -H ldap://address.of.your.ldapserver/
Run Code Online (Sandbox Code Playgroud)
如果用户/通行证组合正确,则返回的答案是:
DN:UID = MAX,OU =用户,DC =公司,DC = COM
如果用户/传递组合不正确,则返回的答案是(通常):
(49)凭据无效
正如我所说,这可能意味着密码和/或用户名错误,用户不存在,或者LDAP服务器的ACL因无法进行身份验证而被破坏.通常,用户/通行证组合输入错误,或者用户不存在.
最后,LDAPWhoAmI操作是一种非常轻量级且简单的验证凭据的方法.它也可以通过其他机制工作(例如:Kerberos Single Sign-On,Digest-MD5等).
小智 5
当心使用bind检查用户名/密码,在某些系统上它将被视为登录,并且由于登录限制,它可能会失败。
使用比较是仅检查密码的更好选择。
| 归档时间: |
|
| 查看次数: |
64194 次 |
| 最近记录: |