我正在使用LDAPS身份驗證與開源CMS ez發佈。我已經完成了所有我要支持的配置設置。但是,我仍然無法獲得LDAPS身份驗證!使用LDAPS身份驗證
在調試時,我發現ldap_connect
失敗,有時會返回資源ID#80或資源ID#75。是否有任何文檔描述這些資源id的含義?即使是ldap_connect
的php文檔也沒有關於這些資源ID的任何信息。還是有什麼我可以做錯了嗎?
我正在使用LDAPS身份驗證與開源CMS ez發佈。我已經完成了所有我要支持的配置設置。但是,我仍然無法獲得LDAPS身份驗證!使用LDAPS身份驗證
在調試時,我發現ldap_connect
失敗,有時會返回資源ID#80或資源ID#75。是否有任何文檔描述這些資源id的含義?即使是ldap_connect
的php文檔也沒有關於這些資源ID的任何信息。還是有什麼我可以做錯了嗎?
The PHP manual on resources.看起來像ldap_connect()
是成功的。如果失敗,則返回FALSE
。
Interesing ..我做了一個get_resource_type的資源ID returend由ldap_connect並返回「ldap鏈接」。我做了一個快速搜索,但沒有找到關於它的很多信息,任何想法是什麼意思? – pavanred 2010-12-13 10:28:22
從手冊:「資源是一個特殊的變量,持有對外部資源的引用,資源由特殊功能創建和使用。」在你的情況下,「外部資源」是......將它想象成連接你與LDAP服務器的電話線的末端。實際上,資源的類型或ID完全不相關。該類型始終是「ldap鏈接」,因爲這是'ldap_connect()'的意圖,PHP內部使用該ID來尋址正確的「電話線」(您可以同時持有多行或多行資源) 。 – rik 2010-12-13 10:46:48
最常見的SSL相關問題是信任連接中使用的證書。
如果您的LDAP服務器SSL證書未由知名CA或更正確地由您的SSL庫所知的CA簽名,則通常會失敗。要解決這個問題,你必須讓你的SSL庫信任CA.
Windows(IE),Firefox,Safari等都有自己的密鑰存儲機制,您可以將CA的可信根證書導入到它們中。然後,由該CA簽署的所有證書現在都值得信賴。
Java使用JKS密鑰庫文件,舊的Netscape使用cert.db7或cert.db8文件。不知道PHP使用什麼,但是你應該弄清楚這一點。
ldap_connect是一件棘手的事情。你能告訴我們一些代碼(安全部分被遮蓋)嗎? – Thariama 2010-12-13 09:58:11
我爲此編寫的代碼並不多。我只是在ezpublish配置文件中提供LDAPVersion,LDAPServer,LDAPPort,LDAPBaseDn等,ezpublish使用主機名和端口並調用ldap_connect這是一個php函數。在我的情況下,當我調試時失敗了,我發現他們有一個特定的資源ID,就像我在問題中提到的那樣。 – pavanred 2010-12-13 10:08:08