与AD LDS的PHP LDAP连接

时间:2014-10-08 22:25:57

标签: php authentication ldap

我试图编写一些PHP来查询AD LDS / LDAP(2012 R2)实例,但我无法连接。我目前将它设置为未加密的连接(prod将是ssl / tls)。

目前的问题排查:

  • 我可以通过ldapsearch连接到我的LDAP实例并执行查询
  • 我可以通过我的Windows框上的LDP连接
  • 我可以ping LDAP服务器并从我的nix框telnet到端口。
  • 尝试使用用户名
  • 的完整rdn
  • 尝试过的URI(ldap:// ldapserver:50001或将端口作为自己的var传递)

我已经将代码重写了一百万次,认为这是某种语法错误或者没有正确传递的东西。 $ ldapconn返回"资源ID#2",根据PHP手册似乎是正确的。我此刻难过。我可以打开其他调试吗?

这是它踢回来的错误:

  

警告:ldap_bind():无法绑定到服务器:无法联系第20行/usr/share/nginx/html/logintest3.php中的LDAP服务器

以下是相关代码:

<?php

// all the debugging
ini_set('display_errors', 'On');
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

$ldapuser = "ldapbind";
$ldappassword = "ldapbinder";
$ldapserver = "ldapserver";
$ldapport = 50001;

// connect to ldap server
$ldapconn = ldap_connect($ldapserver, $ldapport)
or die("Could not connect to $ldapserver");

// check if ldap_connect returned a resource value 
if($ldapconn) echo "$ldapconn";

// attempting bind
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappassword);

echo "Ldap connection debug: " . ldap_error($ldapconn) . "\n";

?>

1 个答案:

答案 0 :(得分:0)

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