endpoint /userinfo. Pour en savoir plus sur les types de claims dans les , consultez Claims d’un JSON Web Token.
Exemple
Auparavant, Auth0 n’autorisait que les claims avec espace de noms dans les et les jetons d’identité. Avec la migration vers les claims personnalisés, les claims sans espace de noms peuvent être utilisés dans les jetons d’accès, les jetons d’identité et le endpoint/userinfo de l’Authentication API d’Auth0.
Flux concernés
Tous les flux Connect (OIDC) pris en charge par Auth0 sont touchés par cette migration. Pour consulter la liste des flux, lisez Flux d’authentification et d’autorisation. Les fonctionnalités suivantes sont aussi touchées : Les fonctionnalités suivantes sont touchées uniquement lorsqu’elles sont utilisées avec Auth0 Rules et le mappage d’attributs :Restrictions
Taille maximale du jeton
Auth0 limite la charge utile des claims personnalisés à un maximum de 100 Ko. Il est important de vous assurer que la charge utile ne dépasse pas cette limite, sinon la transaction d’authentification échouera avec une erreur. Nous vous recommandons de revoir votre utilisation du code d’extensibilité (c.-à-d. Rules, Hooks ou Actions). Vérifiez en particulier les charges utiles volumineuses provenant d’API externes. Pour éviter les erreurs, Auth0 recommande d’utiliser la plus petite charge utile de jeton nécessaire au fonctionnement de votre application. Vous devrez peut-être supprimer les propriétés non essentielles avant de définir la valeur du claim personnalisé.Cette restriction s’applique à la taille totale de la charge utile de tous vos claims personnalisés. Cela comprend les noms des claims personnalisés ainsi que les valeurs associées, qu’elles soient publiques avec espace de noms ou privées sans espace de noms.
Exemples
Claims restreints
Auth0 restreint la personnalisation des claims utilisés par les normes OIDC ou OAuth2, ainsi que des claims réservés à un usage interne. Toute tentative de modifier l’un de ces claims sera ignorée. La transaction n’échouera pas, mais le claim ne sera pas inclus dans les jetons. Auth0 recommande d’utiliser un claim public avec espace de noms.acractactiveamrat_hashathattestaudauth_timeauthorization_detailsazpc_hashclient_idcnfctydestentitlementseventsexpgroupsgtyhtmhtuiatinternalServiceissjcardjkujtijwejwkkidmay_actmkynbfnonceobject_idorg_idorg_nameorigorigidpermissionsrolesrphs_hashsidsip_callidsip_cseq_numsip_datesip_from_tagsip_via_branchsubsub_jwktoetxntypuuidvotvtmx5t#S256
Exemple
Audience restreinte des jetons
Auth0 limitera la création de claims personnalisés privés, sans espace de noms, sur les jetons d’accès dont l’ correspond à une Auth0 API. Toute tentative de définir un claim personnalisé privé, sans espace de noms, sur un jeton d’accès dont l’audience est une Auth0 API sera ignorée. La transaction n’échouera pas, mais le claim ne sera pas ajouté à votre jeton. Auth0 recommande de ne pas définir de claims personnalisés sur les jetons destinés aux API d’Auth0.- Les jetons d’identité ne sont pas visés par cette restriction.
- Les claims personnalisés publics avec espace de noms ne sont pas visés par cette restriction.
https://YOUR_TENANT.auth0.com/apiouhttps://YOUR_TENANT.auth0app.com/apihttps://YOUR_TENANT.auth0.com/api/v2ouhttps://YOUR_TENANT.auth0app.com/api/v2https://YOUR_TENANT.auth0.com/mfaouhttps://YOUR_TENANT.auth0app.com/mfa
/userinfo. Les claims personnalisés privés, sans espace de noms, sont autorisés pour les audiences suivantes :
https://YOUR_TENANT.auth0.com/userinfohttps://YOUR_TENANT.auth0app.com/userinfo
Exemples
Restriction sur les espaces de noms Auth0 et Webtask
Auth0 limitera la création de claims personnalisés avec espace de noms dont l’identifiant d’espace de noms est un domaine Auth0. Les domaines Auth0 sont :- auth0.com
- webtask.io
- webtask.run
Avant cette migration, le fait de définir un claim personnalisé avec espace de noms à l’aide d’un identifiant de domaine Auth0 faisait en sorte que le claim apparaissait dans la réponse
/userinfo. Ce comportement disparaît après la migration, et ces claims personnalisés sont complètement ignorés.Claims du profil utilisateur OIDC
Auth0 permet maintenant d’ajouter des claims du profil utilisateur OIDC aux jetons d’accès. Avant cette migration, les tentatives d’ajout de claims du profil utilisateur OIDC au jeton d’accès étaient ignorées sans avertissement. Avec ce comportement mis à jour, les jetons d’accès contiendront ces claims du profil utilisateur OIDC.Si vous ajoutez des claims du profil utilisateur OIDC aux jetons d’accès, les mêmes restrictions de
scope s’appliquent que pour les jetons d’identité. Par exemple, pour ajouter le claim email aux jetons d’accès, le flow doit être déclenché avec un scope contenant email.addressbirthdateemailemail_verifiedfamily_namegendergiven_namelocalemiddle_namenamenicknamephone_numberphone_number_verifiedpicturepreferred_usernameprofileupdated_atwebsitezoneinfo
Exemple
Mappage d’attributs du module complémentaire SAML2 et du protocole Web Service Federation (WS-Fed) avec Auth0 Rules
Comme avec Auth0 Rules pour modifier l’objetuser, les claims de prémigration app_metadata ou user_metadata fusionnent aussi leur contenu lorsque le claim est défini dans l’objet context.idToken et que les noms sont en conflit. Pour en savoir plus sur les propriétés de l’objet, consultez User Object Properties In Rules.
Toutefois, dans le cas des custom claims, Auth0 donne priorité au claim défini dans l’objet context.idToken.
Ce changement a une incidence sur les Auth0 Rules qui définissent app_metadata et user_metadata au moyen de context.id_token (en leur assignant des objets) et qui, en même temps, utilisent ces champs dans le mappage d’attributs pour le module complémentaire ou le protocole (WS-Fed).
Exemple 1 : Auth0 ignore le mappage d’attributs lorsque context.idToken.app_metadata est défini comme un objet vide.
app_metadata dans context.id_token prévaut.
Ajouter des claims personnalisés privés sans espace de noms aux jetons
Le comportement des claims personnalisés restera inchangé pour les membres du programme bêta des claims personnalisés. Cette fonctionnalité est déjà activée.
Exemple
Revendications privées sans espace de noms dans /userinfo
Auth0 renvoie désormais les revendications personnalisées privées sans espace de noms dans la réponse /userinfo lorsqu’elles sont définies dans les jetons d’identité.Exemple
Actions
Vérifier les journaux du tenant
Commencez par vérifier les journaux du tenant pour repérer les avis de dépréciation et déterminer si votre tenant est touché par la migration.- Accédez à Auth0 Dashboard > Monitoring > Logs.
- Recherchez dans les journaux
type: depnote AND description: *Custom*claims*.
Exemple
Vous trouverez ci-dessous un exemple de journal de dépréciation généré chaque fois que du code d’extensibilité est exécuté.Corriger les règles Auth0 pour le module complémentaire SAML2 et le protocole Web Service Federation (Ws-Fed)
Si vous définissez des claimsapp_metadata ou user_metadata sur l’objet context.idToken à l’aide du module complémentaire SAML2 ou du protocole Web Service Federation (Ws-Fed) avec Auth0 Rules, ainsi qu’un mappage d’attributs, vous devrez mettre à jour votre configuration pour tenir compte de la façon dont Auth0 évalue les noms de claims en conflit entre ces objets. Plusieurs correctifs sont possibles :
-
Assurez-vous que le code de votre règle Auth0 donne toujours priorité au contenu des objets définis sur
context.id_token: -
Si vous utilisez le mappage d’attributs du module complémentaire SAML2 ou du protocole Web Service Federation (Ws-Fed), évitez de définir des claims
app_metadataouuser_metadatasur l’objetcontext.idToken. Remplacez ces claims par des claims avec espace de noms lorsque possible : -
Utilisez une condition sur le protocole actuel ou sur le client actuel pour exclure les instructions qui définissent
app_metadataouuser_metadatalorsque le protocole estsamlpouwsfed.
Désactiver le comportement hérité
Avant de désactiver le comportement hérité, nous vous recommandons de consulter la liste des modifications et de vérifier que vos applications et intégrations sont compatibles.
- Accédez à Auth0 Dashboard > Paramètres du tenant > Avancé et recherchez Migrations.
- Utilisez la bascule pour désactiver Les claims personnalisés doivent utiliser un espace de noms.