La disponibilité varie selon le forfait Auth0
Votre forfait Auth0 ou votre entente personnalisée déterminent si cette fonctionnalité est offerte. Pour en savoir plus, consultez Tarification.
- Authentification : utilisez votre base de données comme dans Auth0 pour authentifier les utilisateurs. (On parle alors d’authentification existante.)
- Importer des utilisateurs : utilisez la migration automatique (migration progressive ou à la volée)
- Accès proxy à un locataire Auth0 : utilisez l’architecture multilocataire d’Auth0.
-
Utilisez le point de terminaison Create connections avec la stratégie
auth0. -
Accédez à Auth0 Dashboard > Authentication > Database, créez la connexion, puis activez l’option Use my own database pour permettre la modification du script d’action de base de données.

Fonctionnement

Bonne pratique
Les scripts d’action peuvent être implémentés sous forme de fonctions anonymes. Toutefois, les fonctions anonymes compliquent le débogage lorsqu’il faut interpréter la pile d’appels générée à la suite d’une erreur. Nous vous recommandons donc de donner un nom de fonction à chaque script d’action.
Scénario d’authentification hérité
Les connexions de base de données personnalisées sont également utilisées en dehors du flux Universal Login. Par exemple, le script d’action
changePassword d’une connexion est appelé lorsqu’un utilisateur se trouvant dans un référentiel d’identités hérité effectue une opération de changement de mot de passe.Scénario de migration automatique
Bonne pratique
La création d’un utilisateur dans un scénario de migration automatique a généralement lieu une fois le script d’action
login terminé. Nous vous recommandons donc de ne pas tenter de supprimer un utilisateur de l’ancien magasin d’identités au moyen d’une opération en ligne (c.-à-d. dans le script login), mais plutôt d’effectuer cette suppression dans le cadre d’un processus distinct. Vous éviterez ainsi la suppression accidentelle d’un utilisateur si une erreur survient pendant le processus de migration.login et/ou getUser, et l’utilisateur serait alors migré de nouveau depuis l’ancien magasin d’identités.
Bonne pratique
Nous recommandons de marquer toute identité utilisateur existante comme ayant été migrée avant la fin de
login ou de getUser, et avant toute suppression éventuelle de l’ancien magasin d’identités.Taille
La limite de 100 kB n’inclut pas les modules
npm référencés dans des instructions require.Environnement
modules npm
npm réduisent non seulement la taille globale du code d’implémentation des scripts Action, mais donnent aussi accès à un large éventail de fonctionnalités prédéfinies.
De nombreux modules npm accessibles au public sont pris en charge d’emblée. La liste a été établie et vérifiée afin de relever tout problème de sécurité potentiel. Si vous avez besoin d’un module npm qui n’est pas pris en charge d’emblée, vous pouvez en faire la demande par l’entremise du portail d’assistance Auth0 ou de votre représentant Auth0. Auth0 évaluera votre demande afin d’en déterminer la pertinence. À l’heure actuelle, Auth0 ne prend pas en charge l’utilisation de modules npm provenant de dépôts privés.
Variables
configuration, disponible globalement. Pour en savoir plus, consultez la section Add Configuration Parameters dans Create Custom Database Connections.
Bonne pratique
L’objet
configuration doit être traité comme étant en lecture seule et servir à stocker des renseignements sensibles, comme des identifiants ou des clés d’API permettant d’accéder à des répertoires d’identités externes. Cela évite d’inscrire en dur, dans un script Action, des valeurs sensibles sur le plan de la sécurité.objet global
global accessible à tous les scripts d’action qui s’exécutent dans cette instance. L’objet global agit comme une variable globale propre au conteneur et peut servir à définir des informations ou des fonctions utilisées par tous les scripts d’action qui s’exécutent dans l’instance de conteneur.
Cela signifie que l’objet global peut être utilisé pour mettre en cache des ressources coûteuses, tant que celles-ci ne sont pas propres à un utilisateur. Par exemple, vous pourriez l’utiliser pour stocker un pour une API tierce (de journalisation) qui offre des fonctionnalités non propres à l’utilisateur. Vous pourriez aussi y stocker un jeton d’accès pour votre propre API non propre à l’utilisateur, définie dans Auth0 et obtenu au moyen du Client Credentials Flow.
Chaque fois qu’un conteneur Webtask est recyclé, ou à chaque création d’un nouveau conteneur Webtask, l’objet global qu’il définit est réinitialisé. Par conséquent, toute déclaration d’affectation dans l’objet global associé à un conteneur doit également prévoir une initialisation.
Bonne pratique
Pour offrir une plus grande flexibilité en matière de performance, les conteneurs Webtask sans serveur sont provisionnés dans Auth0 de façon ponctuelle et sont également soumis à diverses politiques de recyclage. En règle générale, nous vous recommandons de ne pas considérer la durée de vie d’un objet
global comme dépassant 20 minutes.Sécurité
Accéder au magasin d’identités hérité au moyen d’une API personnalisée
Bonne pratique
Nous vous recommandons de mettre en place une API afin d’appliquer le principe du moindre privilège à votre magasin d’identités hérité (base de données), plutôt que d’ouvrir simplement un accès général par Internet.
global pour être réutilisé afin d’améliorer les performances. L’API peut alors fournir un nombre restreint de points de terminaison protégés qui n’exécutent que les fonctions de gestion héritées requises (par exemple, read user, change password).
Bonne pratique
Par défaut, Auth0 vous remettra un jeton pour n’importe quelle API si vous vous authentifiez avec succès et incluez l’audience appropriée. Restreindre l’accès à l’API du magasin d’identités hérité en limitant l’attribution des jetons d’accès au moyen d’une Rule empêchera toute utilisation non autorisée et atténuera plusieurs scénarios d’attaque, notamment lorsqu’une redirection vers
/authorize est interceptée et que l’audience de l’API est ajoutée.