Passer au contenu principal
La date de fin de vie (EOL) de Rules et Hooks est fixée au 18 novembre 2026, et ils ne sont plus offerts aux nouveaux locataires créés à partir du 16 octobre 2023. Les locataires existants ayant des Hooks actifs conserveront l’accès au produit Hooks jusqu’à sa fin de vie.Nous vous recommandons fortement d’utiliser Actions pour étendre Auth0. Avec Actions, vous avez accès à des informations de typage détaillées, à de la documentation intégrée et à des packages npm publics, et vous pouvez connecter des intégrations externes qui améliorent votre expérience globale d’extensibilité. Pour en savoir plus sur le fonctionnement d’Actions, consultez Comprendre le fonctionnement d’Auth0 Actions.Pour vous aider dans votre migration, nous proposons des guides pour migrer de Rules vers Actions et migrer de Hooks vers Actions. Nous avons également une page dédiée, Passer à Actions, qui présente des comparaisons de fonctionnalités, une démonstration d’Actions et d’autres ressources pour vous accompagner dans votre démarche de migration.Pour en savoir plus sur la dépréciation de Rules et Hooks, consultez notre billet de blogue : Preparing for Rules and Hooks End of Life.
Comme nous prévoyons supprimer les fonctions Rules et Hooks en 2026, vous ne devriez créer de nouvelles Rules ou de nouveaux Hooks que dans votre environnement de développement, et uniquement pour tester la migration vers Actions.Pour savoir comment migrer vos Rules vers Actions, consultez Migrer de Rules vers Actions. Pour savoir comment migrer vos Hooks vers Actions, consultez Migrer de Hooks vers Actions.
Vous pouvez créer vos propres Rules pour répondre à vos besoins fonctionnels précis. Vous pouvez modifier un modèle de Rule existant ou choisir de partir de zéro à l’aide de l’un de nos exemples. Auth0 fournit plusieurs Rules et modèles de Rule prédéfinis pour vous aider à atteindre vos objectifs. Pour en voir la liste, consultez notredépôt de Rules sur GitHub.

Fonctionnement des Rules

Les Rules sont des fonctions JavaScript qui s’exécutent lorsqu’un utilisateur s’authentifie auprès de votre application. Elles s’exécutent une fois le processus d’authentification terminé, et vous pouvez les utiliser pour personnaliser et étendre les fonctionnalités d’Auth0. Pour des raisons de sécurité, le code de vos Rules s’exécute de façon isolée de celui des autres locataires Auth0, dans un bac à sable. Les Rules s’exécutent également pendant le flux d’actualisation du jeton. Pour en savoir plus, consultez Jetons d’actualisation. Dans Auth0, le déroulement de la transaction d’authentification se présente comme suit lorsque vous utilisez des Rules :
Diagramme des Rules dans le flux d’authentification
  1. Une application initie une demande d’authentification auprès d’Auth0.
  2. Auth0 achemine la demande vers un fournisseur d’identité au moyen d’une connexion configurée.
  3. L’utilisateur s’authentifie avec succès.
  4. L’ID Token et/ou le jeton d’accès passent par le pipeline des Rules, puis sont envoyés à l’application.

Prérequis

Si vous prévoyez utiliser des variables globales dans votre Rule, assurez-vous d’abord de configurer vos variables globales pour Rules. Pour en savoir plus, consultez Configurer les variables globales pour Rules.

Utiliser le Dashboard

  1. Accédez à Dashboard > Auth Pipeline > Rules et cliquez sur Create.
    Dashboard - Auth Pipeline - Rules
  2. Sélectionnez un modèle de Rule.
    Dashboard - Auth Pipeline - Rules - Template
  3. Donnez un nom à la Rule, modifiez le script selon vos besoins, puis cliquez sur Save changes.
    Dashboard - Auth Pipeline - Rules - Edit Rule

Utiliser Management API

Effectuez une requête POST vers le point de terminaison Create Rule. Assurez-vous de remplacer les valeurs d’espace réservé MGMT_API_ACCESS_TOKEN, RULE_NAME, RULE_SCRIPT, RULE_ORDER et RULE_ENABLED par votre , le nom de la Rule, le script de la Rule, le numéro d’ordre de la Rule et la valeur d’activation de la Rule, respectivement.
ValeurDescription
MGMT_API_ACCESS_TOKENJeton d’accès pour la Management API avec le scope create:rules.
RULE_NAMENom de la Rule que vous souhaitez créer. Le nom de la Rule ne peut contenir que des caractères alphanumériques, des espaces et des traits d’union; il ne peut ni commencer ni se terminer par des espaces ou des traits d’union.
RULE_SCRIPTScript contenant le code de la Rule. Il doit correspondre à ce que vous saisiriez si vous créiez une nouvelle Rule dans le Dashboard.
RULE_ORDER (optional)Nombre entier représentant l’ordre dans lequel la Rule doit être exécutée par rapport aux autres Rules. Les Rules avec des nombres inférieurs sont exécutées avant celles avec des nombres supérieurs. Si aucun numéro d’ordre n’est fourni, la Rule sera exécutée en dernier.
RULE_ENABLED (optional)Valeur booléenne indiquant si la Rule est activée (true) ou désactivée (false).
Nous exposons des adresses IPv6 sur nos points de terminaison publics (p. ex., travel0.us.auth0.com). Si une requête provient d’une machine qui prend en charge IPv6, la propriété context.request.ip contiendra une adresse IPv6. Si vous manipulez manuellement des adresses IP, nous vous recommandons d’utiliser la bibliothèque ipaddr.js@1.9.0.

Gérer les limites de débit

Pour les Rules qui appellent les API d’Auth0, vous devez toujours gérer la limitation du débit en vérifiant l’en-tête X-RateLimit-Remaining et en réagissant de façon appropriée lorsque la valeur renvoyée approche de 0. Vous devez aussi ajouter une logique pour gérer les cas où vous dépassez les limites de débit établies et recevez le code d’état HTTP 429 (Trop de requêtes) ; dans ce cas, si un réessai est nécessaire, il est préférable de prévoir une temporisation progressive afin d’éviter d’entrer dans une boucle infinie de tentatives. Pour en savoir plus sur les limites de débit, consultez la politique de limitation du débit pour les API d’Auth0.

Modules disponibles

Les Rules s’exécutent dans un bac à sable JavaScript configuré pour une version donnée de Node.js. Le bac à sable prend en charge toutes les versions du langage JavaScript (et la syntaxe correspondante) prises en charge par la version de Node.js configurée, ainsi qu’un grand nombre de modules Node.js. Pour obtenir la liste des modules du bac à sable pris en charge, consultez Can I require: Auth0 Extensibility.

Pour en savoir plus