首页 文章

ldap_bind()无效

提问于
浏览
2

我正在尝试使用PHP来验证使用LDAP在Active Directory中的身份验证 .

我知道有效的用户名和密码,我们的域和LDAP服务器 .

$ldapconn = ldap_connect($ldapserver) 有效,它返回一个'ldap link'资源 .

但是当我打电话给 ldap_bind($ldapconn, $ldaprdn, $password) 时它失败了 .

我已经为 $ldaprdn 尝试了很多设置,但找不到有效的设置 . 一些例子:

$ldaprdn = $username;

$ldaprdn = $username.'@'.$domain;

$ldaprdn = $domain.'\\'.$username;

$ldaprdn = "uid=$username,cn=users,dc=$ldapserver,dc=$domain,dc=com"

$ldaprdn = "uid=$username,dc=$domain,dc=com"

$ldaprdn = "uid=$username,dc=com"

$ldaprdn = "uid=$username,dc=$domain"

没有任何作用, ldap_error($ldapconn) 总是返回"Invalid credentials" .

登录和密码显然是对的,我可以在Windows中登录 . 知道我能用什么吗?

1 回答

  • 2

    调试这类东西真的很棘手 . 如果您有权访问,请使用LDAP服务器上的日志,或尝试使用http://jxplorer.org/之类的内容来获取有关您尝试连接的用户的实际dn /上下文的更好信息 . 你可能有一部分缺失或不太正确 .

    此外,如果您的用户名/密码包含需要在命令行中转义的字符,请确保您没有在PHP脚本中转义它们 .

相关问题