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

# Configurer la conformité avec FAPI

> Apprenez à configurer la conformité FAPI pour un locataire Auth0.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Pour utiliser les fonctionnalités de l’identité très réglementée (HRI), vous devez disposer d’un plan Enterprise avec le module complémentaire Identité très réglementée. Consultez [Tarification Auth0](https://auth0.com/pricing/) pour plus de détails.
</Callout>

Pour aider les clients à configurer leur locataire Auth0 pour adhérer à l’un des profils d’API de qualité financière - FAPI, le modèle d’application comprend une propriété `compliance_level` qui peut être définie sur l’une des trois valeurs :

* `null` ou non définie : Aucun niveau de conformité n’est requis. Il s’agit de la valeur par défaut.
* `fapi1_adv_mtls_par` : Le client souhaite que ce client se comporte conformément au profil avancé FAPI1 en utilisant [mTLS](/docs/fr-ca/get-started/applications/configure-mtls) et [PAR](/docs/fr-ca/get-started/applications/configure-par).
* `fapi1_adv_pkj_par` : Le client souhaite que ce client se comporte conformément au profil avancé FAPI1 en utilisant [la clé privée JWT](/docs/fr-ca/get-started/applications/configure-private-key-jwt) et [PAR](/docs/fr-ca/get-started/applications/configure-par).

La conformité à un profil FAPI nécessite un certain nombre de modifications de configuration. En définissant la propriété `compliance_level`, vous vous assurez qu’aucune demande d’autorisation ne puisse être acceptée à moins que la demande et configuration ne soient conformes à la norme sélectionnée.

Par exemple, les deux niveaux de conformité `fapi1_adv_pkj_par` et `fapi1_adv_mtls_par` nécessitent PAR. Si l’un de ces niveaux de conformité est sélectionné, PAR est requis quelle que soit la valeur du paramètre `require_pushed_authorization_requests`. Toute tentative d’autorisation sans utiliser PAR entraînera la réponse d’erreur suivante :

```json lines theme={null}
{
  “error”: “invalid_request”,
  “error_description”: “Pushed Authorization Requests are required by the configured compliance level” 
}
```

Dans certains cas, la configuration d’un niveau de conformité modifie également le comportement d’Auth0. Par exemple, les deux niveaux de conformité `fapi1_adv_pkj_par` et `fapi1_adv_mtls_par` obligent Auth0 à inclure une demande `s_hash` dans le jeton d’ID renvoyé contenant un hachage SHA256 de la valeur de l’état. Cela permet aux jetons d’ID d’agir comme une signature détachée.

Les tableaux suivants résument les règles de validation supplémentaires et les modifications apportées au comportement d’Auth0 que chaque niveau de conformité permet d’activer :

| Validation                                                                                                                                                                                | `fapi1_adv_pkj_par` | `fapi1_adv_mtls_par` |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -------------------- |
| Empêche l’utilisation de jetons d’accès dans la requête URL lors de l’appel à `/userinfo`. Les jetons d’accès doivent être placés dans l’en-tête Authorization (autorisation) à la place. | Y                   | Y                    |
| Requiert l’utilisation de PAR.                                                                                                                                                            | Y                   | Y                    |
| Requiert l’utilisation d’une clé de preuve pour l’échange de code (PKCE) avec la méthode de défi-réponse S256.                                                                            | Y                   | Y                    |
| Empêche l’utilisation de métacaractères dans les rappels autorisés sur un client.                                                                                                         | Y                   | Y                    |
| Rend l’utilisation de JAR obligatoire.                                                                                                                                                    | Y                   | Y                    |
| Garantit que la charge utile JAR est signée à l’aide de l’algorithme PS256.                                                                                                               | Y                   | Y                    |
| Garantit que la charge utile JAR contient la demande nbf et qu’elle ne remonte pas à plus de 60 minutes.                                                                                  | Y                   | Y                    |
| Garantit que la charge utile JAR contient la revendication exp et qu’elle ne remonte pas à plus de 60 minutes après la demande nbf.                                                       | Y                   | Y                    |
| Garantit que le client a défini la propriété `oidc_conformant` sur `true`.                                                                                                                | Y                   | Y                    |
| Requiert l’utilisation de la clé privée JWT pour l’authentification du client.                                                                                                            | Y                   | N                    |
| Requiert l’utilisation de mTLS pour l’authentification du client.                                                                                                                         | N                   | Y                    |

| Comportement Auth0 mis à jour                                                                                                                                                                                                                                               | `fapi1_adv_pkj_par` | `fapi1_adv_mtls_par` |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -------------------- |
| Ajoute la revendication s\_hash aux jetons d’ID.                                                                                                                                                                                                                            | O                   | O                    |
| Lorsque la permission du profil est demandée, la réclamation `update_at` contient un horodatage unix conforme à l’OIDC plutôt qu’une chaîne.                                                                                                                                | O                   | O                    |
| Le système ne renvoie que les codes d’erreur conformes à l’OIDC. Dans certains cas, Auth0 peut renvoyer des codes d’erreur additionnels, mais l’activation de ce niveau de conformité garantit qu’Auth0 n’utilise que les codes d’erreur définis dans les standards OpenID. | O                   | O                    |

## Configurer la conformité FAPI pour un client

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour effectuer cette étape avec Auth0 Dashboard :

    1. Rendez-vous à **Auth0 Dashboard > Applications**.
    2. Sélectionnez l’application.
    3. Sélectionnez l’onglet **Application Settings (Paramètres d’application)**.
    4. Ouvrez la section **Advanced Settings (Paramètres avancés)**.
    5. Dans l’onglet **OAuth**, sélectionnez **FAPI Compliance Enforcement Level (Niveau d’application de la conformité FAPI)**.

    Les options pour configurer la conformité FAPI sont les suivantes :

    * **None (aucun)** : aucun niveau de conformité n’est requis. Il s’agit de la valeur par défaut.
    * **FAPI 1 Advanced profile using Private Key JWT and PAR (Profil FAPI 1 avancé utilisant la clé privée JWT et PAR)** : le client voudrait que ce client se comporte conformément au profil FAPI1 Advanced (FAPI 1 avancé) tout en utilisant [Private Key JWT (Clé privée JWT)](/docs/fr-ca/get-started/applications/configure-private-key-jwt) et [PAR](/docs/fr-ca/get-started/applications/configure-par).
    * **FAPI 1 Advanced profile using mTLS and PAR (Profil FAPI 1 avancé utilisant mTLS et et PAR)** : le client voudrait que ce client se comporte conformément au profil FAPI1 Advanced (FAPI 1 avancé) tout en utilisant [mTLS](/docs/fr-ca/get-started/applications/configure-mtls) et [PAR](/docs/fr-ca/get-started/applications/configure-par).
  </Tab>

  <Tab title="Management API">
    Utilisez [Management API](https://auth0.com/docs/api/management/v2) pour définir la propriété `compliance_level` et y ajouter une demande POST ou PATCH :

    ```bash lines theme={null}
    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"
    }'
    ```

    Pour renvoyer la propriété `compliance_level`, utilisez une demande GET :

    ```bash lines theme={null}
    curl --location 'https://$tenant/api/v2/clients/$client_id \
      --header 'Authorization: Bearer $management_access_token'
    ```
  </Tab>
</Tabs>

## En savoir plus

* [Configurer l’authentification par clé privée JWT](/docs/fr-ca/get-started/applications/configure-private-key-jwt)
* [Configurer les demandes d’autorisation poussées (PAR)](/docs/fr-ca/get-started/applications/configure-par)
* [Configurer l’authentification mTLS](/docs/fr-ca/get-started/applications/configure-mtls)
