🕕

OAuth 2.1の差分を見守る会 : draft 05-06

2022/12/05に公開

ritou です。

Digital Identity技術勉強会 #iddance Advent Calendar 2022 5日目の記事です。

https://qiita.com/advent-calendar/2022/iddance

本投稿はOAuth 2.1って呼ばれたい感を出してる仕様の差分を見守る会です。

本投稿含め、差分を スクラップ - OAuth 2.1を見守る会 でまとめています。

2022/7/24にドラフトが05から06になってたので、その差分からどんな部分が強調されたり説明が追加されたのかなというのを見ていきます。

(NOTE: 2022/12/1の時点で最新はDraft07ですが一つ一つの差分を追っていきたいところなので06-07は別途記事を書きます)

差分URL : https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-v2-1-06.txt

   -06
   *  Removed "credentialed client" term
   *  Simplified definition of "confidential" and "public" clients
   *  Incorporated the iss response parameter referencing RFC9207
   *  Added section on access token validation by the RS
   *  Removed requirement for authorization servers to support all 3
      redirect methods for native apps
   *  Fixes for some references
   *  Updates HTTP references to RFC 9110
   *  Clarifies "authorization grant" term
   *  Clarifies client credential grant usage
   *  Clean up authorization code diagram
   *  Updated reference for application/x-www-form-urlencoded and
      removed outdated note about it not being in the IANA registry

わりとたくさん書いてありますがどうでしょう。
上から見ていきます。

Removed "credentialed client" term

OAuth 2.1で新たに追加された定義であった "credentialed client" がなくなってしまいました。
Dynamic Client Registrationで登録されたかどうかを confidential / public と並べて扱うのは無理があったかもしれません。

ということで、今まで通り confidential / public の違いを意識して使っていきましょう。

Simplified definition of "confidential" and "public" clients

credential を持つ / 持たないというシンプルな定義になっています。

Incorporated the iss response parameter referencing RFC9207

いわゆる "mix-up attacks" という攻撃への対策として、RFC9207 OAuth 2.0 Authorization Server Issuer Identification という仕様があります。

https://www.rfc-editor.org/rfc/rfc9207.html

Authorization Response に "iss" というパラメータがoptionalで追加されています。

Added section on access token validation by the RS

RSによるアクセストークンの検証についてのセクションが追加され、アクセストークンを2つのカテゴリに分類して説明されています。

  • reference tokens : 識別子型などとも呼ばれますね。RSはASへの問い合わせが必要であり、その問い合わせは RFC7662 OAuth 2.0 Token Introspection です
  • self-encoded tokens : 内包型とも呼ばれます。代表的なのが RFC9068 JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens という仕様です

私の主張はさらに一歩進んだ って話はやめときましょう。

Removed requirement for authorization servers to support all 3 redirect methods for native apps

ネイティブアプリとのリダイレクトのところで、完全にサポートするには https / ループバックインターフェース / プライベートURIスキーム に対応する必要があるみたいなことが書いてあったんですが、削除されました。
こういう形式があるよ、にとどめた感じですね。

Fixes for some references

はい

Updates HTTP references to RFC 9110

はい

Clarifies "authorization grant" term

"is a credential" が削除された感じです。

Clarifies client credential grant usage

細かい言い回しが変わってスッキリしてそうです。

Clean up authorization code diagram

ちょっと変わってますが、古のAAみたいなの何とかならんのか。
新しい何かの仕様ではシーケンス部分がAAじゃなくなってる!って思ったことあったんですが、あれ何使ってたんだっけ...

Updated reference for application/x-www-form-urlencoded and removed outdated note about it not being in the IANA registry

はい

まとめ

  • "credentialed" な Client Type がなくなった
  • 新しい仕様への参照が取り込まれた
  • その他細かいところが色々見直された

まぁこんなところでしょうかね。

iddanceのアドカレが空いているので、明日は 06-07 の差分を見ていきますよ。

https://qiita.com/advent-calendar/2022/iddance

ではまた!

Discussion