PHP LDAP连接在没有DN信息的情况下进行身份验证


PHP LDAP connection authenticates without DN information

这是我第一次使用PHP 5 LDAP库,我有点困惑。如果有人能就以下问题给我一些澄清,我将非常高兴:

首先让我给出我的配置:

LDAP服务器:Windows server 2013 Active Directory

主机名:winad

域:域。本地

IP:1.1.1.1(为了解释)

用于绑定的Windows帐户:管理员

从开发机器Ping主机名工作

从开发机器工作 Ping ip

从开发机器Ping winad.domain.local失败

开发环境:带有WAMP 的Windows 8 Professional

PHP:5.3.13

PHP LDAP模块已加载并正在运行

Apache LDAP模块未加载

场景:

我正在尝试使用管理员帐户针对Windows AD对用户进行身份验证。这是我的代码示例:

我将在以下各种场景中使用这些变量:

$hostname = "winad";
$dnex= "uid=Administrator, ou=Users, dc=domain, dc=local";

有效代码:

$conn = ldap_connect($hostname);
$bind = ldap_bind($conn, "DOMAIN'Administrator", "password");

失败的代码:

$conn = ldap_connect($hostname);
$bind = ldap_bind($conn, $dnex, "password");

错误:无效凭据

现在我的问题是,当我指定dn时,为什么它会失败?

假设我有location1.domain.local和location2.domain.local,并且我只想与location2绑定,如果不指定dn,这似乎是不可能的。

有人能指出正确的方法吗?

经过更多的搜索,我发现了以下帖子:

PHP LDAP连接

AlexC的回复正确回答了我的问题。

希望这会有所帮助。

相关文章: