无法联系ldap_bind上的LDAP服务器($ con,$ rdn,$ pwd)

时间:2012-11-12 13:46:12

标签: php zend-framework active-directory ldap

暂时我正在摆弄与Active Directory服务器的LDAP连接以进行身份​​验证。我尝试了PHP本机方式并使用Zend Framework。尽管ldap_connect()工作正常,但只要绑定了某些内容,ldapConnection就会崩溃。这是我试过的剧本

error_reporting(E_ALL | E_STRICT);
putenv('LDAPTLS_REQCERT=never');

$ldapcon = ldap_connect("FQSN", 636);

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

$anon = ldap_bind($ldapcon, "CN=WebTestuserAW,OU=Benutzer,OU=DOM,DC=dom,DC=de", "Sommer2012");
//also tried: 
//$anon = ldap_bind($ldapcon, 'WebTestuserAW@dom.de', 'Sommer2012');

echo ldap_error($ldapcon);

使用上面的提示无法联系LDAP服务器。执行var_dump($ldapcon)会返回资源链接。当尝试使用Zend Framework方法进行连接时,错误可能会有一些提示,因为给出了一些额外的连接参数

2012-11-12T14:37:39+01:00 DEBUG (7): Ldap: 1: host=FQHN,port=636,bindRequiresDn=1,baseDn=OU=Benutzer,OU=DOM,DC=dom,DC=de,accountFilterFormat=(sAMAccountName=%s),useSsl=1,useStartTls=,accountDomainName=dom.de,username=CN=WebTestuserAW,password=*****
2012-11-12T14:37:39+01:00 DEBUG (7): Ldap: 2: /var/www/html/login/library/Zend/Ldap.php(850): 0x1: Failed to retrieve DN for account: stosic@dvv.de [0x51 (Can't contact LDAP server): ldaps://FGHN:636]
2012-11-12T14:37:39+01:00 DEBUG (7): Ldap: 3: #0 /var/www/html/login/library/Zend/Auth/Adapter/Ldap.php(316): Zend_Ldap->bind('username@dom.de', '*****')

我真的不知道了。我用谷歌搜索了一下,用LDAP协议版本玩了一下,玩了一下请求证书选项,但没有任何帮助。与服务器的连接本身在ldap_connect上工作,但是一旦绑定了某些东西,它就不再起作用了。对于匿名绑定也是如此。

在办公室没有人有任何线索,我也没有。所以,如果有人对我仍然可以尝试的东西有任何建议,我会非常感激!提前谢谢。

其他信息:

  • 服务器LDAP配置:
    • 启用了LDAP支持
    • RCS版本$ Id:ldap.c 299434 2010-05-17 20:09:42Z pajoye $
    • Total Links 0 / unlimited
    • API版本3001
    • 供应商名称OpenLDAP
    • 供应商版本20343
    • 启用SASL支持
  • ldap://和ldaps://都已经过测试
  • ldap_connect()返回资源链接
  • ldap_bind()不起作用,ldap_errno()返回-1(无法连接到LDAP服务器)
  • LDAPTLS_REQCERT和TLS_REQCERT

1 个答案:

答案 0 :(得分:2)

默认情况下,AD中未启用ldaps。您是否尝试通过端口389连接?您是否可以使用某些LDAP工具(如Apache Directory Studio)连接到它?

这是我猜测为什么它不起作用......但是也尝试使用DC的FQDN,或者甚至是IP。