Skip to content

MS_OAuth20Tokens

nishi_74322014 edited this page Sep 1, 2026 · 2 revisions

OAuth 2.0 のトークン

概要

OAuth 2.0 のトークンには、幾つか種類がある。

詳細

タイプ

以下のタイプがある(詳しくは トークン を参照)。

持参人切符(Bearer)

基本的に OAuth 2.0 の使用の範囲はコチラ
(故に Authorization: Bearer ヘッダを使う)。

記名式切符(送信者制約)

FAPI Part 2(FAPI Part 2 (Read and Write API Security Profile))や OAuth 2.1 などで、
よりセキュアな実装ではコチラを要求される。

補足(最新化:現在の記名式トークン): 標準化の決着は次のとおり。

仕様 状態 方式
mTLS(RFC 8705, 2020) 標準 TLS クライアント証明書にトークンを束縛。金融系(FAPI)で採用
DPoP(RFC 9449, 2023) 標準 公開鍵を持つクライアントがリクエストごとに署名。証明書不要で SPA / モバイル向け
Token Binding 事実上の終了 ブラウザの実装が撤回された
MAC Token 標準化されず

「Bearer は盗まれたら終わり」という弱点への回答が、
現在は **mTLS(サーバー間・高保証)**と
**DPoP(公開クライアント)**の 2 本立てになった、と理解すればよい。

方式

識別子型

  • GUID などを発行し、情報自体は、サーバー側のデータ・ストア等に格納しておく方式。
  • 問題点としては、AuthZ(N) Server と Resource Server が
    データ・ストアを共有している必要がある。

内包型

  • データ・ストアに依存しないように情報をトークンに内包させる。
  • その際、

ハイブリッド型

ハイブリッドで実装される。

  • 識別子型:機密性の高い情報
  • 内包型:一般的な情報

移行メモ: 元ページは「機密性が高い場合は、コチラを仕様」と
なっていたので「使用」に正した。

補足(識別子型 vs 内包型の判断): 実務上のトレードオフは次のとおり。

識別子型(opaque) 内包型(JWT
リソース サーバの検証 AuthZ Server に問い合わせ(Introspection) 自前で署名検証jwks_uri の公開鍵)
性能 毎回ネットワーク往復 往復不要で速い
即時失効 できる できない(有効期限まで有効)
情報漏えい 中身が見えない Base64URL を解けば誰でも読める
サイズ 小さい 大きい(ヘッダ長の上限に注意)

**「即時失効できない」**が内包型の最大の弱点である。
このため、

  • アクセス トークンは短命(数分〜1 時間)にする
  • 失効はリフレッシュ トークン側(=識別子型)で管理する

という組み合わせが定石になる(=上記のハイブリッド型)。

また、JWT を「暗号化していないから安全」と誤解しないこと。
内包型に個人情報を入れると、クライアント側で読めてしまう

その他

補足: Resource Indicators は **RFC 8707(2020)**として標準化された。
認可要求に resource パラメタを付け、
このトークンはどの API 向けか」を明示できる。
1 つのトークンがあらゆる API に通ってしまう事態を避けられる
(= aud を絞る)。

参考


Tags: 移行, IT国際標準, 認証基盤, クレームベース認証, OAuth

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally