Passer au contenu principal
Auth0 distingue trois types de métadonnées utilisées pour stocker des informations déterminées.
Les métadonnées Auth0 ne sont pas un magasin de données sécurisé et ne doivent pas être utilisées pour stocker des renseignements personnels. Cela inclut les secrets, les renseignements personnels à haut risque comme les numéros de sécurité sociale ou les numéros de carte de crédit, etc. Les clients Auth0 sont fortement encouragés à évaluer les données stockées dans les métadonnées et à ne stocker que celles qui sont nécessaires à des fins de gestion des identités et des accès.
Type de métadonnéesNom du champDescription
Informations de l’utilisateuruser_metadataStocke 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èsapp_metadataStocke 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’applicationclient_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"
}
Mais vous pouvez l’étendre comme suit :
{
    "preference": { 
        "color": "pink" 
    }
}

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"
        }
    ]
}
Faites ceci :
{
    "participants": [
        {
            "name": "Alice",
            "role": "sender"
        },
        {
            "name" : "Bob",
            "role": "receiver"
        }
    ]
}

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é ) 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"
        ]
    }
}
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.
Vous ne devez stocker dans les métadonnées que les données associées à l’authentification de l’utilisateur. Les capacités de stockage et de recherche d’Auth0 sont conçues pour des cas d’utilisation qui ne nécessitent pas de recherches et/ou de mises à jour fréquentes.Si vous devez gérer des données détaillées associées au profil des utilisateurs, vous devez le faire dans un système externe. Vous pouvez stocker l’identifiant de l’utilisateur provenant de ce système en tant que champ de métadonnées dans Auth0.

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

I