> ## 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.

> Apprenez à configurer Auth0 pour réussir les OpenID FAPI Conformance Tests.

# Configurer Auth0 pour réussir les OpenID FAPI Conformance Tests

Cette section contient quelques conseils pour configurer votre client si vous souhaitez tester votre solution à l’aide des [OpenID FAPI Conformance Tests](https://openid.net/certification/certification-fapi_op_testing/).

Pour réussir les <Tooltip tip="OpenID : norme ouverte d’authentification qui permet aux applications de vérifier l’identité des utilisateurs sans recueillir ni stocker leurs renseignements de connexion." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=OpenID">OpenID</Tooltip> FAPI Conformance Tests, commencez par configurer les éléments suivants :

* Définissez la propriété `compliance_level` selon le profil souhaité : `fapi1_adv_pkj_par`, `fapi1_adv_mtls_par`, `fapi2_sp_pkj_mtls` ou `fapi2_sp_mtls_mtls`
* [Configurer mTLS](/docs/fr-ca/get-started/applications/configure-mtls) (y compris les [alias mTLS](/docs/fr-ca/get-started/applications/configure-mtls/configure-mtls-for-a-tenant#enable-mtls-aliases)) ou [Configurer Private Key JWT](/docs/fr-ca/get-started/applications/configure-private-key-jwt)
* [Configurer mTLS Token Binding](/docs/fr-ca/get-started/applications/configure-mtls/configure-mtls-for-a-client#enable-token-binding)
* Configurer les [Pushed Authorization Requests](/docs/fr-ca/get-started/applications/configure-par)
* Assurez-vous que la propriété `oidc_conformant` est définie à `true` pour tous les clients utilisés pour le test. Il s’agit de la valeur par défaut pour les clients créés dans l’Auth0 Dashboard.

Ensuite, suivez les instructions ci-dessous pour terminer la configuration des OpenID FAPI Conformance Tests :

* [S’assurer qu’Auth0 demande le consentement des utilisateurs](#ensure-auth0-prompts-users-for-consent)
* [Configurer les claims ACR prises en charge pour le tenant](#configure-supported-acr-claims-for-the-tenant)
* [Supprimer la propriété alg du point de terminaison JWKS](#remove-the-alg-property-from-jwks-endpoint)
* [Ajouter une Action pour exiger `scope` et `redirect_uri`](#add-action-to-require-scope-and-redirect-uri)
* [(Profils FAPI2 seulement) S’assurer que la claim `iss` est renvoyée dans les réponses](#fapi2-profiles-only-ensure-iss-claim-is-returned-in-responses)

<div id="ensure-auth0-prompts-users-for-consent">
  ### Assurez-vous qu’Auth0 demande le consentement des utilisateurs
</div>

Vous devez vous assurer qu’Auth0 demande le consentement des utilisateurs. Vous pouvez ignorer cette étape si le client est configuré comme une application de première partie et que le <Tooltip tip="Serveur de ressources : serveur qui héberge des ressources protégées. Les serveurs de ressources acceptent les requêtes visant des ressources protégées et y répondent." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Resource+Server">serveur de ressources</Tooltip> ou l’API permet d’ignorer le consentement pour les applications de première partie. Pour vous assurer qu’Auth0 demande le consentement des utilisateurs, définissez la propriété `is_first_party` du client à `false` :

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

Ensuite, passez votre connexion au niveau du domaine :

```bash lines theme={null}
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/connections/YOUR_CONNECTION_ID' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "is_domain_connection": true
}'
```

<div id="configure-supported-acr-claims-for-the-tenant">
  #### Configurer les claims ACR pris en charge pour le tenant
</div>

Les tests FAPI transmettent une valeur ACR requise de `urn:mace:incommon:iap:silver`. Pour inclure la valeur ACR requise dans le <Tooltip tip="ID Token : jeton destiné au client lui-même plutôt que pour accéder à une ressource." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=ID+token">ID token</Tooltip>, ajoutez `urn:mace:incommon:iap:silver` à la liste des valeurs ACR prises en charge pour le tenant :

```bash lines theme={null}
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/tenants/settings' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "acr_values_supported": ["urn:mace:incommon:iap:silver"]
}'
```

<div id="remove-the-alg-property-from-jwks-endpoint">
  #### Supprimer la propriété alg du point de terminaison JWKS
</div>

Pour que les clés puissent être utilisées avec plusieurs algorithmes, et pas seulement avec RS256, supprimez la propriété `alg` du tenant dans la réponse du point de terminaison `/.well-known/jwks.json` :

```bash lines theme={null}
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/tenants/settings' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "flags": {
        "remove_alg_from_jwks": true
    }
}'
```

<div id="add-action-to-require-scope-and-redirect_uri">
  #### Ajouter une Action pour exiger un scope et redirect\_uri
</div>

Par défaut, Auth0 autorise les requêtes sans scope et suppose le scope `openid` si aucun scope n’est fourni. Auth0 autorise également les requêtes sans `redirect_uri,` que vous pouvez définir dans [Actions](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/redirect-with-actions). Toutefois, les tests de conformité FAPI exigent qu’Auth0 soit plus restrictif.

Ajoutez l’Action suivante pour imposer les restrictions nécessaires sur le scope et `redirect_uri` :

```js lines theme={null}
exports.onExecutePostLogin = async (event, api) => {
  if (!event.request.body || !event.request.body.refresh_token) {
    // Exiger un scope
    if (!event.request.query.scope) {
      api.access.deny('scope must be provided in the request');
    }
    // Pour améliorer le message d'erreur si redirect_uri n'est pas présent
    if (!event.request.query.redirect_uri) {
      api.access.deny('redirect_uri must be provided in the request');
    }
  }
};
```

<div id="fapi2-profiles-only-ensure-iss-claim-is-returned-in-responses">
  #### (profils FAPI2 uniquement) Assurez-vous que la claim `iss` est incluse dans les réponses
</div>

Le profil de sécurité FAPI 2.0 exige que le paramètre `iss` soit renvoyé dans les réponses d’autorisation conformément à la norme [RFC9207](https://www.rfc-editor.org/info/rfc9207). Pour des raisons de compatibilité, Auth0 ne le fait pas par défaut. Pour activer ce comportement, définissez la propriété `authorization_response_iss_parameter_supported` dans les paramètres du tenant à `true`.

```bash lines theme={null}
curl --location --request PATCH "https://{YOUR_DOMAIN}/api/v2/tenants/settings" \
  --header "Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "authorization_response_iss_parameter_supported": true
  }'
```

<div id="learn-more">
  ## En savoir plus
</div>

* [Configurer l’authentification par Private Key JWT](/docs/fr-ca/get-started/applications/configure-private-key-jwt)
* [Configurer l’authentification mTLS](/docs/fr-ca/get-started/applications/configure-mtls)
