2012-02-18 13 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 Authorizationヘッダーを設定する必要があります。

ジャストベース-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> 
関連する問題