LoginSignup
12

More than 1 year has passed since last update.

図解 PAR : OAuth 2.0 Pushed Authorization Requests

Last updated at Posted at 2020-01-12

この記事では『OAuth 2.0 Pushed Authorization Requests』(通称 PAR)を図を用いて説明します。(英語版はこちら

2021 年 9 月 16 日追記:PAR が RFC 9126 になりました。

:one: クライアントアプリケーションと認可サーバーがあります。

par_ja_01_client_and_authz_server.png

:two: クライアントアプリケーションは複雑な認可リクエストを抱えています。

par_ja_02_complex_authz_request.png

:three: もしも認可サーバーが『OAuth 2.0 Pushed Authorization Requests』(通称 PAR)をサポートしているなら、サーバーは『Pushed Authorization Request Endpoint』を公開しています。

par_ja_03_par_endpoint.png

:four: クライアントアプリケーションは、Pushed Authorization Request Endpoint で複雑な認可リクエストを認可サーバーに登録します。

par_ja_04_par_request.png

:five: 応答として、登録された認可リクエストを表す『Request URI』が発行されます。

par_ja_05_par_response.png

:six: クライアントアプリケーションは Web ブラウザを介して認可サーバーの認可エンドポイントに認可リクエストを送信します。クライアントは複雑な認可リクエストを送る必要はありません。かわりに、発行された Request URI を request_uri リクエストパラメーターの値として送るだけで十分です。(『RFC 9101 JWT-Secured Authorization Request』(通称 JAR)が敢えて破った後方互換性を大事に思うなら、client_idresponse_type などの必須リクエストパラメーター群も添えて)

par_ja_06_authz_request.png

:seven: 応答として、認可コード、アクセストークン、ID トークンなどが発行されます。下図では認可コードが発行されています。これは、認可リクエストの response_type リクエストパラメーターが code を含んでいる場合に起こります。トークン群とフロー群の関係については『OpenID Connect 全フロー解説』を参照してください。

par_ja_07_authz_response.png

:eight: クライアントアプリケーションはいつものように認可コードを添えて認可サーバーのトークンエンドポイントにトークンリクエストを送信します。

par_ja_08_token_request.png

:nine: 応答として、アクセストークンおよび条件により ID トークンが発行されます。

par_ja_09_token_response.png

:ten: まとめのフルカラーダイアグラム。

par_ja.png


新しいユースケースや要望に対応するため、新しい仕様群の開発が続いています。そのような仕様群の中には、認可リクエストを大きくするものがあります。例えば、『OAuth 2.0 Rich Authorization Requests』(RAR)は複雑な JSON 構造を持つ authorization_details リクエストパラメーターを追加し、『OpenID Connect for Identity Assurance 1.0』(IDA)(私の記事:『Identity Assurance - eKYC 時代の OpenID Connect)は claims リクエストパラメーター(OIDC Core 1.0, Section 5.5)の値に、これもまた複雑な JSON 構造を持つ verified_claims を挿入しました。

この記事で取り上げた『OAuth 2.0 Pushed Authorization Requests』(PAR)は、クライアントアプリケーションが大きな認可リクエストを Web ブラウザを介して送る必要がなくなるよう開発されました。加えて、PAR により他の利点ももたらされます。より多くの情報については、PAR 仕様自体や、仕様の著者である Torsten Lodderstedt 氏の記事群(例えば『Pushed Authorization Requests Draft adopted by OAuth Working Group』等)を参照してください。


私の会社の製品である Authlete(オースリート)は、バージョン 2.2 以降で PAR、RAR、IDA をサポートしていますスペックシート)。これらの新しい仕様群を試されたい方は、コンタクトフォームやメール(sales@authlete.com)でお問い合わせください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12