php - ldap_bind() 不起作用

标签 php active-directory ldap

我正在尝试使用 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/

相关文章:

php - MySQL大于日期返回小于给定日期的日期

php - 我可以在 PHP 中创建线程吗?

c++ - 如何在不使用 C++ 管理员权限的情况下设置 AD 属性值?

C# LDAP 查询以检索组织单位中的所有用户

ldap - 转储 LDAP - 超出大小限制

c# - 为什么我的 LDAP 查询失败?

javascript - 未设置值时删除输入

PHP MySQL 密码重置表单未执行

c# - 事件目录是否防止不在域中的客户端进行修改?

active-directory - LDAP 仅非事件用户查询