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://
ouhttps://
.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 dee_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?