2012-11-12 50 views
3

一段時間,現在我正在擺弄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
+0

Urg,我以前有過,但不是*年*。不是一個真正的答案,但是IIRC我認爲我有這樣的問題,因爲ldap模塊本身不工作(即沒有正確構建)。如果可能的話,可能值得在另一個平臺上快速嘗試。 –

+1

@Sam你可以發佈/etc/ldap.conf文件的內容嗎? – dearlbry

+0

@dearlbry「沒有ldap.conf」 - ©server-guys :)你能更精確地知道你需要什麼嗎? – Sam

回答

2

默認情況下,LDAPS在AD未啓用。你嘗試通過端口389連接嗎?您是否可以使用某些LDAP工具(如Apache Directory Studio)連接到它?

這是我的猜測,爲什麼它不能正常工作......但嘗試使用DC的FQDN,或者甚至是IP。

+0

沒有ldapS的連接導致綁定時發生同樣的錯誤。完整的RDN實際上是在Softerra LDAP瀏覽器之外進行的,因此應該可以工作,但是明天在工作中,我也會嘗試在DC上使用FQDN。真的很難調試給我,它是一個Dev-Web服務器,所有的Serverguys都可以告訴我「從A到B的連接正在工作」:S – Sam

+0

除非你做了一堆修改,否則連接到端口636不可能工作到您的AD基礎設施(這對於正常的AD操作不是必需的,所以它可能沒有發生)。所以對我來說,端口636上的綁定不起作用是有意義的。 AD不太可能在端口636上監聽。我同意你應該嘗試連接端口389. –

+0

正如我以前的評論中所述,端口389也不起作用,錯誤仍然相同。然而我從你的評論中讀到的是,這很可能是AD本身的配置問題。然後與這些管理員仔細檢查。非常感謝! – Sam

相關問題