2012-02-18 189 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> 
相关问题