HTTP認証

HTTP認証とは、HTTP通信においてクライアントがサーバーに対して自身を証明するプロセスです。この認証は、RFC 9110で定義された枠組みに基づいて行われ、主にオリジンサーバーまたはプロキシサーバーへのアクセス時に用いられます。

ステータス・レスポンス



HTTP認証には、以下のステータスコードとヘッダーが関連しています。

オリジンとの認証処理
ステータスコード: `401 Unauthorized` - 認証が必要であることを示します。
レスポンスヘッダー: `WWW-Authenticate` - 利用可能な認証方式をクライアントに通知します。
リクエストヘッダー: `Authorization` - 認証情報をサーバーに送信します。

プロキシサーバーとの認証処理
ステータスコード: `407 Proxy Authentication Required` - プロキシサーバーで認証が必要であることを示します。
レスポンスヘッダー: `Proxy-Authenticate` - プロキシサーバーで利用可能な認証方式をクライアントに通知します。
リクエストヘッダー: `Proxy-Authorization` - プロキシサーバーに認証情報を送信します。

これらのステータスコードは、認証の成否や必要な手順をクライアントに伝えます。認証が成功しても、アクセス制御によってリソースへのアクセスが許可されない場合は、`403 Forbidden` ステータスコードが返されます。

認証スキーム



HTTP認証では、様々な認証方式(認証スキーム)を利用できます。これらのスキームは、`WWW-Authenticate` ヘッダーと `Authorization` ヘッダーを通じて交渉されます。

代表的な認証スキームには、以下のものがあります。

Basic: 最も基本的な認証方式で、ユーザー名とパスワードをBase64エンコードして送信します。
Digest: Basic認証よりも安全な認証方式で、ハッシュ化されたパスワードを送信します。
Bearer: ベアラートークンを利用する認証方式で、OAuth 2.0などで広く利用されます。
Negotiate: SPNEGOを用いた認証方式で、主にWindows環境の統合認証に利用されます。RFC 4178で規定されています。

これらの認証スキームは、IANAによってHypertext Transfer Protocol (HTTP) Authentication Scheme Registryで管理されています。しかし、NTLMやAWS4-HMAC-SHA256のように、登録されていない認証スキームも存在します。

関連項目



Basic認証
Digest認証

脚注



RFC 9110: HTTP Semantics (英語): https://www.rfc-editor.org/rfc/rfc9110

外部リンク



[Hypertext Transfer Protocol]] (HTTP) Authentication Scheme Registry (英語): [https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml
* HTTP [認証]] - HTTP | MDN: [https://developer.mozilla.org/ja/docs/Web/HTTP/Authentication

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。