Configurer la conformité avec FAPI
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 et 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 et 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 :
{
“error”: “invalid_request”,
“error_description”: “Pushed Authorization Requests are required by the configured compliance level”
}
Was this helpful?
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
Pour effectuer cette étape avec Auth0 Dashboard :
Rendez-vous à Auth0 Dashboard > Applications.
Sélectionnez l’application.
Sélectionnez l’onglet Application Settings (Paramètres d’application).
Ouvrez la section Advanced Settings (Paramètres avancés).
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) et 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 et PAR.
Utilisez Management API pour définir la propriété compliance_level
et y ajouter une demande POST ou PATCH :
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"
}'
Was this helpful?
Pour renvoyer la propriété compliance_level
, utilisez une demande GET :
curl --location 'https://$tenant/api/v2/clients/$client_id \
--header 'Authorization: Bearer $management_access_token'
Was this helpful?