MS_OAuth20Extensions - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- 戻る(OAuth 2.0)
- OAuth 2.0 拡張
- OAuth 2.0 のトークン
- JWTとOAuth2.0
- OAuth PKCE
OAuth 2.0 には、様々な拡張仕様がある。
補足(なぜ拡張が多いのか): RFC 6749(OAuth 2.0)は
「フレームワーク」と自称している通り、意図的に穴を残した仕様である。
トークンの形式・クライアント認証の方法・エラーの詳細などが
実装依存になっており、そこを埋めるために多数の拡張が生まれた。裏を返すと「素の RFC 6749 だけでは安全な実装にならない」ということで、
それを整理し直したのが OAuth 2.1 と
RFC 9700(Security BCP)である。
以下のような拡張フローがある。
-
スマホ向けベストプラクティス(RFC 8252 … OAuth 2.0 for Native Apps)
(OAuth 2.0 for Native Apps) - 認可コード横取り攻撃への対抗策(RFC 7636 … OAuth PKCE)
「Redirect フロー」ではなく「Decoupled フロー」を使用。
-
OAuth 2.0 Device Flow→ 下記に変更される。 - OAuth 2.0 Device Authorization Grant(OAuth 2.0 Device Authorization Grant)
- CIBA(Client Initiated Backchannel Authentication)(CIBA)
補足: Device Authorization Grant は RFC 8628(2019)として標準化された。
TV・IoT 機器など入力手段が乏しい端末向けで、
「画面にコードを出し、ユーザーは手元のスマホで認可する」流れ。CIBA は OpenID Foundation の仕様で、
クライアント側から認可を開始し、ユーザーの端末に通知を飛ばす
(店頭決済など、ユーザーがブラウザを持っていない場面向け)。
その他、新しい仕様も策定されている。
- トークン取り消し(RFC 7009 … Token Revocation)(OAuth 2.0 Token Revocation)
- トークン情報取得(RFC 7662 … Token Introspection)(OAuth 2.0 Token Introspection)
- 各種クライアント認証(JWTとOAuth2.0)
OpenID Connect で追加された仕様
- 応答タイプ(
response_type)の追加
(OAuth 2.0 Multiple Response Type Encoding Practices) - 応答モード(
response_mode)の新設
(OAuth 2.0 Form Post Response Mode: OAuth 2.0 Form Post Response Mode) -
claimsリクエスト・パラメタ(OpenID Connect) - 認証コンテキストクラス(Authentication Context)
- リクエスト・オブジェクト(OpenID Connect)
Financial API (FAPI)で追加された仕様
補足(現在、実装で必須級の拡張): 数が多いので、
どれを押さえるべきかを整理しておく。
拡張 RFC 必要度 PKCE 7636 必須(OAuth 2.1 で全クライアント) Native Apps BCP 8252 モバイルなら必須 Security BCP 9700(2025) 必読。既知の攻撃と対策の総まとめ Token Revocation 7009 ログアウト実装で必要 Token Introspection 7662 識別子型トークンを使うなら必要 Device Authorization 8628 TV / IoT なら mTLS / DPoP 8705 / 9449 高保証・金融系 JAR / JARM / PAR 9101 / — / 9126 FAPI 準拠が要るなら RAR 9396 細かい認可(送金額など)が要るなら **RFC 9700(OAuth 2.0 Security Best Current Practice)**は、
本ページのような拡張仕様の一覧を「何をすべきか」の形で
まとめ直したものなので、最初に読む価値が高い。
- OAuth & OpenID Connect 関連仕様まとめ - Qiita
https://qiita.com/TakahikoKawasaki/items/185d34814eb9f7ac7ef3 - OAuth Working Group
https://datatracker.ietf.org/wg/oauth/documents/ - RFC 9700 - Best Current Practice for OAuth 2.0 Security
https://datatracker.ietf.org/doc/html/rfc9700
Tags: 移行, IT国際標準, 認証基盤, クレームベース認証, OAuth