だから私は次のシナリオを実装しようとしています:
- アプリケーションは基本認証によって保護されています。それがホストされているとしましょう
app.com - アプリケーションの前にあるHTTPプロキシにも、認証が必要です。それはでホストされています
proxy.com
したがって、ユーザーは同じリクエストでプロキシとアプリケーションの両方の資格情報を提供する必要があります。したがって、ユーザーは異なるユーザー名とパスワードのペアを持っています。1つのペアはアプリケーションに対して自分自身を認証し、もう1つのユーザー名/パスワードのペアはプロキシに対して自分自身を認証します。
仕様を読んだ後、これをどのように実装すべきかよくわかりません。私がやろうと思っていたのは:
- ユーザーは、認証なしでプロキシにHTTPリクエストを送信します。
- プロキシは応答し、次の形式のヘッダー
407 Proxy Authentication Requiredを返します。質問:このヘッダーは正しく設定されていますか?Proxy-Authenticate"Proxy-Authenticate: Basic realm="proxy.com"Proxy-Authenticate - 次に、クライアントは
Proxy-Authorizationヘッダー(プロキシのBase64表現)を使用してリクエストを再試行しますusername:password。 - 今回はプロキシがリクエストを認証しますが、アプリケーションは
401 Unauthorizedヘッダーで応答します。ユーザーはプロキシによって認証されましたが、アプリケーションによっては認証されていません。WWW-Authenticateアプリケーションは、のようなヘッダーを応答に追加しますWWW-Authenticate: Basic realm="app.com"。質問:このヘッダー値は正しいですか? - クライアントは、ヘッダーと、アプリのBase64表現で評価され
Proxy-Authorizationたヘッダーの両方を使用してリクエストを再試行します。Authorizationusername:password - この時点で、プロキシはリクエストを正常に認証し、ユーザーも認証するアプリケーションにリクエストを転送します。そして、クライアントは最終的に応答を返します。
ワークフロー全体は正しいですか?