Apache ProxyRemote の認証情報と proxy-chain-auth の比較
固定の親プロキシ用アカウントと、クライアントのプロキシ認証情報を意図的に転送する方法のどちらかを選びます。
クライアントは一方のアカウントで Apache のフォワードプロキシに認証し、Apache はもう一方のアカウントで親プロキシに認証できます:
client ── client account ── Apache ── parent account ── parent proxy
httpd 2.4.59 以降で固定の親アカウントを使う場合、ProxyRemote は第 3 引数を受け付けます:
ProxyRemote "*" "http://parent.example:3128" "parent-user:replace_with_private_password"
これは既存のアクセス制御付きフォワードプロキシ構成を補足します。たとえば、クライアント IP とプロキシログインの両方を要求する プライベートリスナーがそれです。アカウントは選択した親プロキシのものです。アカウントを含む構成を保護し、配備に必要な一致範囲を選んでください。
Apache はこれらの Basic 認証情報を先制的に送信し、まずチャレンジを待ちません。そのため親プロキシへの接続の転送経路とアカウントポリシーが重要になります。サイトの後段の HTTPS セッション自体は、親プロキシへの平文 HTTP ホップを保護しません。
同じ受信アカウントを継続すべき場合
Apache は通常、自分宛てのプロキシ認証を消費します。代わりに proxy-chain-auth 環境設定を使うと、クライアントのプロキシ認証情報を次のプロキシへ転送できます:
SetEnv proxy-chain-auth On
これは意図的に共有する認証チェーンにのみ適しています。受信したアカウント情報をそのまま先へ渡すだけで、親プロキシ用の別のユーザー名とパスワードを作り出すわけではありません。
ProxyRemote の明示的な認証情報引数を使う場合、proxy-chain-auth は効果がありません。どちらのパスワードが通るかに期待して両方の設定を重ねるのではなく、認証情報の出所を意図的に選んでください。
これらの仕組みが認証するのはプロキシのホップです。宛先サイトの Authorization ヘッダーは別個のやり取りのままです。