PHP LDAPS绑定失败,我缺少什么使这项工作?

时间:2014-08-31 20:37:24

标签: php ldap

我已经浏览了很多关于此的问题并且已经用尽了我的选择,所以就这样了。我有一个Windows 2008R2域控制器。我使用PHP通过LDAP从不同的服务器,同一个域连接到它。 (还有Win2008R2,IIS7.5)我确保了以下几点:

  • 域控制器的证书已导入到 PHP机器上受信任的根权限存储
  • 我在PHP计算机上使用过ldp.exe,可以使用DC和端口636的名称通过LDAPS连接和绑定
  • 我的用户凭据正确
  • 我可以使用LDAP连接,PHP中的端口389就好了

这是我的代码:

putenv('LDAPTLS_REQCERT=never');

    $host = "ldaps://mydc.thing.com:636";
    $dn = "Admin User";
    $dnp = "adminPaSwOrD";


    $base = "DC=thing,DC=com";
    $scope = "sub";

    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

    $ds = ldap_connect($host);

    $r=ldap_bind($ds, $dn, $dnp);  

错误消息始终为:

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

相关的PHP信息:

#Version 5.3.8
#cURL: 7.22.0, SSL:yes, dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
#LDAP: enabled, SASL: enabled, OpenLdap v.20319

我已经洗过Goggle并且自己尝试了很多东西。奇怪的是,PHP机器上的LDAP客户端可以连接并绑定到DC,而不是PHP。我也尝试过CLI中的PHP(将IIS从混合中删除)并返回相同的错误。

非常感谢任何帮助。

SG

1 个答案:

答案 0 :(得分:0)

我将PHP升级到5.6,问题就消失了。我不知道为什么。回答我自己的问题&#34;我缺少什么使这项工作?&#34; - 我猜错了正确的PHP版本。