post-login) du flux de connexion. Si vous suivez les étapes ci-dessous et gardez vos Actions dans le même ordre que vos Rules d’origine, la fonctionnalité devrait être identique.
Planifiez votre migration
Conseils pour planifier votre migration
- Conservez une correspondance 1:1 entre vos Actions et vos Rules, afin de pouvoir activer et désactiver les fonctionnalités par blocs et les tester.
- Utilisez des indicateurs dans les métadonnées utilisateur pour éviter de dupliquer des opérations coûteuses ou ponctuelles.
- Commencez à la fin de votre pipeline de Rules et remontez vers le début; comme les Rules actives s’exécutent avant les Actions déployées, vous pouvez conserver une partie de la logique dans les Rules pendant que vous créez et testez d’autres logiques dans les Actions.
- Assurez-vous d’apporter les changements à un moment où l’impact et le trafic seront au plus bas.
- Envisagez de personnaliser temporairement votre page de connexion afin d’interrompre les connexions si le basculement risque de provoquer des connexions invalides ou des failles de protection.
- Envisagez d’utiliser le Auth0 Deploy CLI pour automatiser par script, tester et mettre en œuvre rapidement la migration, soit d’un seul coup, soit de façon itérative.
Comprendre les limites
- Les Actions n’ont pas accès à un jeton d’accès pour la Management API ni à l’objet global
auth0, contrairement aux Rules. Pour savoir comment il est tout de même possible d’effectuer des appels à la Management API, consultez la section Convertir le code.
Convertir le code
Conseils pour convertir le code
- En général, recherchez les propriétés en lecture seule des objets
useretcontextdes Rules dans l’eventobject des Actions. Repérez dans les fonctions de l’objetapitous les effets de vos Actions sur le système (par exemple, faire échouer un login ou mettre à jour les métadonnées utilisateur). - Utilisez le Actions Code Editor dans le Auth0 Dashboard pour écrire votre code; il vous aidera en mettant les erreurs en évidence et en proposant des suggestions d’autocomplétion.
- Avant la mise en production, testez soigneusement vos nouvelles Actions dans un environnement de staging ou de test.
Copier le code d’une Rule dans une nouvelle Action
Nous vous recommandons de copier le code de votre Rule dans une nouvelle Action et d’utiliser l’Actions Code Editor dans l’Auth0 Dashboard; cela vous aidera à repérer les problèmes qui subsistent dans votre code.
- Connectez-vous à votre tenant de production, puis copiez le code de la Rule que vous voulez convertir.
- Passez à un tenant hors production, puis accédez à Auth0 Dashboard > Actions > Library.
-
Sélectionnez Build Custom, puis :
- Entrez un Name pour votre Action qui correspond au nom de la Rule que vous convertissez.
- Repérez Trigger, puis sélectionnez Login / Post Login.
- Repérez Runtime, puis sélectionnez Node 16.
- Sélectionnez Create.
-
Dans le bloc de code de l’Actions Code Editor, collez le code de la Rule que vous voulez convertir sous la fonction exportée
onExecutePostLogin. - Effectuez les changements décrits dans le reste de cet article à mesure que vous intégrez le code à la fonction.
Modifier la déclaration de la fonction
user, context et callback, tandis que les Actions utilisent une fonction exportée sous un nom précis. Apportez la modification suivante; pour l’instant, ignorez toute erreur qui s’affiche.
Avant
Modifier la façon d’accéder aux données utilisateur
user. Dans Actions, ces données se trouvent dans la propriété user de l’objet event. La plupart des propriétés existantes sont accessibles à cet endroit.
Les données stockées ou modifiées dans les propriétés de l’objet
event ne sont pas accessibles dans d’autres Actions.Modifier la façon d’accéder aux données de contexte
objet context. Avec Actions, ces données ont été restructurées et déplacées vers l’objet event. Un grand nombre de propriétés ont été déplacées telles quelles, mais certaines ont été regroupées pour plus de clarté.
Les données stockées ou modifiées dans les propriétés de l’
objet event ne sont pas accessibles dans d’autres Actions. Si votre Rule déclenche une fonctionnalité centrale en définissant des données sur ces propriétés, comme context.idToken ou context.multifactor, veuillez lire l’une des sections ci-dessous correspondant à votre cas d’utilisation.Convertir les dépendances
require. Les Actions utilisent une syntaxe CommonJS plus standard et exigent que les versions soient indiquées à l’extérieur de l’éditeur de code.
Dans les Rules, seules certaines versions de certains packages sont autorisées, et l’ajout de nouveaux packages et de nouvelles versions nécessite une requête à Auth0. Dans les Actions, vous pouvez utiliser require avec n’importe quel package accessible dans le registre npm.
Si vos modules
npm ne sont pas sur la version la plus récente, c’est le moment idéal pour les mettre à jour!- Repérez les instructions
requiredans le code de votre Rule. - Supprimez les numéros de version, mais notez-les.
- Ajoutez la dépendance en suivant les étapes de la section “Add a Dependency” de Write Your First Action (si la dépendance n’est pas un module NodeJS de base; si la dépendance est un module NodeJS de base, vous n’avez pas besoin de l’inclure).
- Déplacez les instructions
requirerepérées à l’extérieur de la déclarationfunction:
Convertir les callbacks
callback() et transmettre une erreur si la connexion échoue. À l’inverse, les Actions peuvent utiliser return en cas de réussite, ou appeler une méthode api en fournissant un message si la connexion échoue. Toutes les occurrences de callback() dans une Rule doivent être supprimées ou remplacées par api.access.deny() en cas d’échec. Dans les Rules comme dans les Actions, si le traitement doit s’arrêter en raison d’une condition particulière, utilisez une instruction return.
Avant
Modifier la gestion des secrets
- Enregistrez les valeurs nécessaires pour l’Action sur laquelle vous travaillez.
- Ajoutez un Secret pour chaque valeur à laquelle vous devez accéder dans l’Action. Pour savoir comment faire, consultez la section Add a Secret dans Write Your First Action.
- Convertissez votre code :
Convertir les claims personnalisés dans les jetons
context, tandis que dans les Actions, on utilise une méthode de l’objet api.
Avant
Convertir le déclenchement de l’authentification multifacteur
multifactor de l’objet context. Dans Actions, cela se fait à l’aide d’une méthode de l’objet api.
Avant
Convertir les mises à jour des métadonnées de l’utilisateur
user_metadata et app_metadata nécessite une requête à la Management API, ce qui peut entraîner des erreurs de limite de débit. Actions offre toutefois un moyen d’indiquer plusieurs modifications aux métadonnées de l’utilisateur tout en n’effectuant qu’une seule requête à la Management API.
Avant
api.user.setUserMetadata ou api.user.setAppMetadata. Dans Actions, plusieurs appels à ces fonctions, dans une ou plusieurs Actions, se traduiront par un seul appel à la Management API une fois le flux terminé.
Convertir d’autres appels à la Management API
- Enregistrez une application Machine-to-Machine et autorisez-la pour la Management API.
- Enregistrez le Client ID et le Client Secret dans l’Action.
- Obtenez un jeton d’accès pour la Management API.
- Appelez la Management API :
Convertir les redirections
La mise en œuvre correcte de toutes les redirections dans Actions dépasse la portée de ce guide. Pour en savoir plus, consultez Redirection avec Actions.
Convertir les références aux clients SSO actuels
context.sso des Rules fournit des renseignements sur la session en cours et sur les clients qui l’utilisent. Pour en savoir plus, consultez l’entrée context.sso dans Propriétés de l’objet context dans les Rules. Des renseignements semblables sont disponibles dans l’objet event.session des Actions.
Avant