OAuth 2.0は、 2012年10月のリリース(RFC6749 )以来、保護されたリソースへの安全なアクセスを実現するメカニズムを提供し、その認可フレームワークは現代の認可フレームワークへと成長しました。また、 OIDCがWeb、モバイル、デスクトップアプリケーション向けに 追加した認証レイヤーの基盤としても機能しています。
しかし、セキュリティ分野ではよくあることですが、取り組みはそこで終わりませんでした。サイバーセキュリティは、時間の経過とともに新たな技術の登場や新たなユースケースの登場により新たな脆弱性が発見されたり、新たに生み出されたりする中で、常に改善のサイクルを続けています。
新しくリリースされたOAuth 2.1は、OAuth 2.0の複数の補足仕様を統合し、セキュリティと一貫性を強化した新しい標準仕様です。主な変更点は以下の3つです。1つ目は「暗黙的フローの廃止」。アクセストークンの漏洩リスクを考慮し、より安全な認可コードフローの使用が推奨されます。2つ目は「PKCEの全クライアントへの必須化」。これによりコード傍受攻撃を防止し、全体的なセキュリティレベルが向上します。3つ目は「リダイレクトURIの厳格な一致」。オープンリダイレクタ攻撃を防ぐため、すべてのクライアントに対して完全な文字列一致が義務化されます。OAuth 2.1は、開発者がシンプルかつ安全にアプリケーションを設計・運用できるよう支援する、新時代の認可フレームワークです。
📊 比較表(OAuth 2.0 vs OAuth 2.1)
項目 | OAuth 2.0 | OAuth 2.1 |
暗黙的フロー | 許可されていた | 廃止(非推奨) |
PKCE | パブリッククライアント向けに任意 | すべてのクライアントで必須 |
リダイレクトURI | 完全一致は推奨 | 厳密な一致が必須 |
セキュリティベストプラクティス | 外部ドキュメントに分散 | 単一仕様に統合 |
承認フロー | 4種類(認可コード、暗黙、パスワード、クライアント) | 暗黙・パスワードは廃止、認可コード+PKCEが推奨 |