IETFのOAuth WGでは、今あるOAuth2.0関連の仕様を整理し、一つの仕様としてまとめなおし OAuth2.1 として標準化するとりくみが進められています。
今回は、簡単にOAuth2.1について紹介します。
OAuth 2.0
OAuth 2.0は2012年10月に「RFC6749 The OAuth 2.0 Authorization Framework」として標準化されています。その後、OAuth2.0の改善は続けられ、セキュリティ向上のために利用すべき機能(PKCE)などが追加されているほか、逆に非推奨になっている機能(Implicit Grant)などがあります。
IETFのOAuth WGではOAuth2.0を安全に利用するためのベストカレントプラクティスを「OAuth 2.0 Security Best Current Practice」としてまとめています。
このような状況の中でOAuth2.1の議論が出てきます。
OAuth 2.1
はじまり
2019年11月に行われた IETF106では、現在のOAuth2.0の仕様は下記のようになっていると発表がありました(スライド)。OAuth2.0を安全に扱うためには幾つかのドキュメントを参照する必要があります。
これをOAuth2.1として下記のように整理したいというところから、議論が始まりました。
ですので、OAuth2.1で新しい振る舞いを追加したり、実験や検証中の機能を追加することは目標に含まれていません。
状況
2020年7月30日に、RFCの草案となる「The OAuth 2.1 Authorization Framework」が出されています。すでにWG Draftになっており、IETF OAuth WGで取り組むアイテムとなっています。
OAuth 2.0 との差分
ドラフトの中で「12.Differences from OAuth 2.0」として、RFC6749 OAuth2.0との差分について簡単に書かれています。
- Authorization Code grantでは「PKCE (RFC7636)」を利用する
- リダイレクトURIは厳密な文字列マッチを使用する(BCP参照)
- Implicit Grant は削除(BCP参照)
- Resource Owner Password Credentials grant は削除(BCP参照)
- URIのクエリ文字列でのベアラートークンの利用は削除(BCP参照)
- リフレッシュトークンは、送信者が制限されるか1回のみ使用される必要がある(BCP参照)
今後
まだまだ、WG Draftになったばかりなので引き続き議論が進められます。もちろん、内容についても変更が入ることでしょう。
興味のある方は、「IETF OAuth WGのメーリングリスト」を追いかけると良いかと思います。