For Authlete 2.x documentation, see 2.x version.
はじめに
RFC 9126: OAuth 2.0 Pushed Authorization Requests (PAR) は、OAuth2 フレームワークにおける強力なセキュリティ拡張のひとつです。これは、クライアントが認可サーバーに対して、認可リクエストを従来の方法(ブラウザリダイレクトによる間接通信)で送信する前に、その内容を「プッシュ」(直接送信)できるようにするものです。 PAR 仕様が定義するのは、認可リクエストの内容の事前送信を受けつけるエンドポイント (PAR EP) です。PAR EP は、リクエストを受信すると、識別子 (request_uri) を含むレスポンスを返却します。その返却された識別子を、クライアントは認可リクエストに含めます。 認可リクエストの内容を直接送信し、従来の間接通信による認可リクエストと分離することにより、セキュリティ強化の選択肢が広がります。たとえば SPA (Single Page Application) では、サーバーサイドで認可リクエストの内容を生成・送信し、ブラウザを経由する認可リクエスト自体には詳細を含めないようにできます。またモバイルアプリケーションにおいても、ブラウザに認可リクエスト処理を引き継ぐ前に、認可リクエストの内容を生成・送信できるようになります。 本記事では、Authlete における PAR のサポートの概要と、設定方法について記述します。PAR EP の実装
PAR をサポートするためには、認可サーバー(OIDC における OP)に PAR EP を実装し、Authlete の PAR サポートを設定する必要があります。 認可サーバーの PAR EP のバックエンドとなるのは Authlete の /pushed_auth_req API です。この API は、他の OAuth/OIDC エンドポイントに対応する Authlete API と同様に設計されています。認可サーバーは、クライアントから受信した「認可リクエストの内容」を、そのまま Authlete に転送すれば良いのです。\
リクエストとレスポンスの例
クライアントが PAR EP にプッシュする認可リクエストの内容は、従来の認可エンドポイントに対する認可リクエストの内容と同じです。異なるのは、クライアントが POST メソッドかつ application/x-www-form-urlencoded メディアタイプを用いて、認可リクエストの内容を送信する点です。- リクエスト
- レスポンス
Authlete の PAR 設定
管理者はサービスオーナーコンソールを用いて、Authlete サービスが認可サーバーの PAR EP のバックエンドとしてどのように機能するかを設定できます。具体的には、プッシュされた認可リクエストの内容の有効期間と、PAR の使用をすべてのクライアントに必須化するかどうかです。
特定のクライアントに PAR の使用を必須化するかどうかの設定
クライアント認証
PAR EP において、認可サーバーはクライアント認証を行うかもしれません。その際のクライアント認証方法の設定はトークンエンドポイントと共通です。詳細は以下の記事をご参照ください。 クライアント認証方法の設定は開発者コンソールの「認可」タブにあります。\