Créer des demandes personnalisées

Pour lire les demandes personnalisées sur les jetons d’accès et d’ID, vous devez utiliser des jetons Web JSON (JWT) et transmettre une audience (aud) dans un flux de connexion OIDC. Pour en savoir plus, veuillez consulter la section Jetons d’accès.

Lorsque vous configurez des demandes personnalisées sur des JWT, vous avez intérêt à éviter les collisions. Pour éviter que vos demandes personnalisées n’entrent en conflit avec des demandes réservées ou des demandes provenant d’autres ressources, donnez-leur un nom qui résiste aux collisions. Auth0 recommande d’utiliser un format à espaces de noms.

Restrictions générales

Auth0 applique les restrictions suivantes aux demandes personnalisées :

  • La charge utile des demandes personnalisées est fixée à un maximum de 100 Ko

  • Les demandes standard OPENID ou les réclamations utilisées en interne par Auth0 ne peuvent pas être personnalisées ou modifiées

  • Les jetons d’accès avec une audience Auth0 API, à l’exception du point de terminaison /userinfo, ne peuvent pas avoir de demandes personnalisées privées et sans espace de noms;

  • Seules les demandes spécifiées du profil utilisateur OIDC peuvent être ajoutées aux jetons d’accès

Les demandes 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
  • nombre aléatoire
  • 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

Demandes non restreintes

Vous pouvez créer des demandes pour des informations utilisateur sensibles afin d’améliorer le profil utilisateur et d’enrichir son expérience. Ces demandes sont consommées par votre application à partir des jetons d’ID. Pour en savoir plus sur l’utilisation des demandes non restreintes, veuillez consulter Jetons d’ID, et gardez à l’esprit les bonnes pratiques en matière de jetons si vous les utilisez.

Les demandes suivantes ne sont soumises qu’à 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

Instructions pour les espaces de noms

Utilisez les instructions suivantes pour les identifiants d’espace de noms :

  • Utilisez n’importe quelle URL HTTP ou HTTPS non-Auth0 comme identifiant d’espace de noms. Les domaines Auth0 ne peuvent pas être utilisés comme identifiants d’espace de noms, et comprennent :

    • auth0.com

    • webtask.io

    • webtask.run

  • Utilisez une URL que vous contrôlez comme identifiant d’espace de noms, pour éviter que quelqu’un d’autre n’utilise le même espace de noms. L’URL de l’espace de noms ne doit pas nécessairement pointer vers une ressource réelle. Elle ne sert que d’identifiant; elle ne sera pas appelée.

  • Commencer l’URL par http:// ou https://.

  • Sinon, vous pouvez utiliser des identifiants d’espace de noms basés sur URN. Dans ce cas, l’URN Auth0 urn:auth0 est réservé et ne peut pas être utilisé comme identificateur d’espace de noms.

  • Créez plusieurs espaces de noms, au besoin.

Une fois que vous avez choisi votre espace de noms, ajoutez-y la demande pour créer une demande d’espace de noms, qui peut être ajoutée à un jeton. Par exemple :

http://www.example.com/favorite_color

Instructions pour les demandes sans espace de noms

Appliquez les instructions suivantes pour les demandes personnalisées, sans espace de noms :

  • Sauf absolue nécessité pour votre application, utilisez des demandes personnalisées publiques, avec espace de noms, qui sont résistantes aux collisions.

  • Créez des demandes avec des noms significatifs et résistants aux collisions. Par exemple, utilisez employee_id au lieu de e_id.

  • Les noms et les valeurs des demandes doivent être le moins volumineux possible et seules les données strictement nécessaires à votre application doivent être transmises.

  • Évitez d’attribuer des charges lourdes aux demandes personnalisées.

Pour plus d’exemples de demandes personnalisées ajoutées à un jeton, veuillez consultez Exemples de cas d’utilisation : Scopes and Claims (Permissions et demandes).

Créer des demandes personnalisées

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

Exemple

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

Was this helpful?

/

En savoir plus