FAPI準拠の設定

Financial-grade AP(FAPI)プロファイルの1つに従うようにAuth0テナントを構成できるようにするために、アプリケーションモデルには、以下の3つの値のうちの1つに設定できるcompliance_levelプロパティが含まれています。

  • nullまたは未定義:コンプライアンスレベルは必要ありません。これはデフォルトです。

  • fapi1_adv_mtls_par:ユーザーはmTLSPARを使用したFAPI 1高度プロファイルに準じてこのクライアントが行動することを望んでいます。

  • fapi1_adv_pkj_par:ユーザーは秘密鍵JWTPARを使用したFAPI 1高度プロファイルに準じてこのクライアントが行動することを望んでいます。

FAPIプロファイルに準拠することは、いくつかの構成変更を必要とします。要求および構成が選択された標準に準拠していない限り、認可要求が成功しないように、compliance_levelを設定します。

たとえば、fapi1_adv_pkj_parおよびfapi1_adv_mtls_parの両方の準拠レベルは、PARを必要とします。これらの準拠レベルのどちらかが選択された場合、require_pushed_authorization_requests設定の値にかかわらず、PARが必要です。PARを使用せずに認証を試みると、以下のエラー応答につながります。

{
  “error”: “invalid_request”,
  “error_description”: “Pushed Authorization Requests are required by the configured compliance level” 
}

Was this helpful?

/

場合によっては、準拠レベルの設定がAuth0の動作も変更します。たとえば、fapi1_adv_pkj_parおよびfapi1_adv_mtls_parの両方の準拠レベルは、Auth0が、状態値のSHA256ハッシュを含む、返されたIDトークンにs_hashクレームが含まれる原因になります。これにより、IDトークンがデタッチ署名として機能できるようなります。

以下の表は、追加の検証ルールおよび各準拠レベルで可能なAuth0の動作の変更をまとめたものです。

検証 fapi1_adv_pkj_par fapi1_adv_mtls_par
/userinfoの呼び出しでアクセストークンがURLクエリで渡されることを防ぐ。その代わりに、アクセストークンは必ず認可ヘッダーに含める。
PARが必要。
S256チャレンジを使用したPKCEが必要。
クライアントの許可されたコールバックにワイルドカードが使用されることを防ぐ。
JARの使用を強制する。
JARペイロードがPS256アルゴリズムを使って署名されることを確実にする。
JARペイロードにnbfクレームが含まれ、その値が60分以下であることを確実にする。
JARペイロードにexpクレームが含まれ、その値がnbfクレームの値から60分までであることを確実にする。
クライアントがoidc_conformantプロパティをtrueに設定していることを確実にする。
クライアント認証に秘密鍵JWTの使用が必要。 不要
クライアント認証にmTLSの使用が必要。 不要

Auth0の更新された動作 fapi1_adv_pkj_par fapi1_adv_mtls_par
s_hashクレームをIDトークンに追加します。
プロファイルスコープが要求される場合、update_atクレームには文字列でなく、OIDC準拠のUnixタイムスタンプが含まれます。
OIDC準拠のエラーコードのみを返します。Auth0がその他のエラーコードを返す場合もありますが、このコンプライアンスレベルを有効にしておけば、OpenID基準で定義されたエラコードのみが使用されます。

クライアントのFAPI準拠の設定

Auth0 Dashboardを使用して、これを実行する方法:

  1. [Auth0 Dashboard] > [Applications(アプリケーション)]に移動します。

  2. アプリケーションを選択します。

  3. [Application Settings(アプリケーションの設定)]タブを選択します。

  4. [Advanced Settings(高度な設定)]セクションを開きます。

  5. [OAuth0]タブから、[FAPI Compliance Enforcement Level(FAPIコンプライアンス強制適用レベル)]を選択します。

FAPIコンプライアンスを構成するオプション:

  • None:コンプライアンスレベルは必要ありません。これはデフォルトです。

  • 秘密鍵JWTとPARを使用したFAPI 1高度プロファイル:ユーザーは秘密鍵JWTPARを使用したFAPI 1高度プロファイルに準じてクライアントに行動するように望んでいます。

  • mTLSとPARを使用したFAPI 1高度プロファイル:ユーザーはmTLSPARを使用したFAPI 1高度プロファイルに準じてクライアントに行動するように望んでいます。

もっと詳しく