LDAP - ldapwhoami返回“ldap_bind:无效凭据(49)”

时间:2018-04-26 15:43:49

标签: ldap

我不熟悉使用LDAP,我的最终目标是在网络应用中提供LDAP单点登录。为了实现这一点,我正在尝试运行ldapwhoami,但我遇到了问题。我可以运行其他命令,例如ldapsearchldapadd

我在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

我确定我只是犯了一个简单的错误,或者没有理解我在做什么,但我真的不知道现在还能在哪里寻找答案。谢谢!

2 个答案:

答案 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,它工作正常。