Skip to main content
Si vous avez votre propre répertoire d’utilisateurs externe, vous pouvez l’utiliser comme dans Auth0 pour authentifier les utilisateurs. Pour ce faire, connectez d’abord Auth0 à votre répertoire d’utilisateurs externe en créant une connexion de base de données personnalisée, puis rédigez des scripts d’action de base de données pour définir la façon dont Auth0 interagit avec votre référentiel d’utilisateurs. Nous fournissons des modèles de scripts d’action de base de données pour plusieurs bases de données courantes :
  • MongoDB
  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • ASP.NET Identity
  • Services Web accessibles avec authentification Basic
Vous pouvez modifier ces modèles ou rédiger les vôtres de A à Z pour vous connecter à tout type de répertoire d’utilisateurs externe.

Instructions

1

Prérequis

  • Votre référentiel d’utilisateurs externe doit être accessible à partir des serveurs d’Auth0. S’il se trouve derrière un pare-feu, autorisez le trafic entrant provenant des adresses IP sortantes d’Auth0.
  • Votre référentiel d’utilisateurs externe doit comporter les champs nécessaires pour stocker les attributs du profil utilisateur normalisé, comme id, nickname, email et password.
  • La valeur id (ou user_id) renvoyée par vos scripts d’action de base de données doit être unique parmi toutes les connexions de base de données personnalisées, car Auth0 utilise cette valeur pour identifier les utilisateurs. Pour éviter les collisions d’ID utilisateur lorsque vous utilisez plusieurs connexions de base de données personnalisées, nous vous recommandons de préfixer les valeurs id par le nom de la connexion (sans les espaces).
2

Créer la connexion à la base de données personnalisée

Dans Auth0 Dashboard > Authentification > Base de données, sélectionnez + Créer une connexion de base de données. Dans la page Nouvelle connexion de base de données, entrez la configuration suivante.
  • Entrez un nom qui doit :
    • Contenir uniquement des caractères alphanumériques et des tirets.
    • Commencer et se terminer par un caractère alphanumérique.
    • Ne pas dépasser 35 caractères.
  • Choisissez un ou plusieurs attributs comme identifiants d’utilisateur.
  • Choisissez une ou plusieurs méthodes d’authentification (comme les mots de passe ou les clés d’accès).
  • Activez la bascule Utiliser ma propre base de données.
Lorsque vous avez terminé, sélectionnez Créer. Auth0 crée la connexion de base de données et vous redirige vers sa page de configuration.
3

Rédiger des scripts d’action de base de données

Une fois votre connexion de base de données personnalisée créée, vous devez écrire des scripts d’action de base de données pour définir comment Auth0 interagit avec votre magasin d’utilisateurs externe pour des fonctionnalités telles que la connexion, l’inscription, la vérification de l’adresse courriel, la réinitialisation de mot de passe et la suppression d’utilisateurs.Au minimum, vous devez implémenter un script Login :
  1. Dans la page de la connexion de base de données, sélectionnez l’onglet Custom Database.
  2. Dans la section Database Action Scripts, sélectionnez Login.
  3. Écrivez votre propre script d’action de base de données à l’aide de la signature de fonction fournie, ou utilisez le menu déroulant Load Template pour sélectionner un modèle de départ.
    Par exemple, le modèle de script d’action Login pour MySQL se présente comme suit :
    Login database action script template for MySQL
    Cet exemple suppose que la base de données contient une table users avec les colonnes appropriées. Le script se connecte à la base de données, utilise une requête pour récupérer le premier utilisateur dont email == user.email, valide le mot de passe saisi avec bcrypt.compare et, en cas de réussite, renvoie un objet contenant les renseignements du profil utilisateur (y compris id, nickname et email).
Tous les scripts d’action de base de données doivent appeler exactement une fois la fonction callback fournie par Auth0, immédiatement avant de se terminer (implicitement ou explicitement au moyen d’une instruction return).
4

Ajouter des paramètres de configuration (facultatif)

Dans la section Paramètres de configuration (sous Scripts d’action de base de données), vous pouvez stocker des valeurs accessibles à tous les scripts d’action de base de données dans l’objet global configuration.Les valeurs sont chiffrées. Vous pouvez donc également utiliser les paramètres de configuration pour stocker des renseignements sensibles, tels que des identifiants ou des clés API permettant d’accéder à des répertoires d’identités externes, ou pour définir des variables contenant des valeurs propres au tenant.Pour reprendre l’exemple MySQL précédent, si vous ajoutez la Clé MYSQL_PASSWORD et définissez comme Valeur le mot de passe MySQL, vous pouvez utiliser ce paramètre de configuration pour vous connecter :
MySQL connection configuration parameter example
Traitez l’objet configuration comme étant en lecture seule et utilisez-le pour éviter d’intégrer des valeurs en dur dans vos scripts d’action.
5

Tester et enregistrer le script d’action de la base de données

  1. Pour tester votre script d’action de base de données, sélectionnez Enregistrer et essayer au-dessus du bloc de code.
  2. Dans la fenêtre Essayer le script de connexion qui s’ouvre, saisissez les identifiants de l’utilisateur à utiliser pour le test.
    Fenêtre Essayer le script de connexion.
  3. Sélectionnez Essayer pour ouvrir le sélecteur d’environnement d’exécution. Choisissez l’environnement d’exécution dans lequel exécuter le script.
    Vous pouvez modifier l’environnement d’exécution NodeJS par défaut dans les paramètres de votre tenant.
Lorsque vous avez terminé, fermez la fenêtre Essayer le script de connexion, puis sélectionnez Enregistrer pour enregistrer le script.

Étapes suivantes

Activer la migration automatique

Vous pouvez continuer à utiliser votre répertoire d’utilisateurs externe comme IdP. Si vous souhaitez plutôt passer au répertoire d’utilisateurs d’Auth0, vous pouvez migrer progressivement vos utilisateurs vers Auth0 (parfois appelée migration trickle ou lazy).

Activer le contexte de l’organisation

Si vous utilisez des connexions de bases de données personnalisées avec Organizations, vous pouvez rendre les informations de l’organisation, comme id, name et metadata, accessibles à vos scripts d’action de base de données en activant l’objet context. Cette opération transmet un argument context supplémentaire aux scripts de bases de données personnalisées, qui contient les données de l’organisation. Par exemple, lorsqu’un utilisateur s’authentifie à partir de l’invite de connexion d’une organisation, le script d’action de base de données Login reçoit cet argument.
Vous ne pouvez pas désactiver l’objet context après l’avoir activé.
Commencez par activer l’objet context :
  1. Accédez à Auth0 Dashboard > Authentification > Base de données et sélectionnez votre connexion de base de données.
  2. Sélectionnez l’onglet Base de données personnalisée.
  3. À côté de Objet context dans les scripts de base de données, sélectionnez Activer.
  4. Dans la fenêtre Êtes-vous absolument certain ? qui s’ouvre, sélectionnez Confirmer.
Ensuite, ajoutez l’objet context à vos scripts d’action de base de données. Ce paramètre précède directement le paramètre callback. Par exemple, dans la signature de fonction du script Login :
Original Login script function signature
Login script function signature with the context object
L’objet context contient les données relatives à l’Organization au format suivant :
Lorsque des événements sont déclenchés dans le contexte d’une organisation, les données correspondantes sont accessibles à tous les scripts d’action de base de données, à l’exception du script Delete, auquel un objet context vide est toujours transmis.

Limites et considérations

  • Auth0 n’assainit ni ne valide aucune combinaison de nom d’utilisateur et de mot de passe transmise par une base de données personnalisée.
  • Les scripts d’action de base de données sont assujettis à la politique de limitation du débit d’Auth0.