Support for Pushed Authorization Requests (PAR) and JWT Secured Authorization Request (JAR)

オープン
#958 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
dart, flutter

調査の方向性

The issue is about adding PAR and JAR support to the auth0_flutter SDK's web authentication flow. Start by examining the webAuth() method implementation, likely in the main SDK directory. Understand how the authorize URL is currently constructed and where PKCE and state are generated. Review the Auth0 PAR endpoint documentation and the linked RFCs to understand the required POST request and request_uri handling. 'Done' means the SDK can optionally make a PAR request or accept a pre-fetched request_uri or signed request object before initiating the browser flow.

索引モデルが issue の本文から書いたものです。

説明

feature request
Checklist
  • I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.
Describe the problem you'd like to have solved

Many enterprise, financial, and high-security mobile applications require compliance with security profiles such as FAPI (Financial-grade API) 1.0 / 2.0 or strict OAuth 2.0 recommendations. Two critical standards in these profiles are:

Pushed Authorization Requests (PAR - RFC 9126): Prevents parameter tampering, leaking sensitive scope/claims data in GET query parameters, and browser history leakage by pushing authorization parameters out-of-band via a POST request prior to redirection.

JWT Secured Authorization Request (JAR - RFC 9101): Allows signing authorization request parameters using a JWT (Request Object) to ensure request integrity and authenticity.

Currently, auth0_flutter initiates web authorization by generating full standard authorize URL queries. Because the SDK manages PKCE code verifiers, state generation, and browser redirection internally, applications cannot cleanly make a PAR request out-of-band to get a request_uri and pass it into auth0_flutter.webAuth().

Describe the ideal solution

Native support within auth0_flutter to support PAR and JAR workflows seamlessly during Web Auth authentication flows.

Ideally, this could be configured globally during SDK initialization or per-login attempt via webAuth() options:

// Example API proposal

// Option A: Explicit parameter/flag enabling PAR
await auth0.webAuth().login(
  usePar: true, // Automates POST to /oauth/par prior to opening browser session
  scopes: {'openid', 'profile', 'email', 'custom_scope'},
);

// Option B: Support passing a pre-fetched request_uri or request parameter (JAR)
await auth0.webAuth().login(
  parameters: {
    'request_uri': 'urn:ietf:params:oauth:request_uri:12345...',
    // or signed request object (JAR)
    'request': 'eyJhbGciOiJSUzI1NiIs...' 
  },
);
Alternatives and current workarounds
  • Manual PAR implementation via custom HTTP client: Attempting to make the /oauth/par POST call manually prior to calling webAuth(). However, auth0_flutter generates its own state/PKCE challenge internally when building the authorize URL, leading to mismatched parameters or requiring custom flutter_web_auth_2 workarounds that bypass auth0_flutter entirely.

  • Custom redirect URI parameters: Passing additional query parameters via parameters: {}, which does not solve the necessity of making the initial POST endpoint call or signing the request object out-of-band.

Additional context
  • RFC 9126 (OAuth 2.0 Pushed Authorization Requests): https://datatracker.ietf.org/doc/html/rfc9126

  • RFC 9101 (The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)): https://datatracker.ietf.org/doc/html/rfc9101

  • Auth0 PAR Support: Auth0 supports PAR on tenant endpoints (/oauth/par). Bringing this capability to the native Flutter SDK enables Flutter developers to build FAPI-compliant mobile applications without needing native platform bridges or custom OAuth libraries.

主要言語
Dart
スター
86
フォーク
63
平均マージ
9時間 58分
マージ済み PR(30日)
22

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

auth0/auth0-flutter のほかの issue

auth0/auth0-flutter の issue をすべて見る

似ている issue

Dart の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。