Skip to main content
Par défaut, lors de la création d’un nouvel utilisateur, Auth0 génère automatiquement un attribut user_id qui sert d’identifiant unique à cet utilisateur. Les connexions de base de données permettent de définir un identifiant utilisateur personnalisé au moment de la création de l’utilisateur. Vous voudrez peut-être préciser vos propres identifiants utilisateur si vous avez besoin d’un formatage normalisé ou d’une cohérence entre les systèmes. Par exemple :
  • Conserver une structure d’identifiant utilisateur existante lors d’une migration d’un autre fournisseur d’identité vers Auth0, afin que les jetons, les journaux d’audit et les intégrations demeurent cohérents.
  • Assurer la compatibilité avec des systèmes de données ou de facturation qui exigent des formats précis, comme des identifiants utilisateur UUID v4 ou des entiers séquentiels.
  • Faire correspondre les identifiants utilisateur aux clés primaires d’une base de données interne ou d’un CRM afin de simplifier les jointures de données et la production de rapports.
  • Composer des identifiants utilisateur déterministes à partir d’attributs connus, comme les noms de locataires ou les métadonnées d’application.
Vous pouvez définir un user_id personnalisé en appelant api.user.setUserId() dans une Action ajoutée au trigger pre-user-registration, qui se déclenche avant la création d’un nouveau profil utilisateur.

Comment les identifiants d’utilisateur sont déterminés

Dans le profil utilisateur, le tableau identities contient des objets renfermant l’information de chaque fournisseur d’identité auprès duquel l’utilisateur s’authentifie. Définir un identifiant d’utilisateur personnalisé fixe l’attribut user_id dans l’objet du tableau identities correspondant à la connexion de base de données. Il existe différentes façons de définir un identifiant d’utilisateur identities personnalisé selon la manière dont vous créez l’utilisateur. Le tableau suivant résume les méthodes de création offertes ainsi que l’ordre de préséance selon lequel le user_id est défini : En résumé, un identifiant d’utilisateur défini avec api.user.setUserId() dans une Action pre-user-registration a préséance sur les autres façons de définir un identifiant d’utilisateur personnalisé, mais le trigger pre-user-registration ne se déclenche pas dans le cas des tâches d’importation groupée. De plus, Auth0 définit le user_id de niveau racine du profil utilisateur en fonction de l’identité principale du profil, soit la première identité du tableau identities. Le user_id de niveau racine correspond à l’identifiant d’utilisateur de l’identité principale préfixé par la stratégie de connexion (par exemple, auth0|your_custom_id). Il sert notamment de valeur à la demande sub; assurez-vous donc que les systèmes en aval s’attendent à recevoir la valeur préfixée.

Définir des identifiants d’utilisateur personnalisés avec une Action pre-user-registration

Pour définir un user_id personnalisé avec une Action pre-user-registration, vous devez créer l’Action, écrire le code qui attribue à l’identifiant d’utilisateur la valeur souhaitée, puis ajouter l’Action au trigger pre-user-registration.
1

Créer l'Action

Allez à Dashboard > Actions > Library. Sélectionnez Create Action, puis choisissez Create Custom Action dans le menu déroulant.Dans la fenêtre Create Action qui s’ouvre, remplissez les champs suivants :
  • Name : choisissez un nom pour votre action, par exemple « Set Custom User ID ».
  • Trigger : sélectionnez Pre User Registration.
  • Runtime : choisissez votre environnement d’exécution Node.
Sélectionnez ensuite Create pour accéder à l’éditeur de code Actions de la nouvelle Action.
2

Écrire le code de l'Action

Dans l’éditeur de code Actions, écrivez le code de votre Action en utilisant api.user.setUserId() pour définir l’identifiant d’utilisateur selon votre cas d’utilisation.Les identifiants d’utilisateur personnalisés doivent respecter les exigences suivantes :Si la création d’un utilisateur échoue en raison de problèmes liés à l’identifiant d’utilisateur, consultez vos journaux de locataire à la recherche du type de journal fs (échec d’inscription).
Vous pouvez générer un UUID v4 à l’aide du module crypto intégré de Node :
Example: Generate a UUID v4
Si vous avez besoin d’une version précise d’UUID (v1, v5, v7, etc.), ajoutez le paquet npm uuid comme dépendance et utilisez-le dans votre Action :
Example: Generate a specific UUID version
Vous pouvez composer un identifiant d’utilisateur déterministe à partir des données d’inscription, comme une valeur app_metadata :
Example: Compose an ID from sign-up data
Lorsque vous avez fini d’écrire et de tester l’Action, sélectionnez Deploy.
3

Ajouter l'Action au trigger

Après avoir déployé l’Action, allez à Dashboard > Actions > Triggers > Pre User Registration.Dans la section Add Action à droite, sous Custom, glissez la nouvelle Action que vous avez créée dans le flux, entre Start et Complete. Sélectionnez ensuite Apply.

Limites

  • La définition d’un identifiant d’utilisateur personnalisé avec le trigger pre-user-registration n’est pas prise en charge pour les connexions sans mot de passe.
  • Le trigger pre-user-registration ne se déclenche pas lors des tâches d’importation groupée.
  • Vous ne pouvez pas définir un user_id personnalisé pour les utilisateurs qui se connectent au moyen d’une connexion sociale ou d’entreprise, car ces ID sont fournis par le fournisseur d’identité externe.
  • Vous ne pouvez pas modifier le user_id d’un utilisateur existant.