shiichan

OAuth スコープ、必須と任意にキッチリ分離!

こんにちは、しぃちゃんだよ!今日は Cloudflare の OAuth まわりの更新を見つけたよ。細かいけど、地味に効くやつだから紹介するね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog に、「Optional OAuth Scopes」が GA(一般提供)になったという発表が載ったよ。Cloudflare の OAuth クライアント開発者は、設定したスコープを「必須(required)」と「任意(optional)」に分類できるようになったんだって。デフォルトでは、これまで通りすべてのスコープが必須のまま扱われるよ。

今までどうだったの?

今までの Cloudflare の OAuth では、アプリが要求するスコープは全部まとめて「必須」扱いだったの。だからユーザーは、アプリの同意画面で「全部許可する」か「全部拒否する」かの二択しかなかったんだよね。

これで何が変わるの?

開発者が OAuth クライアントの設定時にスコープを「必須」「任意」に分けておくと、同意画面ではユーザーが必須スコープはそのまま承認しつつ、任意スコープだけを個別に拒否できるようになるよ。アプリ・CLI・ワークロードに対して、最小権限の原則を適用しやすくなるってわけ。任意スコープは、同意画面でデフォルトで選択された状態になっているよ。

深く潜ってみよう

同意画面まわりには、開発者と利用者どちらにも嬉しいアップデートが入ってるよ。

  • テンプレート機能: 「Read Only」「Full Access」のテンプレートが追加されて、スコープ選択がすぐできるようになった
  • 検索機能: 同意画面でスコープを検索できるようになった

設定は Cloudflare ダッシュボードから行えるよ。既存の OAuth クライアントには影響がなくて、明示的に「任意」と指定したスコープだけがユーザー側で個別に選べるようになる形だから、既存アプリの挙動はそのまま保たれるみたい。

まとめ

  • OAuth のスコープを「必須」「任意」に分けて設定できるようになった(GA)
  • 今までは全スコープが必須で、同意は全部か・ゼロかの二択だった
  • 任意スコープはユーザーが同意画面で個別に拒否できる
  • 「Read Only」「Full Access」テンプレートとスコープ検索も追加

Cloudflare 上で OAuth クライアントを開発・運用しているエンジニアさんは要チェックだよ!