Noms des champs de métadonnées et types de données
Auth0 distingue trois types de métadonnées utilisées pour stocker des informations déterminées.
Type de métadonnées | Nom du champ | Description |
---|---|---|
Informations de l’utilisateur | user_metadata |
Stocke les attributs de l’utilisateur tels que les préférences qui n’ont pas d’impact sur la fonctionnalité de base de l’utilisateur. Ces données peuvent être modifiées par les utilisateurs connectés si vous créez un formulaire en utilisant Management API et ne devraient pas être utilisées comme un magasin de données sécurisé. |
Informations d’accès | app_metadata |
Stocke des informations telles que les autorisations, le plan Auth0 et les identifiants externes qui peuvent avoir un impact sur l’accès de l’utilisateur aux fonctionnalités. Ces données ** ne peuvent pas** être modifiées par les utilisateurs et il existe des restrictions sur ce qui peut être stocké dans ce champ. |
Informations sur l’application | client_metadata dans l’objet Client , context.clientMetadata dans les règles, et event.client.metadata dans les actions post-connexion. |
Stocke les informations à propos d’une application (ou client dans la terminologie OIDC OAuth2). Par exemple, l’URL de la page d’accueil de l’application (toute valeur qu’Auth0 ne définit pas dans les paramètres de l’application). |
Noms des champs de métadonnées
Caractères acceptés
Les noms de champs ne doivent pas contenir les caractères .
(point) ou $
(symbole du dollar).
Par exemple, ceci n’est pas autorisé :
{
"preference.color": "pink"
}
Was this helpful?
Mais vous pouvez l’étendre comme suit :
{
"preference": {
"color": "pink"
}
}
Was this helpful?
Noms des champs dynamiques
Les noms des champs doivent être statiques. Les noms de champs dynamiques réduisent l’efficacité de l’indexation et entraînent une dégradation des demandes de recherche. Un schéma statique est plus facile à rechercher, à manipuler et à utiliser.
Au lieu de faire ceci :
{
"participants": [
"Alice": {
"role": "sender"
},
"Bob": {
"role": "receiver"
}
]
}
Was this helpful?
Faites ceci :
{
"participants": [
{
"name": "Alice",
"role": "sender"
},
{
"name" : "Bob",
"role": "receiver"
}
]
}
Was this helpful?
Collision de noms
Évitez d’utiliser le même nom pour les champs app_metadata
et les champs du profil racine. Le champ app_metadata
est fusionné avec le profil racine dans les règles et les actions, qui peuvent remplacer les champs du profil racine.
Par exemple, si un utilisateur a un champ groups
dans son profil racine (renvoyé par un fournisseur d’identité SAML) et un champ groups
dans app_metadata
, son profil peut ressembler à ceci :
{
"user_id": "samlp|example-samlp-connection|username@domain.com",
"groups": [
"external-group-1",
"external-group-2"
],
"app_metadata": {
"groups": [
"internal-group-1",
"internal-group-2"
]
}
}
Was this helpful?
Lorsque vous lisez le champ groups
de l’objet utilisateur à partir d’une Rule, celle-ci renvoie : ["internal-group-1", "internal-group-2"]
.
Types de données de métadonnées
Les champs de métadonnées prennent en charge tous les types de données compatibles avec JSON :
Chaîne
Numéro
Tableau
Objet
Lorsque vous mettez à jour les métadonnées lors de la connexion avec des règles ou des actions, vous êtes soumis aux limites anti-attaques de votre locataire. Pour en savoir plus, consultez Limites anti-attaques des points de terminaison de Management API.
Limites et restrictions
Limites anti-attaques
Lorsque vous mettez à jour les métadonnées lors de la connexion avec des règles ou des actions, vous êtes soumis aux limites anti-attaques de votre locataire. Pour en savoir plus, consultez Limites anti-attaques des points de terminaison de l’API de gestion.
Limites de taille et stockage
Les données utilisateur qui peuvent être indexées, interrogées et renvoyées par le point de terminaison de recherche utilisateur sont limitées à 1 Mo par utilisateur. Si le profil utilisateur dépasse 1 Mo, toute valeur d’attribut supérieure à 256 caractères dans
app_metadata (métadonnées de l’application)
etuser_metadata (métadonnées de l’utilisateur)
ne pourra pas être recherchée ou renvoyée dans un résultat de recherche. Si le profil utilisateur dépasse toujours 1 Mo après l’omission de ces grandes valeurs, aucun des attributsapp_metadata (métadonnées de l’application)
etuser_metadata (métadonnées de l’utilisateur)
ne pourra être recherché ou renvoyé pour cet utilisateur. Auth0 capture et enregistre les cas où un profil utilisateur dépasse encore 1 Mo après des omissions sous le code d’événementwum
. Le point de terminaison get user doit être utilisé pour récupérer tous les attributs de métadonnées pour les profils utilisateurs surdimensionnés.Lorsque vous définissez le champ
user_metadata
à l’aide du point de terminaison d’inscription de l’API d’Auth0 Authentication, vous pouvez inclure un maximum de 10 champs de type chaîne dont les valeurs ne dépassent pas 500 caractères chacune. Pour un exemple de travail avec des métadonnées au cours d’une procédure d’inscription personnalisée, consultez Inscription personnalisée.Le champ
métadonnées du client
peut avoir un maximum de 10 clés. Ses clés et ses valeurs ont une longueur maximale de 255 caractères chacune et ne peuvent pas contenir de caractères spéciaux UTF-8.
Restrictions
Le champ app_metadata (métadonnées de l’application)
ne doit contenir aucune de ces propriétés :
__tenant
_id
blocked
clientID
created_at
email_verified
email
globalClientID
global_client_id
identities
lastIP
lastLogin
loginsCount
metadata
multifactor_lastmodified
multifactor
updated_at
user_id