我知道这个错误在 Server Fault 上已经被问过很多次了,我也进行过广泛的谷歌搜索,但是,我无论如何也无法弄清楚为什么我无法进行 ldapsearch。
我的最终目标是在通过 openLDAP 连接到 Windows 域的 Debian 机器上使用 adLDAP php 脚本。openLDAP 在 Debian 机器上正常工作,我的域用户可以登录等。但是,每次我尝试 ldapsearch 或运行 adLDAP 脚本时,我都会收到相同的错误,即
ldap_bind:无效凭证(49)
我使用的 ldapsearch 如下:
ldapsearch -D “cn=test” -w Test123 -h DomainCont.example.local -b “dc=example,dc=local” -s sub “(objectclass=*)”
我快抓狂了。运行调试参数似乎也没什么用,因为它显示
** ld 0x8e6410 连接:主机:DomainCont.example.local 端口:389(默认)refcnt:2 状态:已连接 最后使用时间:2013 年 1 月 10 日星期四 12:45:48
任何帮助将不胜感激。
答案1
服务器返回错误,因此在客户端上进行调试不会有太大帮助。不幸的是,您的示例可能过于模糊,无法排除故障;我假设您确实没有按照您的示例在“cn=test”后附加后缀。
如果您要绑定到 AD,则cn=test
需要包含完整的 LDAP 路径。(在本例中为cn=test,ou=container,dc=example,dc=local
)对于 AD 用户,您可以使用替代语法(编辑:它们实际上并未绑定到 Active Directory)'DOMAIN\samaccountname'
- 请记住,如果您不使用单引号,则需要对反斜杠进行转义。
回顾系统如何针对 LDAP 进行身份验证并尝试尽可能地模仿它将会很有帮助。如果这没有帮助,我建议修改您的帖子以包含这些详细信息。