我不熟悉使用LDAP,我的最终目标是在网络应用中提供LDAP单点登录。为了实现这一点,我正在尝试运行ldapwhoami
,但我遇到了问题。我可以运行其他命令,例如ldapsearch
和ldapadd
。
我在Mac OS High Sierra上运行OpenLdap。
我的相关slapd.conf
看起来像这样:
access to *
by self write
by * read
by anonymous auth
database ldif
suffix "dc=test,dc=com"
directory openldap-data
rootdn "cn=admin,dc=test,dc=com"
## rootpw = secret
rootpw {SSHA}fFjKcZb4cfOAcwSjJer8nCGOEVRUnwCC
然后我添加了一个ldapadd -x -w secret -f shanson.ldif
的用户,其中shanson.ldif
看起来像是:
dn: cn=shanson,dc=test,dc=com
objectClass: inetOrgPerson
sn: Hanson
uid: shanson
cn: shanson
userPassword: secret
我已成功搜索并找到ldapsearch -x "(cn=shanson)"
的新用户。
现在,我正在尝试使用ldapwhoami
验证用户的凭据,并且我一直收到错误:
> ldapwhoami -x -D cn=shanson,dc=test,dc=com -w secret
ldap_bind: Invalid credentials (49)
与我的root管理员用户相同的操作成功:
> ldapwhoami -x -D cn=admin,dc=test,dc=com -w secret
dn:cn=admin,dc=test,dc=com
我确定我只是犯了一个简单的错误,或者没有理解我在做什么,但我真的不知道现在还能在哪里寻找答案。谢谢!
答案 0 :(得分:0)
似乎与我设置的纯文本密码有关。我安装了Jxplorer并手动更新了用户密码,并用MD5对其进行了哈希处理,现在ldapwhoami命令起作用了。如果我在JXplorer中将密码设置为纯文本,则ldapwhoami仍然不起作用。除此之外,我不确定自己在做什么错。
答案 1 :(得分:0)
对我来说,我的dn
是错的。
我使用管理员凭据进行了ldapsearch
的操作,以获取dn: uid=xxx,ou=xxx,dc=xxx,dc=xxx,dc=xxx
然后我做了一个ldapwhoami -x -D "uid=xxx,ou=xxx,dc=xxx,dc=xxx,dc=xxx" -w secret
,它工作正常。