Apache-2.2
讓域身份驗證工作:xampplite 2.2 + Server 2003
在我試圖完成這個設置的每一刻,我的靈魂都在死去一點。我有一台裝有 Apache 2.2.11 的 xampplite 安裝的 Windows XP 機器。我希望能夠使用公司的 Active Directory (Server 2003) 對使用者進行身份驗證。
我不能使用 IIS,因為我們要執行的產品在它上面不起作用;我不能使用 UNIX 伺服器,因為我們使用該產品需要 Windows 功能。
我的第一個想法是使用 mod_auth_kerb5。聽起來確實是最好的主意。無登錄身份驗證會很棒。問題是我找不到它的 Windows 二進製文件,編譯它似乎是一個痛苦的世界:首先獲取 MinGW/Cygwin,然後獲取模組的原始碼,這需要 Kerberos 5 的原始碼,它們本身需要 Perl ,找出所有的依賴關係並編譯它們,真的對我沒有吸引力。
因此,作為一個弱妥協,我認為我可以求助於 LDAP 身份驗證。但是,通過 SSL 使用 LDAP 將不起作用,並且 Apache 報告如下所示:
[LDAP: ldap_simple_bind_s() failed][Server down]
所以我決定放棄 SSL 至少看看它是否有效,結果證明它沒有:
[client 192.168.215.18] [4984] auth_ldap authenticate: user foobar authentication failed; URI /app/webroot/ [ldap_search_ext_s() for user failed][Operations Error]
Google搜尋錯誤給了我幾個結果,我調整了我的配置以反映人們建議的大多數修復,但無濟於事。
這是我的配置文件:
AuthType basic AuthName "Super-secret area" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPUrl "ldap://server1:3268 server2:3268 server3:3268/dc=domain,dc=ext?sAMAccountName?sub?(objectClass=*)" Require valid-user
此時,只要我能夠通過 AD 伺服器進行身份驗證,任何建議都會受到歡迎。
我發現您需要綁定使用者名/密碼才能使其工作。只需添加:
AuthLDAPBindDN "John Doe" AuthLDAPBindPassword secret
會成功的。
我還必須補充一點,指令的順序是相關的(或者有一些嚴重的黑魔法在對付我)。這是我的指令命令,它有效(放置
AuthLDAPBindDN
和AuthLDAPBindPassword
之後AuthLDAPUrl
將失敗):AuthBasicProvider ldap AuthType basic AuthName Bromine AuthzLDAPAuthoritative off AuthLDAPBindDN john.doe@example.com AuthLDAPBindPassword secret AuthLDAPUrl "ldap://example.com/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)" NONE Require valid-user