🤓

OAuth 2.1の差分を見守る会 : draft 00-01

2021/03/07に公開

ritou です。

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

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

2月にドラフトが00から01になったのでその差分からどんな部分が強調されたり説明が追加されたのかなというのを見ていきます。

このやり方、新しい仕様においては最終的にRFCになるものに含まれない内容に触れることもあり、経緯なんてすっ飛ばして出来上がったものをいただく派には無駄に思える作業かもしれません。
しかし、このOAuth2.1ってのはこれまで出された仕様とベストプラクティスを踏まえたものなので、きっと無駄にはならないはず。 早速見ていきましょう。

差分

差分

目次

目次での差分は

  • 1.9. Compatibility with OAuth 2.0 が追加

というのだけ。内容については後から見ていきます。

1. Introduction

ここではまずパスワードを共有しながらのリソースアクセスについての課題が列挙されています。
そこに "複数のサービスでパスワードを使い回すことがあるので、どこか一つで問題が起こると関係ないとこにも影響が出る" みたいな説明が追記されています。

Resource owners often reuse passwords with other unrelated services, despite best security practices. This password reuse means a vulnerability or exposure in one service may have security implications in completely unrelated services.

1.8. Interoperability

OAuth 2.1の仕様できっちり定義される部分と、未定義のままになっていて他の仕様を参照して任意に実装する部分があります。後者について具体的なリストが追加されています。

RFC8414: Authorization Server Metadata, defining an endpoint clients can use to look up the information needed to interact with a particular OAuth server

AuthZ Serverのメタデータの参照について。

RFC7591: Dynamic Client Registration, providing a mechanism for programmatically registering clients with an authorization server

動的なClient登録。

RFC7592: Dynamic Client Management, providing a mechanism for updating dynamically registered client information

Dynamic Client Registrationで登録したClient情報の更新など。

RFC7662: Token Introspection, defining a mechanism for resource servers to obtain information about access tokens

Resource ServerとAuthorization Server間でやりとりされるトークンのメタデータとやりとりの内容。

1つの仕様だけで全ての実装パターンを網羅できるわけがないので、OAuth 2.1が出たとしても "関連仕様" ってのは残ることに注意が必要ですが、今までよりも整理しやすくなれば十分な気もします。

1.9. Compatibility with OAuth 2.0

互換性の話が追加されています。

OAuth 2.1はOAuth2.0と互換性がありますがBCP、拡張仕様の導入、いくつかの制限が適用されます。

  • 拡張機能 : PKCEなど
  • OAuth 2.0で定義されている機能の制限 : ImplicitやROPCの非推奨、redierct_uri の文字列検証など

具体的な差分は後の方(Section 12)を見てねと。

OAuth 2.1 is compatible with OAuth 2.0 with the extensions and restrictions from known best current practices applied. Specifically, features not specified in OAuth 2.0 core, such as PKCE, are required in OAuth 2.1. Additionally, some features available in OAuth 2.0, such as the Implicit or Resource Owner Credentials grant types, are not specified in OAuth 2.1. Furthermore, some behaviors allowed in OAuth 2.0 are restricted in OAuth 2.1, such as the strict string matching of redirect URIs required by OAuth 2.1.

終わり

細かい文言変更はありましたが、あまり大きな変更はなかったですね。
引き続きウォッチしていきましょう。

ではまた!

Discussion