> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0テナントのFAPI準拠を設定する方法を説明します。

# FAPI準拠を設定する

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Highly Regulated Identity 機能を使用するには、Highly Regulated Identity add-on を含む Enterprise Plan が必要です。詳しくは、[Auth0 Pricing](https://auth0.com/pricing/)を参照してください。
</Callout>

お客様が Auth0テナント をいずれかの Financial-grade API (FAPI) プロファイルに準拠するよう設定できるように、Application モデルには `compliance_level` プロパティがあり、これに次のいずれかの値を設定できます。

* `null` または undefined: 準拠レベルは不要です。これはデフォルト値です。
* `fapi1_adv_mtls_par`: このクライアントを、[mTLS](/ja/docs/get-started/applications/configure-mtls) と [PAR](/ja/docs/get-started/applications/configure-par) を使用する FAPI1 Advanced プロファイルに準拠した動作にします。
* `fapi1_adv_pkj_par`: このクライアントを、[Private Key JWT](/ja/docs/get-started/applications/configure-private-key-jwt) と [PAR](/ja/docs/get-started/applications/configure-par) を使用する FAPI1 Advanced プロファイルに準拠した動作にします。
* `fapi2_sp_pkj_mtls`: このクライアントを、[Private Key JWT](/ja/docs/get-started/applications/configure-private-key-jwt) と [mTLS Token Sender-Constraining](/ja/docs/secure/sender-constraining/mtls-sender-constraining) を使用する FAPI 2.0 Security Profile に準拠した動作にします。
* `fapi2_sp_mtls_mtls`: このクライアントを、[mTLS Client Authentication](/ja/docs/get-started/applications/configure-mtls) と [mTLS Token Sender-Constraining](/ja/docs/secure/sender-constraining/mtls-sender-constraining) を使用する FAPI 2.0 Security Profile に準拠した動作にします。

FAPI プロファイルに準拠するには、複数の設定変更が必要です。`compliance_level` を設定すると、リクエストと設定の両方が選択した標準に準拠していない限り、認可リクエストは成功しません。

たとえば、`fapi1_adv_pkj_par` と `fapi1_adv_mtls_par` の両方の準拠レベルでは PAR が必要です。これらの準拠レベルのいずれかを選択した場合、`require_pushed_authorization_requests` 設定の値に関係なく、PAR が必須になります。PAR を使用せずに認可を試行すると、次のエラーレスポンスが返されます。

```json lines theme={null}
{
  “error”: “invalid_request”,
  "error_description": "Pushed Authorization Requestsは設定された準拠レベルによって必要とされています" 
}
```

場合によっては、準拠レベルを設定すると、Auth0 の動作も変化します。たとえば、`fapi1_adv_pkj_par` と `fapi1_adv_mtls_par` の両方の準拠レベルでは、返される <Tooltip tip="リソースへのアクセスではなく、クライアント自体を対象とした認証情報。" cta="用語集を見る" href="/ja/docs/glossary?term=ID+token">IDトークン</Tooltip> に、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                    |

<div id="configure-fapi-compliance-for-a-client">
  ## クライアントの FAPI準拠を設定する
</div>

<Tabs>
  <Tab title="Auth0 Dashboard">
    Auth0 Dashboard で設定するには、次の手順に従います。

    1. **Auth0 Dashboard > Applications** に移動します。
    2. アプリケーションを選択します。
    3. **Application Settings** タブを選択します。
    4. **Advanced Settings** セクションを開きます。
    5. **OAuth** タブで、**FAPI Compliance Enforcement Level** を選択します。

    FAPI準拠の設定オプションは次のとおりです。

    * **None**: 準拠レベルは不要です。これはデフォルト設定です。
    * **FAPI 1 Advanced profile using Private Key JWT and PAR**: このクライアントを、[Private Key JWT](/ja/docs/get-started/applications/configure-private-key-jwt) と [PAR](/ja/docs/get-started/applications/configure-par) を使用する FAPI1 Advanced profile に準拠した動作にします。
    * **FAPI 1 Advanced profile using mTLS and PAR**: このクライアントを、[mTLS](/ja/docs/get-started/applications/configure-mtls) と [PAR](/ja/docs/get-started/applications/configure-par) を使用する FAPI1 Advanced profile に準拠した動作にします。
    * **FAPI 2.0 Security Profile with Private Key JWT and certificate binding**: このクライアントを、[Private Key JWT Client Authentication](/ja/docs/get-started/applications/configure-private-key-jwt) と [mTLS Token Sender-Constraining](/ja/docs/secure/sender-constraining/mtls-sender-constraining) を使用する FAPI2.0 Security Profile に準拠した動作にします。
    * **FAPI 2.0 Security Profile with mTLS and certificate binding**: このクライアントを、[mTLS Client Authentication](/ja/docs/get-started/applications/configure-mtls) と [mTLS Token Sender-Constraining](/ja/docs/secure/sender-constraining/mtls-sender-constraining) を使用する FAPI2.0 Security Profile に準拠した動作にします。
  </Tab>

  <Tab title="Management API">
    [Management API](https://auth0.com/docs/api/management/v2) を使用して、`POST` または `PATCH` リクエストで `compliance_level` プロパティを設定します。

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/$client_id' \
      --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
      --header 'Content-Type: application/json' \
      --data '{
        "compliance_level": "fapi1_adv_mtls_par"
    }'
    ```

    `compliance_level` プロパティを取得するには、`GET` リクエストを使用します。

    ```bash lines theme={null}
    curl --location 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID} \
      --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}'
    ```

    FAPI 2.0 コンプライアンスでは、pushed authorization request の有効期限を 600 秒未満の値に設定でき、デフォルトは 30 秒です。有効期限の値は Management API を使用して設定できます。
  </Tab>
</Tabs>

<div id="learn-more">
  ## 詳細
</div>

* [Private Key JWT 認証を設定する](/ja/docs/get-started/applications/configure-private-key-jwt)
* [プッシュド認可リクエスト (PAR) を設定する](/ja/docs/get-started/applications/configure-par)
* [mTLS 認証を設定する](/ja/docs/get-started/applications/configure-mtls)
