Pour utiliser les fonctionnalités Highly Regulated Identity, vous devez disposer d’un forfait Enterprise avec l’option Highly Regulated Identity. Consultez Auth0 Pricing pour en savoir plus.
compliance_level qui peut prendre l’une des valeurs suivantes :
nullou non défini : aucun niveau de conformité n’est requis. Il s’agit de la valeur par défaut.fapi1_adv_mtls_par: le client souhaite que cette application se comporte conformément au profil FAPI1 Advanced en utilisant mTLS et PAR.fapi1_adv_pkj_par: le client souhaite que cette application se comporte conformément au profil FAPI1 Advanced en utilisant Private Key JWT et PAR.fapi2_sp_pkj_mtls: le client souhaite que cette application se comporte conformément au profil de sécurité FAPI 2.0 en utilisant Private Key JWT et mTLS Token Sender-Constraining.fapi2_sp_mtls_mtls: le client souhaite que cette application se comporte conformément au profil de sécurité FAPI 2.0 en utilisant mTLS Client Authentication et mTLS Token Sender-Constraining.
compliance_level garantit qu’aucune demande d’autorisation ne peut aboutir à moins que la demande et la configuration soient conformes à la norme sélectionnée.
Par exemple, les niveaux de conformité fapi1_adv_pkj_par et fapi1_adv_mtls_par exigent tous deux PAR. Si l’un ou l’autre 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îne la réponse d’erreur suivante :
fapi1_adv_pkj_par et fapi1_adv_mtls_par amènent Auth0 à inclure une revendication s_hash dans le retourné, contenant un hash SHA256 de la valeur state. Cela permet aux jetons d’identité de servir de signature détachée.
Les tableaux suivants résument les règles de validation supplémentaires et les changements de comportement d’Auth0 qu’active chaque niveau de conformité :
| Validation | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
Empêche l’utilisation de jetons d’accès dans les paramètres de requête de l’URL lors de l’appel à /userinfo. Les jetons d’accès doivent plutôt être placés dans l’en-tête Authorization. | Y | Y | Y | Y |
| Exige PAR. | Y | Y | Y | Y |
| Exige PKCE avec la méthode de défi S256. | Y | Y | Y | Y |
| Empêche l’utilisation de caractères génériques dans les URL de rappel autorisées d’une application. | Y | Y | N | N |
| Impose l’utilisation de JAR. | Y | Y | N | N |
| Garantit que le payload JAR est signé à l’aide de l’algorithme PS256. | Y | Y | N | N |
| Garantit que le payload JAR contient la revendication nbf et que celle-ci ne remonte pas à plus de 60 minutes. | Y | Y | N | N |
| Garantit que le payload JAR contient la revendication exp et qu’elle ne dépasse pas de plus de 60 minutes la revendication nbf. | Y | Y | N | N |
Garantit que l’application a défini la propriété oidc_conformant sur true. | Y | Y | Y | Y |
Exige l’utilisation des en-têtes x-fapi-* | Y | Y | N | N |
| Exige l’utilisation de Private Key JWT pour l’authentification de l’application. | Y | N | Y | N |
| Exige l’utilisation de mTLS pour l’authentification de l’application. | N | Y | N | Y |
| Types de réponse autorisés. | code id_token | code id_token | code | code |
Exige que la revendication aud corresponde strictement à l’émetteur dans l’assertion Private Key JWT. | N | N/A | Y | N/A |
Exige le paramètre redirect_uri dans les requêtes d’autorisation poussées. | N | N | Y | Y |
| Comportement mis à jour d’Auth0 | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
| Ajoute la revendication s_hash aux ID tokens. | Y | Y | N | N |
Lorsque le scope profile est demandé, la revendication update_at contient un horodatage Unix OIDC Conformant plutôt qu’une chaîne de caractères. | Y | Y | Y | Y |
| Retourne uniquement des codes d’erreur conformes à OIDC. Dans certains cas, Auth0 peut retourner des codes d’erreur supplémentaires, mais l’activation de ce niveau de conformité garantit qu’Auth0 utilise uniquement des codes d’erreur définis dans les normes OpenID. | Y | Y | Y | Y |
Retourne l’émetteur comme paramètre iss dans les réponses de code. | N | N | Y | Y |
| Réduit à 60 secondes la durée de vie maximale du code d’autorisation. | N | N | Y | Y |
Configurer la conformité FAPI pour une application
- Auth0 Dashboard
- Management API
Pour effectuer cette opération dans l’Auth0 Dashboard :
- Accédez à Auth0 Dashboard > Applications.
- Sélectionnez l’application.
- Sélectionnez l’onglet paramètres de l’application.
- Ouvrez la section Advanced Settings.
- Dans l’onglet OAuth, sélectionnez FAPI Compliance Enforcement Level.
- None : Aucun niveau de conformité n’est requis. Il s’agit du paramètre par défaut.
- FAPI 1 Advanced profile using Private Key JWT and PAR : Le client souhaite que cette application se comporte conformément au profil avancé FAPI1 en utilisant Private Key JWT et PAR.
- FAPI 1 Advanced profile using mTLS and PAR : Le client souhaite que cette application se comporte conformément au profil avancé FAPI1 en utilisant mTLS et PAR.
- FAPI 2.0 Security Profile with Private Key JWT and certificate binding : Le client souhaite que cette application se comporte conformément au profil de sécurité FAPI 2.0 en utilisant Private Key JWT Client Authentication et mTLS Token Sender-Constraining.
- FAPI 2.0 Security Profile with mTLS and certificate binding : Le client souhaite que cette application se comporte conformément au profil de sécurité FAPI 2.0 en utilisant mTLS Client Authentication et mTLS Token Sender-Constraining.