2013-03-08 61 views
1

我想弄清楚如何配置Zend_Auth_Adapter_Ldap來對我們的ActiveDirectory進行身份驗證。手動認證工作沒有問題,但我不能使用Zend_Auth_Adapter_Ldap工作。Zend_Auth_Adpter_Ldap到Active Directory - 配置問題

這是最基本的方法。 這個工程!

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

$ldapcon = ldap_connect("ldaps://srv.dom.de", 636); 
$bind = ldap_bind($ldapcon, "CN=USERNAME,OU=Benutzer,OU=DOM,DC=dom,DC=de", "PASSWORD"); 

這是我試過配置Zend_Auth_Adapter_Ldap這不行!

ad.server2.host    = srv.dom.de 
ad.server2.port    = 636 
ad.server2.bindRequiresDn  = false 
ad.server2.baseDn    = "OU=Benutzer,OU=DOM,DC=dom,DC=de" 
ad.server2.accountFilterFormat = "CN=%s" 
ad.server2.useSsl    = true 
ad.server2.useStartTls   = false 
;ad.server2.accountDomainName = "dom.de" 
;ad.server2.username   = "CN=TESTUSER" 
;ad.server2.password   = "TESTPASS" 

我嘗試設置accountFilterFormat更AD尋找辦法像follwing,但沒有取得任何不同的結果...

ad.server2.accoutnFilterFormat = "(&(objectclass=user)(sAMAccountName=%s)" 

目前debuf輸出如下:

Ldap: 1: host=srv.dom.de,port=636,bindRequiresDn=, 
     baseDn=OU=Benutzer,OU=DOM,DC=dom,DC=de,accountFilterFormat=CN=%s, 
     useSsl=1,useStartTls= 

Ldap: 2: USERNAME authentication failed: 0x31 
     (Invalid credentials; 80090308: LdapErr: DSID-0C090334, 
     comment: AcceptSecurityContext error, data 525, vece): USERNAME 

我已經嘗試了很多東西,試圖調試Zend-Code本身,但我只是無法弄清楚。如果有人對我需要設置什麼選項有更多的瞭解,我會非常非常棒!

回答

1

這畢竟只是一個配置問題。仔細閱讀文檔後,得出以下配置才能正常工作:

ad.server2.host     = srv.dom.de 
ad.server2.port     = 636 
ad.server2.bindRequiresDn   = false 
ad.server2.baseDn     = "OU=Benutzer,OU=DOM,DC=dom,DC=de" 
ad.server2.accountFilterFormat = "CN=%s" 
ad.server2.useSsl     = true 
ad.server2.useStartTls   = false 
ad.server2.accountCanonicalForm = 3 
ad.server2.accountDomainNameShort = "dom" 

而這纔是真正的全部。針對AD的身份驗證通過用戶名:dom\username完成,因此必須將accountCanonicalForm設置爲3(反斜槓樣式語法),然後accountDomainNameShort定義規範帳戶名稱的域部分。

一旦明白是非常合乎邏輯的,但沒有任何知識就搞清楚了......好吧,它現在正在工作:)