OAuth 2.0(オーオースニーテンゼロ)
認可フレームワーク標準(RFC 6749)。Authorization Code+PKCE(RFC 7636・モバイル/SPA必須)・Client Credentials・Device Flow・Token Exchange(RFC 8693)が2026年主要grant type、OAuth 2.1統合案+DPoP(RFC 9449)のトークンバインディング標準化進行中。
概要
OAuth 2.0 は認可フレームワーク標準(RFC 6749)で、リソース所有者がクライアントに対し限定的なアクセス権を付与する仕組みです。2025年に発表された RFC 7636 以降、Authorization Code で PKCE を必須化し、モバイルや SPA での安全性を高めました。2026年には OAuth 2.1 の統合案が進行中で、DPoP(RFC 9449) によるトークンバインディングが標準化されています。主要な grant type は Authorization Code+PKCE、Client Credentials、Device Flow、Token Exchange(RFC 8693) です。
主な特徴・仕組み
- Authorization Code+PKCE
PKCE はコードチャレンジを SHA‑256 で生成し、クライアント側でのみ保持。アクセストークン取得時にコードチャレンジとコードベリファイアを送信し、サーバ側で検証します。 - Client Credentials
サーバ間通信で使用。クライアント ID とシークレットで認証し、アクセストークンを取得。 - Device Flow
スマート TV や IoT デバイスで利用。ユーザーは別デバイスで認証コードを入力し、デバイスは定期的にトークンをポーリング。 - Token Exchange
既存トークンを別トークンに変換。委任やサービス間連携で有効。 - DPoP
トークンに署名を付与し、トークンの所有者を証明。リプレイ攻撃を防止。
トークンは JWT で表現され、512‑bit 署名を採用。TLS 1.3 上で通信。アクセストークンの有効期間は 1 時間、リフレッシュトークンは 30 日。DPoP トークンは 256 バイトの署名を含む。
スペック/製品比較表
| Grant Type | 主要用途 | PKCE 必須 | DPoP 対応 | 典型的な有効期間 |
|---|---|---|---|---|
| Authorization Code+PKCE | ユーザー認証 | 必須 | あり | 1h |
| Client Credentials | サーバ間通信 | なし | なし | 1h |
| Device Flow | IoT/TV | なし | なし | 1h |
| Token Exchange | トークン委任 | なし | あり | 1h |
| Refresh Token | 長期セッション | なし | なし | 30d |
具体例・対応製品
- Keycloak 20.0.1 – オープンソース認可サーバ。DPoP を実装。
- Auth0 3.2.0 – SaaS 認可プラットフォーム。Device Flow をサポート。
- Azure AD 2026.1 – Microsoft のクラウド認可。OAuth 2.1 仕様に準拠。
- Google Identity Platform 2025.0 – Google の認可サービス。PKCE を必須化。
- Okta 2025.2 – エンタープライズ向け認可。Token Exchange を提供。
自作PCでの選び方・注意点
- ① サーバーは TLS 1.3 を必須に設定。
- ② PKCE を使用するクライアントは SHA‑256 を採用。
- ③ DPoP を有効にする場合、RSA 2048 以上の鍵を使用。
- ④ アクセストークンは 1h で失効させ、リフレッシュトークンは 30d。
- ⑤ Token Exchange を利用する場合、スコープを最小化。
- ⑥ Device Flow を導入する際は、ポーリング間隔を 5 秒に設定。
- ⑦ クライアントシークレットはハッシュ化して保存。
- ⑧ ログは 256‑bit SHA‑256 でハッシュ化。
- ⑨ 監査ログは 512‑bit 署名付きで保存。
- ⑩ 監視ツールは 1 分ごとにトークン使用状況を確認。
関連用語との違い
OAuth 2.0 は認可を扱うのに対し、OpenID Connect は認可と認証を統合。OAuth 1.0 は署名付きリクエストでセキュリティを確保していたが、署名処理が煩雑だった。OAuth 2.1 は OAuth 2.0 の欠点を修正し、PKCE を必須化、DPoP を推奨化。
よくある質問
Q1: PKCE はどのデバイスで必須ですか?
A1: モバイルアプリと SPA で必須。デスクトップアプリはオプション。
Q2: DPoP を導入するとパフォーマンスに影響しますか?
A2: 署名計算は 1ms 程度で、サーバー負荷は 0.1% 未満。
Q3: Token Exchange のスコープはどう設定しますか?
A3: 必要最低限のスコープを指定し、委任権限を限定。
まとめ
OAuth 2.0 は 2025年以降の標準化で PKCE と DPoP が必須化し、2026年の OAuth 2.1 でさらに統合が進む。主要な grant type は Authorization Code+PKCE、Client Credentials、Device Flow、Token Exchange。自作PC で導入する際は TLS 1.3、SHA‑256、RSA 2048 以上の鍵を確保し、トークン有効期間を厳格に管理することで、最新かつ次世代の安全性を実現できます。