【发布时间】:2020-04-15 01:54:41
【问题描述】:
我正在使用 Java 和 JAAS 设置应用程序,因此首先从命令行测试 AD/LDAP 连接。 LDAP 对我来说并不陌生,我以为我理解它,但我开始重新考虑。服务帐户进行身份验证,但普通员工不进行身份验证。 :-(
我可以使用用户名为“ldap”的服务帐户进行身份验证,我知道其密码,返回 kcarson 帐户的 dn 和 sAMAccountName:
++ ldapsearch -vx -LLL -o ldif-wrap=no \
-H ldap://21.10.10.50:389 \
-b OU=MyUsers,DC=radical,DC=com \
-D ldap \
-W '(samAccountName=kcarson)' samaccountname
Enter LDAP Password:
dn: CN=Kevin Carson,OU=Phoenix,OU=OutsideTheLines,OU=MyUsers,DC=radical,DC=com
sAMAccountName: kcarson
但如果我使用用户名“kcarson”(我知道其密码)执行相同操作,我会收到失败:
++ ldapsearch -vx -LLL -o ldif-wrap=no \
-H ldap://21.10.10.50:389 \
-b OU=MyUsers,DC=radical,DC=com \
-D kcarson \
-W '(samAccountName=kcarson)' samaccountname
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 52e, v3839
我也尝试使用完整的 dn 而不是“kcarson”,但结果相同。根据Username and Password for LDAP Authentication,这应该是成功的,除非“如果其中任何一个失败......那就是登录失败”。
所以,如果这是登录失败,AFAIK:
- 要么用户名或密码不正确,要么
- kcarson 无权进行身份验证
还有其他可能失败的原因吗?
【问题讨论】:
标签: authentication ldap