我在 CentOS7 机器上安装了 OpenLDAP,我可以在服务器上本地登录,因此用户存在(在 passwd 中)。我还运行以下 LDAP 命令:
#ldapsearch -h localhost -x cn=ldapuser01 -b "dc=example,dc=com"
我得到了结果:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: cn=ldapuser01
# requesting: ALL
#
# ldapuser01, Group, example.com
dn: cn=ldapuser01,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: ldapuser01
userPassword:: ffffsomesdatafff=
gidNumber: 1001
# ldapuser01, People, example.com
dn: uid=ldapuser01,ou=People,dc=example,dc=com
uid: ldapuser01
cn: ldapuser01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: ffffffffffffffffffsome dataffffffffffffffffffffff
shadowLastChange: 17910
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/guests/ldapuser01
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
因此即使在 ldap 目录中用户也存在。
但当我尝试验证身份时
#ldapsearch -h localhost -x cn=ldapuser01 -b "dc=example,dc=com" -D "cn=ldapuser01,ou=Group,dc=example,dc=com" -w <my password>
我收到错误 49 凭证无效
我该如何解决这个问题?
附加信息:我使用迁移工具迁移了本地用户和组(以创建 .ldif 文件),然后添加了
ldapadd -x -W -D cn=Manager,dc=example,dc=com -f users.ldif
答案1
如果您从本地密码/组文件迁移了用户条目,则您尝试使用不正确的条目进行绑定。“cn=ldapuser01,ou=Group,dc=example,dc=com”
这是 'ldapuser01' Linux 组的 DN,而不是用户的 DN。尝试使用以下 DN
uid=ldapuser01,ou=People,dc=example,dc=com
例如:-
#ldapsearch -h localhost -x cn=ldapuser01 -b "dc=example,dc=com" -D "uid=ldapuser01,ou=People,dc=example,dc=com" -w <my password>