Apache-2.2

讓域身份驗證工作:xampplite 2.2 + Server 2003

  • January 28, 2011

在我試圖完成這個設置的每一刻,我的靈魂都在死去一點。我有一台裝有 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

會成功的。

我還必須補充一點,指令的順序是相關的(或者有一些嚴重的黑魔法在對付我)。這是我的指令命令,它有效(放置AuthLDAPBindDNAuthLDAPBindPassword之後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

引用自:https://serverfault.com/questions/226364