Proxy-Authenticate ヘッダー
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
HTTP Proxy-Authenticate レスポンスヘッダーは、プロキシーサーバーの背後にあるリソースへのアクセスに使用される認証メソッド(またはチャレンジ)を定義します。
これは、認証が要求されるプロキシーに対してクライアントが自身を識別できるようにするため、407 Proxy Authentication Required レスポンスとして送信されます。
| ヘッダー種別 | レスポンスヘッダー |
|---|
構文
Proxy-Authenticate: <challenge>, …
この値は、カンマ区切りのチャレンジのリストです。ここで、<challenge> は <auth-scheme> で構成され、その後にオプションの <token68> またはカンマ区切りの <auth-params> のリストが続きます。
challenge = <auth-scheme> <auth-param>, …, <auth-paramN> challenge = <auth-scheme> <token68>
例を示します。
Proxy-Authenticate: <auth-scheme>
Proxy-Authenticate: <auth-scheme> token68
Proxy-Authenticate: <auth-scheme> auth-param1=param-token1
Proxy-Authenticate: <auth-scheme> auth-param1=param-token1, …, auth-paramN=param-tokenN
token68 や認証パラメーターが含まれるかどうかは、選択された <auth-scheme> によって異なります。
例えば、ベーシック認証では <realm> の指定が要求され、charset キーを使用することができますが、token68 には対応していません。
Proxy-Authenticate: Basic realm="Dev", charset="UTF-8"
ディレクティブ
<auth-scheme>-
大文字小文字を区別しないトークンで、使用されている認証方式を示します。
Basic,Digest,NegotiateAWS4-HMAC-SHA256がよく使用されます。 IANA は認証方式の一覧を管理していますが、ホストサービスによって提供されているそれ以外の方式も存在します。 <auth-param>省略可-
<auth-scheme>に応じて書式化された認証パラメーターです。<realm>は、多くの認証方式で共通して使用される認証パラメーターであるため、以下で説明します。<realm>省略可-
realmという文字列の後に=を付け、保護対象領域を説明する引用符で囲まれた文字列が続く形式です。例えば、realm="staging environment"のようになります。 realm を使用すると、サーバーは、その保護対象となる領域を分割することができます(そのような分割をすることができる仕組みが対応している場合)。 一部のクライアントは、どの資格情報が要求されるかをユーザーに知らせるためにこの値を表示しますが、フィッシング対策のため、ほとんどのブラウザーではこの表示を行わなくなりました。 この値に対して確実に対応している文字セットはus-asciiのみです。 realm が指定されていない場合、クライアントは多くの場合、代わりに書式化されたホスト名を表示させます。
<token68>省略可-
一部の方式で有益である可能性のあるトークンです。 このトークンでは、66 個の非予約 URI 文字に加え、それ以外にもいくつかの文字を使用することができます。 このトークンには、パディングの有無にかかわらず、base64、base64url、base32、base16(16 進数)エンコード方式を格納可能ですが、ホワイトスペースは含められません。 古い認証方式との互換性を保つため、
token68は auth-param リストの代替として 対応しています。
通常、それぞれの <auth-scheme> に必要な認証パラメーターについては、関連する仕様を調べる必要があります。
メモ:
認証パラメーターの詳細については、WWW-Authenticate を参照してください。
例
>Proxy-Authenticate のベーシック認証
次のレスポンスは、realm 付きのベーシック認証方式が要求されていることを示しています。
Proxy-Authenticate: Basic realm="Staging server"
仕様書
| 仕様書 |
|---|
| HTTP Semantics> # field.proxy-authenticate> |