2

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

我知道有效的用户名和密码、我们的域和 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。知道我可以用什么吗?

4

1 回答 1

2

调试这种事情真的很棘手。如果您有访问权限,请使用 LDAP 服务器上的日志,或尝试类似http://jxplorer.org/的方法来获取有关您尝试连接的用户的实际 dn/context 的更好信息。您可能有一部分丢失或不完全正确。

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

于 2013-02-25T15:23:35.517 回答