web-dev-qa-db-ja.com

http認証をサーバーに渡すようにmod_proxyを設定する

Apacheをプロキシサーバーとして設定する際に問題が発生しました。現時点では、ポート80を介してdomain.netを使用してMS Sharepointインストールにアクセスしています。使用する前に、ユーザー名とパスワードを入力する必要があります。ここまでは順調ですね。

ここで、サブドメインweb.domain.netを介してWebサイトにアクセスできるようにしたいと思います。このサイトをホストしているサーバーは、内部ネットワーク内の別のマシンで実行されます。私が思いついた解決策は、ポート80をApacheを実行しているマシンにリダイレクトして、新しいWebサイトにサービスを提供し、SharePointの要求をSharePointサーバーにプロキシすることです。

これまでのところ、httpd.confですべてのプロキシモジュールを有効にし、仮想ホストを追加しました。 編集:最初の応答後に構成を更新しました。

<VirtualHost *:80>
    ServerName domain.net

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyErrorOverride On
    ProxyPass   /   http://sharepoint/
    ProxyPassReverse   /   http://sharepoint/

    <Location />
        AuthType basic
        AuthBasicAuthoritative Off
        SetEnv proxy-chain-auth On
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

これは機能します。 domain.netに入ると、SharePointサーバーに転送されます。今、実際に問題が発生します。 SharePointは、資格情報を要求します。しかし、それらを入力すると、ユーザー名とパスワードがないか間違っているため、ログインフォームがポップアップし続けます。

資格情報がプロキシ経由でSharePointに転送されていないようです。

これを解決する方法についてアドバイスをいただけますか? mod_proxyを使用してこれを行うことは可能ですか?

10
signpainter

http://httpd.Apache.org/docs/2.2/mod/mod_proxy_http.html を参照してください:プロキシされたサーバーに資格情報を転送する必要があるproxy-chain-auth環境変数があります。

9
Femi