OAuth 2.0
OAuth 2.0 は認可 プロトコル(Authorization Protocol)で、アプリケーションがユーザーに代 わって保護 されたリソースにアクセスすることを許可 する。
OAuth 2.0 は**認可
プロトコル**であり、認証
プロトコルではない。主
にリソースへのアクセス権
を付与
するために使用
。
4つの役割
| 役割 | 説明 |
|---|---|
| Resource Owner | 保護 されたリソースを所有 するユーザー |
| Client / Application | 保護 されたリソースへのアクセスが必要 なアプリ |
| Authorization Server | ユーザー認証 と Access Token 発行 |
| Resource Server | ユーザーの保護 データを保存 するサーバー |
Protocol Flow

Authorization Code Flow
最 も一般的 な認可 フロー。Server-side Application に適用 。

PKCE (Proof Key for Code Exchange)
Public Clients のセキュリティを強化 するための拡張 。
Token タイプ
JWT (JSON Web Token)
JWT は 3 つの部分 で構成 :Header、Payload、Signature。

Opaque Token
ユーザー情報 を含 まないランダム文字列 。サーバー側 での検証 が必要 。
JWT vs Opaque Token
| 側面 | JWT | Opaque Token |
|---|---|---|
| 構造 | Header + Payload + Signature | ランダム文字列 |
| 内容 | ユーザー情報 を含 む | 参照 ID のみ |
| 検証 | クライアント側 で可能 | サーバー必要 |
| 取消 | 期限 前 の取消 が困難 | いつでも取消 可能 |