HTTP認証
表示
HTTP |
---|
主要項目 |
リクエストメソッド |
ヘッダーフィールド |
ステータスコード |
認証方式 |
セキュリティホール |
HTTP認証とは、HTTPの通信の中で認証を行うことである。オリジンまたはプロキシサーバーに対して認証を行う枠組みがRFC 9110の中で規定されており、これを用いることをHTTP認証という。
ステータス・レスポンス
[編集]HTTPでは、認証に関することして以下のものが定義されている。
- オリジンとの認証処理
- ステータスコード401 Unauthorized
- HTTPレスポンスヘッダーWWW-Authenticate
- HTTPリクエストヘッダーAuthorization
- プロキシサーバーとの認証処理
- ステータスコード407 Proxy Authentication Required
- HTTPレスポンスヘッダーProxy-Authenticate
- HTTPリクエストヘッダーProxy-Authorization
なお、認証は通ったものの、アクセス制御として対象のリソースへのアクセスが許可されていない場合は、応答として403 Forbiddenを用いる。
認証スキーム
[編集]前述のリクエストヘッダー・レスポンスヘッダーの上で、様々な認証方式を使用できる。個々の認証方式を認証スキーム(authentication scheme)と呼ぶ。
例えば以下のような認証スキームが存在する。
- Basic
- Basic認証。
- Digest
- Digest認証。
- Bearer
- Bearerトークンを用いるベアラー認証。
- Negotiate
- ネゴシエート認証。SPNEGOによる統合Windows認証。RFC 4178で規定。
認証スキームはIANAがHypertext Transfer Protocol (HTTP) Authentication Scheme Registryとして管理している。一方で、NTLM[1]やAWS4-HMAC-SHA256[2]のように登録されずに使われているものもある。