FAPI準拠の設定
Financial-grade AP(FAPI)プロファイルの1つに従うようにAuth0テナントを構成できるようにするために、アプリケーションモデルには、以下の3つの値のうちの1つに設定できるcompliance_level
プロパティが含まれています。
null
または未定義:コンプライアンスレベルは必要ありません。これはデフォルトです。fapi1_adv_mtls_par
:ユーザーはmTLSとPARを使用したFAPI 1高度プロファイルに準じてこのクライアントが行動することを望んでいます。fapi1_adv_pkj_par
:ユーザーは秘密鍵JWTとPARを使用した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を使用して、これを実行する方法:
[Auth0 Dashboard] > [Applications(アプリケーション)]に移動します。
アプリケーションを選択します。
[Application Settings(アプリケーションの設定)]タブを選択します。
[Advanced Settings(高度な設定)]セクションを開きます。
[OAuth0]タブから、[FAPI Compliance Enforcement Level(FAPIコンプライアンス強制適用レベル)]を選択します。
FAPIコンプライアンスを構成するオプション:
Management APIを使用して、POSTまたはPATCH要求でcompliance_level
プロパティを設定します:
curl --location --request PATCH 'https://$tenant/api/v2/clients/$client_id' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data '{
"compliance_level": "fapi1_adv_mtls_par"
}'
Was this helpful?
compliance_level
プロパティを返す場合は、GET要求を使用します:
curl --location 'https://$tenant/api/v2/clients/$client_id \
--header 'Authorization: Bearer $management_access_token'
Was this helpful?