php activerecord身份验证无法连接ldap服务器

时间:2014-01-21 06:45:52

标签: php authentication active-directory ldap

我需要在php的active目录中验证用户(使用yii framewrok)。 在网络中的一台计算机上,我有一台带有活动目录的Windows 2008服务器的虚拟机(使用端口5000),我尝试使用ldap和authenticate用户连接它。控制器名称是(server1.domain_name)。

我的代码就像这样:

$hostName = '192.168.139.94'; 
$port = 5000;

$userName = 'User1@domain_name';
$password = 'password';

$ldap = ldap_connect($hostName, $port);
if ($bind = ldap_bind($ldap, $userName, $password)) {
    echo 'success';
    // log them in!
} else {
    // error message
    echo 'failed';
}

但要警告:

ldap_bind() [<a href='function.ldap-bind'>function.ldap-bind</a>]: Unable to bind to server: Can't contact LDAP server

你能告诉我这是什么问题吗?如何获得更多信息导致问题?

3 个答案:

答案 0 :(得分:2)

非常奇怪的端口5000用于Active-Directory。本机Active-Directory在389上等待,Lightweigh Directory Server(LDS)在端口 50000 上自然等待,当机器上存在AD时。你确定这个港口吗?

验证端口后,您可以在ldap_connectldap_bind之间添加这两行

ldap_connec(...)
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind(...)

答案 1 :(得分:0)

这是一个愚蠢的错误,使用了389端口,而不是5000.我只是被误导了。谢谢你的所有答案。

答案 2 :(得分:-1)

问题是389端口使用的不是5000。