我想爲在Ubuntu服務器12.04.1上運行的Apache的反向代理站點添加基本身份驗證。反向代理的Apache基本身份驗證問題
Web應用程序是Jenkins,它運行在Java EE容器上。
我加入下面配置在的httpd.conf,
ProxyPass /jenkins/ http://localhost:8080/jenkins/¬
ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/¬
ProxyRequests Off¬
ProxyPreserveHost On¬
¬
<Proxy http://localhost:8080/jenkins*>¬
Order deny,allow¬
Deny from all¬
▸ AllowOverride AuthConfig¬
▸ AuthType Basic¬
AuthName "jenkins"¬
▸ AuthBasicProvider file¬
AuthUserFile /etc/apache2/passfile¬
▸ Require valid-user¬
▸ Satisfy any¬
</Proxy>
當我用錯密碼或非存在用於認證的用戶名,我可以找到以下消息中error.log中的Apache,
[週六10月27日17時51分59秒2012] [錯誤] [客戶端222.128.175.95]用戶凱恩: 爲 「/詹金斯/」 認證失敗:密碼不匹配[週六10月27日 17點52分04秒2012] [錯誤] [客戶端222.128.175.95]用戶阿拉丁未找到: /詹金斯/
沒有消息將在密碼文件使用正確的用戶口令和當被記錄。雖然我在Web瀏覽器中輸入正確的用戶名和密碼,但驗證對話框會再次提示。 我還發現下面輸出在的access.log的Apache,
222.128.175.95 - 凱恩[27月/ 10月/ 2012:17:39:54 0800] 「GET /詹金斯/ HTTP/1.1」 401 794 「 - 」 「Mozilla的/ 5.0(Macintosh上,英特爾的Mac OS X 10_8_2) 爲AppleWebKit/537.4(KHTML,例如Gecko)瀏覽器/ 22.0.1229.94 Safari瀏覽器/ 537.4」
有誰知道如何使這行得通?謝謝。
感謝您分享鏈接。我的詹金斯確實也使用OpenId進行身份驗證。由於詹金斯CLI的限制,我必須讓一些工作可以由匿名用戶閱讀。這就是爲什麼我想爲Apache服務器後面的jenkins使用基本身份驗證。看起來jenkins在其身份驗證和Apache基本身份驗證之間有衝突。無論如何,它給了我一個解釋。 – Kane
我知道這篇文章是3歲,但我在搜索解決方案時發現它。如果你想阻止Jenkins顯示無限的基本身份驗證提示,只需在你的Apache配置文件中添加'RequestHeader unset Authorization'。在這裏查看完整的解決方案:http://jenkins-ci.361315.n4.nabble.com/SOLVED-Apache-SSL-Proxy-Jenkins-tp4700182p4700212.html – Alex