我是与LDAP合作的新手,我的最终目标是在Web应用程序中提供LDAP单登录。为了实现这一目标,我正在尝试运行ldapwhoami
,但我遇到了问题。我能够运行其他命令,例如ldapsearch
和ldapadd
。
我在Mac OS High Sierra上运行OpenDap。
我相关的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
i然后添加了一个用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
我敢肯定,我只是犯了一个简单的错误或不了解我在做什么,但是我真的不知道现在还要寻找答案的地方。谢谢!
它似乎与我设置的纯文本密码有关。我安装了JXPLORER,并手动更新了用户的密码,并使用MD5进行了哈希,现在ldapwhoami命令可以使用。如果我将密码设置为JXPlorer中的纯文本,则LDAPWHOAMI仍然不起作用。除此之外,我不确定自己在做什么错。
对我来说,我的 dn
是错误的。
我使用Admin凭据进行了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
,它工作正常。