2012-02-18 190 views
2

我們正在運行使用HTTP身份驗證的遺留Web應用程序。我想讓某些用戶可以使用該應用程序,但我不想公開用戶名/密碼,也不想公開應用程序正在運行的服務器。通過使用反向代理繞過http身份驗證

爲了解決這個問題,我打算使用mod_proxy。我做了如下配置:

<VirtualHost *:443> 
    # SSL stuff goes in here 
    ServerName "proxy.local" 
    ProxyRequests Off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPass/http://admin:[email protected]:80/ 
    ProxyPassReverse/http://admin:[email protected]:80/ 
</VirtualHost> 

這個工作,除了仍然要求用戶輸入管理員/密碼本身的部分。 我可以讓Apache發送ProxyPassReserve中提供的用戶名/密碼,而不要求用戶提供嗎?我在Apache mod_proxy documentation找不到答案。

回答

2

在傳遞來自mod_proxy的請求之前,您必須啓用mod_headers並設置http授權標頭。

只是基本編碼64管理員:密碼字符串,並添加RequestHeader指令到您的配置:

RequestHeader set Authorization: "Basic YWRtaW46cGFzc3dvcmQ=" 


<VirtualHost *:443> 
    # SSL stuff goes in here 
    ServerName "proxy.local" 
    ProxyRequests Off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPass/http://legacy.local:80/ 
    ProxyPassReverse/http://legacy.local:80/ 
    RequestHeader set Authorization: "Basic YWRtaW46cGFzc3dvcmQ=" 
</VirtualHost> 
相關問題