一段時間,現在我正在擺弄LDAP連接到Active Directory服務器進行身份驗證。我嘗試了這種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, '[email protected]', 'Sommer2012');
echo ldap_error($ldapcon);
使用上面我得到無法聯繫LDAP服務器。執行var_dump($ldapcon)
將返回資源鏈接。當嘗試使用Zend框架的方法來連接,錯誤可能有一些更多的提示,因爲一些額外的連接參數給出
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: [email protected] [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('[email protected]', '*****')
我認真只是不知道了。我搜索了一下,使用LDAP協議版本玩了一下,玩了請求證書選項,但沒有什麼幫助。到服務器的連接本身在ldap_connect
上工作,但只要你綁定了一些東西,它就不再工作了。這對於匿名綁定也是如此。
在辦公室沒有人有任何線索,我也沒有。所以如果有人對我仍然可以嘗試的建議有任何建議,我會非常感激!提前致謝。
其他信息:
- LDAP服務器配置:
- LDAP支持啓用
- RCS版本$編號: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
Urg,我以前有過,但不是*年*。不是一個真正的答案,但是IIRC我認爲我有這樣的問題,因爲ldap模塊本身不工作(即沒有正確構建)。如果可能的話,可能值得在另一個平臺上快速嘗試。 –
@Sam你可以發佈/etc/ldap.conf文件的內容嗎? – dearlbry
@dearlbry「沒有ldap.conf」 - ©server-guys :)你能更精確地知道你需要什麼嗎? – Sam