Passer au contenu principal
Cette section contient quelques conseils pour configurer votre application si vous souhaitez tester votre solution à l’aide des tests de conformité OpenID FAPI. Pour réussir les tests de conformité FAPI, commencez par configurer les éléments suivants :
  • Définissez la propriété compliance_level sur le profil souhaité, soit fapi1_adv_pkj_par, fapi1_adv_mtls_par, fapi2_sp_pkj_mtls ou fapi2_sp_mtls_mtls
  • Configurez soit mTLS (y compris les alias mTLS), soit Private Key JWT
  • Configurez la liaison de jeton mTLS
  • Configurez les requêtes d’autorisation poussées
  • Assurez-vous que la propriété oidc_conformant est définie sur true pour toute application utilisée pour le test. Il s’agit de la valeur par défaut pour les applications créées dans l’Auth0 Dashboard.
Ensuite, suivez les instructions ci-dessous pour terminer la configuration des tests de conformité OpenID FAPI : Vous devez vous assurer qu’Auth0 demande le consentement aux utilisateurs. Vous pouvez ignorer cette étape si l’application est configurée comme une application de première partie et que le ou l’API permet d’ignorer le consentement pour les applications de première partie. Pour vous assurer qu’Auth0 demande le consentement aux utilisateurs, définissez la propriété is_first_party de l’application sur false :
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 :
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
}'

Configurer les revendications ACR prises en charge pour le locataire

Les tests FAPI transmettent une valeur ACR requise, urn:mace:incommon:iap:silver. Pour inclure cette valeur ACR requise dans le , ajoutez urn:mace:incommon:iap:silver à la liste des valeurs ACR prises en charge pour le locataire :
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"]
}'

Supprimer la propriété alg du point de terminaison JWKS

Pour permettre d’utiliser les clés avec plusieurs algorithmes, et pas seulement RS256, supprimez la propriété alg du locataire de la sortie du point de terminaison /.well-known/jwks.json :
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
    }
}'

Ajouter une Action pour exiger un scope et un redirect_uri

Par défaut, Auth0 autorise les requêtes sans paramètre scope et suppose la valeur openid si aucun scope n’est fourni. Auth0 autorise aussi les requêtes sans redirect_uri, que vous pouvez définir dans Actions. Toutefois, les tests de conformité FAPI exigent qu’Auth0 soit plus strict. Ajoutez l’Action suivante pour imposer les restrictions nécessaires sur scope et redirect_uri :
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 est absent
    if (!event.request.query.redirect_uri) {
      api.access.deny('redirect_uri must be provided in the request');
    }
  }
};

(Profils FAPI2 uniquement) Assurez-vous que la revendication iss est renvoyée dans les réponses

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 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 sur true dans les paramètres du locataire.
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
  }'

En savoir plus