使用 ldapsearch 身份验证失败

authentication failed using ldapsearch

我使用 Apache Directory Studio 创建了一个本地 ldap 服务器。使用 uid "djiao1" 和密码“123456”(SHA 散列密码)创建用户条目。

我能够使用以下 ldapsearch 命令搜索用户:

ldapsearch -H ldap://localhost:10389 -x uid=djiao1
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: uid=djiao1
# requesting: ALL
#

# djiao, Users, example.com
dn: cn=djiao,ou=Users,dc=example,dc=com
sn: jiao
cn: djiao
objectClass: top
objectClass: inetOrgPerson
objectClass: person
objectClass: organizationalPerson
userPassword:: e3NoYX1mRXFOQ2NvM1lxOWg1WlVnbEQzQ1pKVDRsQnM9
uid: djiao1

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

但是,如果我 运行 使用 -W 提示密码并输入“123456”,我会得到 "invalid credentials" 错误:

ldapsearch -H ldap://localhost:10389 -W -x uid=djiao1
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
additional info: INVALID_CREDENTIALS: Bind failed: Invalid authentication

我尝试了显示为 userPassword e3NoYX1mRXFOQ2NvM1lxOWg1WlVnbEQzQ1pKVDRsQnM9 的很长的字符串,但仍然出现相同的错误。

下图验证成功,用户密码为123456。为什么密码不起作用?

我想你的问题是你没有使用登录名,而是使用密码, 尝试这样的事情:

ldapsearch -x -LLL -H ldap://localhost:10389/  -b dc=example,dc=com  -D "cn=djiao,ou=Users,dc=example,dc=com" -w 123456 uid=djiao1

关键时刻这里是你使用密码的完整用户名:

cn=djiao,ou=Users,dc=example,dc=com