Passer au contenu principal
Pour lire des revendications personnalisées dans les jetons d’accès et les , vous devez utiliser des (JWT) et préciser une (aud) dans un flux de connexion OIDC. Pour en savoir plus, consultez Jetons d’accès. Lorsque vous configurez des revendications personnalisées dans des JWT, vous devez éviter les collisions. Pour éviter que vos revendications personnalisées n’entrent en conflit avec des revendications réservées ou avec des revendications provenant d’autres ressources, donnez-leur un nom résistant aux collisions. Auth0 recommande d’utiliser un format avec espace de noms.
Auth0 autorise les revendications avec ou sans espace de noms, mais certaines restrictions s’appliquent (consultez Restrictions générales). Pour éviter les collisions de noms, nous recommandons d’utiliser des revendications avec espace de noms. En cas de collision, la transaction n’échouera pas, mais votre revendication personnalisée ne sera pas ajoutée à vos jetons.

Restrictions générales

Auth0 applique les restrictions suivantes aux revendications personnalisées :
  • Le payload des revendications personnalisées est limité à 100 KB maximum
  • Les revendications standard d’OpenID et les revendications utilisées en interne par Auth0 ne peuvent pas être personnalisées ni modifiées
  • avec une audience d’API Auth0, à l’exception du point de terminaison /userinfo, ne peuvent pas contenir de revendications personnalisées privées sans espace de noms
  • Seules les revendications spécifiées du profil utilisateur OIDC peuvent être ajoutées aux jetons d’accès
Les revendications suivantes sont soumises aux restrictions d’Auth0 :
  • acr
  • act
  • active
  • amr
  • at_hash
  • ath
  • attest
  • aud
  • auth_time
  • authorization_details
  • azp
  • c_hash
  • client_id
  • cnf
  • cty
  • dest
  • entitlements
  • events
  • exp
  • groups
  • gty
  • htm
  • htu
  • iat
  • internalService
  • iss
  • jcard
  • jku
  • jti
  • jwe
  • jwk
  • kid
  • may_act
  • mky
  • nbf
  • nonce
  • object_id
  • org_id
  • org_name
  • orig
  • origid
  • permissions
  • roles
  • rph
  • s_hash
  • sid
  • sip_callid
  • sip_cseq_num
  • sip_date
  • sip_from_tag
  • sip_via_branch
  • sub
  • sub_jwk
  • toe
  • txn
  • typ
  • uuid
  • vot
  • vtm
  • x5t#S256

Revendications non restreintes

Vous pouvez créer des revendications pour des renseignements sensibles concernant l’utilisateur afin d’enrichir le profil utilisateur et d’améliorer l’expérience utilisateur. Votre application utilise ces revendications à partir des ID tokens. Pour en savoir plus sur l’utilisation des revendications non restreintes, consultez ID Tokens et tenez compte des bonnes pratiques relatives aux jetons si vous les utilisez. Les revendications suivantes sont uniquement soumises à des restrictions générales :
  • address
  • birthdate
  • email
  • email_verified
  • family_name
  • gender
  • given_name
  • locale
  • middle_name
  • name
  • nickname
  • phone_number
  • phone_number_verified
  • picture
  • preferred_username
  • profile
  • updated_at
  • website
  • zoneinfo

Lignes directrices relatives aux espaces de noms

L’URN Auth0 urn:auth0 ne peut pas être utilisée comme identifiant d’espace de noms.
Utilisez les lignes directrices suivantes pour les identifiants d’espace de noms :
  • Utilisez toute URL HTTP ou HTTPS non liée à Auth0 comme identifiant d’espace de noms. Les domaines Auth0 ne peuvent pas être utilisés comme identifiants d’espace de noms, notamment :
    • auth0.com
    • webtask.io
    • webtask.run
  • Utilisez comme identifiant d’espace de noms une URL que vous contrôlez; cela vous permet d’éviter le risque qu’une autre personne utilise le même espace de noms. L’URL de l’espace de noms n’a pas besoin de pointer vers une ressource réelle. Elle sert uniquement d’identifiant; elle ne sera pas appelée.
  • Faites commencer l’URL par http:// ou https://.
  • Vous pouvez aussi utiliser des identifiants d’espace de noms fondés sur des URN si vous utilisez une API personnalisée. Dans ce cas, l’URN Auth0 urn:auth0 est réservée et ne peut pas être utilisée comme identifiant d’espace de noms.
  • Créez plusieurs espaces de noms, au besoin.
Une fois l’espace de noms choisi, ajoutez-y la revendication pour créer une revendication avec espace de noms, qui peut être ajoutée à un jeton. Par exemple : http://www.example.com/favorite_color

Directives sans espace de noms

Utilisez les directives suivantes pour les revendications personnalisées sans espace de noms :
  • À moins que ce soit absolument nécessaire pour votre application, utilisez des revendications personnalisées publiques dans un espace de noms qui résistent aux collisions.
  • Créez des revendications dont les noms sont explicites et résistants aux collisions. Par exemple, utilisez employee_id plutôt que e_id.
  • Gardez les noms et les valeurs des revendications aussi concis que possible, en ne transmettant que les données strictement nécessaires à votre application.
  • Évitez d’attribuer des payloads trop volumineux aux revendications personnalisées.
Pour obtenir d’autres exemples de revendications personnalisées ajoutées à un jeton, consultez Exemples de cas d’utilisation : scopes et revendications.

Créer des revendications personnalisées

Utilisez Auth0 Actions pour créer des revendications personnalisées. L’objet api vous permet d’appeler la méthode setCustomClaim sur les jetons d’accès ou les ID tokens.

Exemple

exports.onExecuteCredentialsExchange = async (event, api) => {
  api.accessToken.setCustomClaim('myClaim', 'this is a private, non namespaced claim');
};

En savoir plus