我正在尝试使用 PHP 来验证使用 LDAP 的 Active Directory 中的身份验证。
我知道有效的用户名和密码、我们的域和 LDAP 服务器。
$ldapconn = ldap_connect($ldapserver)
有效,它返回一个“ldap 链接”资源。
但是当我打电话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。知道我可以用什么吗?
最佳答案
调试这种事情确实很棘手。如果您有权访问,请使用 LDAP 服务器上的日志,或者尝试类似 http://jxplorer.org/ 的内容获取有关您尝试连接的用户的实际 DN/上下文的更好信息。您可能缺少一部分或不太正确。
此外,如果您的用户名/密码包含需要在命令行上转义的字符,请确保您没有在 PHP 脚本中转义它们。
关于php - ldap_bind() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070216/