Highly Regulated Identity 機能を使用するには、Highly Regulated Identity add-on を含む Enterprise Plan が必要です。詳しくは、Auth0 Pricingを参照してください。
compliance_level プロパティがあり、これに次のいずれかの値を設定できます。
nullまたは undefined: 準拠レベルは不要です。これはデフォルト値です。fapi1_adv_mtls_par: このクライアントを、mTLS と PAR を使用する FAPI1 Advanced プロファイルに準拠した動作にします。fapi1_adv_pkj_par: このクライアントを、Private Key JWT と PAR を使用する FAPI1 Advanced プロファイルに準拠した動作にします。fapi2_sp_pkj_mtls: このクライアントを、Private Key JWT と mTLS Token Sender-Constraining を使用する FAPI 2.0 Security Profile に準拠した動作にします。fapi2_sp_mtls_mtls: このクライアントを、mTLS Client Authentication と mTLS Token Sender-Constraining を使用する FAPI 2.0 Security Profile に準拠した動作にします。
compliance_level を設定すると、リクエストと設定の両方が選択した標準に準拠していない限り、認可リクエストは成功しません。
たとえば、fapi1_adv_pkj_par と fapi1_adv_mtls_par の両方の準拠レベルでは PAR が必要です。これらの準拠レベルのいずれかを選択した場合、require_pushed_authorization_requests 設定の値に関係なく、PAR が必須になります。PAR を使用せずに認可を試行すると、次のエラーレスポンスが返されます。
fapi1_adv_pkj_par と fapi1_adv_mtls_par の両方の準拠レベルでは、返される に、state 値の SHA256 ハッシュを含む s_hash クレームが含まれます。これにより、IDトークンは分離署名として機能できます。
次の表は、各準拠レベルで有効になる追加の検証ルールと、Auth0 の動作変更をまとめたものです。
| 検証 | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
/userinfo の呼び出し時に、URL クエリでアクセストークンを使用できないようにします。アクセストークンは代わりに Authorization ヘッダーに設定する必要があります。 | Y | Y | Y | Y |
| PAR が必要です。 | Y | Y | Y | Y |
| S256 チャレンジメソッドを使用する PKCE が必要です。 | Y | Y | Y | Y |
| クライアントの許可済みコールバックでワイルドカードを使用できないようにします。 | Y | Y | N | N |
| JAR の使用を必須にします。 | Y | Y | N | N |
| JAR ペイロードが PS256 アルゴリズムで署名されていることを確認します。 | Y | Y | N | N |
JAR ペイロードに nbf クレームが含まれ、その値が過去 60 分以内であることを確認します。 | Y | Y | N | N |
JAR ペイロードに exp クレームが含まれ、その値が nbf クレームから 60 分以内であることを確認します。 | Y | Y | N | N |
クライアントで oidc_conformant プロパティが true に設定されていることを確認します。 | Y | Y | Y | Y |
x-fapi-* ヘッダーの使用が必要です。 | Y | Y | N | N |
| クライアント認証で Private Key JWT の使用が必要です。 | Y | N | Y | N |
| クライアント認証で mTLS の使用が必要です。 | N | Y | N | Y |
| 許可される response type。 | code id_token | code id_token | code | code |
Private Key JWT アサーションで aud クレームが Issuer と厳密に一致する必要があります。 | N | N/A | Y | N/A |
プッシュド認可リクエスト では redirect_uri パラメーターが必要です。 | N | N | Y | Y |
| Auth0 の更新後の動作 | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
IDトークンに s_hash クレームを追加します。 | Y | Y | N | N |
profile スコープが要求されると、update_at クレームには文字列ではなく OIDC 準拠の Unix タイムスタンプが含まれます。 | Y | Y | Y | Y |
| OIDC 準拠のエラーコードのみを返します。場合によっては Auth0 が追加のエラーコードを返すことがありますが、この準拠レベルを有効にすると、Auth0 は OpenID 標準で定義されたエラーコードのみを使用します。 | Y | Y | Y | Y |
code レスポンスで Issuer を iss パラメーターとして返します。 | N | N | Y | Y |
| 認可コードの最大有効期間を 60 秒に短縮します。 | N | N | Y | Y |
クライアントの FAPI準拠を設定する
- Auth0 Dashboard
- Management API
Auth0 Dashboard で設定するには、次の手順に従います。
- Auth0 Dashboard > Applications に移動します。
- アプリケーションを選択します。
- Application Settings タブを選択します。
- Advanced Settings セクションを開きます。
- OAuth タブで、FAPI Compliance Enforcement Level を選択します。
- None: 準拠レベルは不要です。これはデフォルト設定です。
- FAPI 1 Advanced profile using Private Key JWT and PAR: このクライアントを、Private Key JWT と PAR を使用する FAPI1 Advanced profile に準拠した動作にします。
- FAPI 1 Advanced profile using mTLS and PAR: このクライアントを、mTLS と PAR を使用する FAPI1 Advanced profile に準拠した動作にします。
- FAPI 2.0 Security Profile with Private Key JWT and certificate binding: このクライアントを、Private Key JWT Client Authentication と mTLS Token Sender-Constraining を使用する FAPI2.0 Security Profile に準拠した動作にします。
- FAPI 2.0 Security Profile with mTLS and certificate binding: このクライアントを、mTLS Client Authentication と mTLS Token Sender-Constraining を使用する FAPI2.0 Security Profile に準拠した動作にします。