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_metadataet 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 groupsdans 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) et user_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 attributs app_metadata (métadonnées de l’application) et user_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

En savoir plus