メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://developers.authlete.com/llms.txt

Use this file to discover all available pages before exploring further.

はじめに

RFC 9396: OAuth 2.0 Rich Authorization Requests (RAR) は OAuth 2.0 の Proposed Standard 拡張仕様です。クライアントは従来の「スコープ」よりも細かな粒度の認可要件を JSON 構造で指定できるようになります。

RAR とは

リソースオーナーがサードパーティに付与した権限を表現するために、OAuth 2.0 認可フレームワーク は「スコープ」というしくみを導入しました。スコープに対し特定の意味を与えることにより、権限や機能オプションを表現できるようになります。 たとえば OpenID Connect 仕様では、“profile” のようなスコープを、“openid” スコープと同時に定義しています。“profile” スコープは、ユーザープロファイルの特定の属性 へのアクセス権限を、サードパーティに付与します。一方の “openid” スコープはセマンティクスが異なり、ID トークンの生成と UserInfo エンドポイントへのアクセス権限を意味します。 OAuth2 が普及するにつれて、新たなユースケースが登場し、それに対する新たなソリューションが必要となっています。RAR 仕様は、サードパーティがユーザーの承認を得る際にどのようなコンテキスト・意図があるかを示す必要があるケースに対処するものです。たとえば、オンライン決済や、ファイル共有、健康診断の結果などです。

RAR の構造

RAR は共通の JSON 構造を定義しています。この構造を用いて、より細かな粒度の権限を表現できます。それぞれの権限には、“type” 属性と、オプションである “locations” “actions” “datatypes” “identifier” “privileges” 属性、そして独自に定義された属性があります。詳細については Request parameter “authorization_details” セクションをご参照ください。 “type” 属性とそのセマンティクス(表現する内容や、その組み立て方、エンドユーザーに対する意図、そして属性間の関係など)をどう定義するかは、認可サーバー、もしくは認可サーバーが属するエコシステムに任されています。これにより、エンドユーザーに要求する権限を正確に定義できるようになります。 “locations” 属性は Resource Indicators 機構 と同じコンセプトであり、権限がどのリソースサーバー (の URI) に関するものかを指定するものです。“identifier” 属性は権限要求時に、特定リソースの指定に使えます。端的に言えば、“locations” はリソース群を示し、“identifier” は単一のリソースを指します。 “actions” は「動作」、たとえばファイルシステム上でのアクションや、銀行口座に関する操作、医療機器の制御、家電の挙動、データベースの権限などの表現に使えます。 “datatypes” と “privileges” は、要求する権限の特性を示す際に用います。

Authlete での設定

RAR の利用をご参照ください。