クライアントは一方のアカウントで 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 ヘッダーは別個のやり取りのままです。

関連記事