Basic Auth
HTTP Basic 認証はユーザー名とパスワードを Base64 で符号化して Authorization ヘッダーで送る。単純だが、HTTPS 上で使わなければならない。
目的
Cookie もトークンも不要な、最も単純な HTTP 認証の仕組みを提供する。
メカニズム
ヘッダーは Authorization: Basic base64(user:pass) である。ブラウザーは 401 と WWW-Authenticate: Basic を返してログインダイアログを表示させる。有効期限もログアウトもなく、ブラウザーを閉じる以外に解除方法はない。Base64 は暗号化ではないため、クレデンシャル漏えいを防ぐには HTTPS が必須である。
ユースケース
- シンプルな API 認証
- 社内ツールへのアクセス
- レガシーシステム
- テストとデバッグ
例
- 入力
user:passOutputAuthorization: Basic dXNlcjpwYXNzBase64 encoding
よくあるエラー
- Using Basic Auth over plain HTTP (not HTTPS) leaks the password
- Always pair it with HTTPS
関連用語
Bearer Token
Bearer トークンは純粋に所持だけで機能するトークンである。Authorization: Bearer <token> ヘッダーで送られ、追加のクレデンシャルなしに、持っている者なら誰でも使える。 用語集
JWT
JWT(JSON Web Token)は、クレームを JSON オブジェクトとして安全に伝えるコンパクトで自己完結型のトークンである。ステートレス認証と情報交換に広く使われる。 用語集
OAuth
OAuth 2.0は、ユーザーの同意の下で、パスワードを共有せずにトークンを使ってサードパーティアプリケーションがユーザーのリソースへアクセスできるようにする認可フレームワークである。 用語集