ldap_bind()无效

时间:2013-02-25 15:17:15

标签: php active-directory ldap

我正在尝试使用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)总是返回“凭证无效”。

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

1 个答案:

答案 0 :(得分:2)

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

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