post-login) del flujo de inicio de sesión. Si sigue los pasos que se indican a continuación y mantiene sus Actions en el mismo orden que sus Rules originales, la funcionalidad debería ser idéntica.
Planifique su migración
Consejos para planificar su migración
- Mantenga una relación 1:1 entre sus Actions y Rules, para que la funcionalidad pueda activarse y desactivarse por bloques y ponerse a prueba.
- Use indicadores en los metadatos del usuario para evitar duplicar operaciones costosas o de una sola ejecución.
- Empiece por el final del pipeline de sus Rules y avance hacia atrás; como las Rules activas se ejecutan antes que las Actions desplegadas, puede mantener parte de la lógica en Rules mientras crea y prueba otra lógica en Actions.
- Asegúrese de aplicar los cambios en un momento en que el impacto y el tráfico sean mínimos.
- Considere personalizar temporalmente su página de inicio de sesión para detener los inicios de sesión si el cambio pudiera causar inicios de sesión no válidos o brechas en la protección.
- Considere usar Auth0 Deploy CLI para crear scripts, probar e implementar rápidamente la migración de una sola vez o de forma iterativa.
Entienda las limitaciones
- Actions no proporciona un token de acceso para la Management API ni acceso al objeto global
auth0, como sí ocurre con Rules. Para saber cómo se pueden seguir realizando llamadas a la Management API, consulte la sección Convertir código.
Convertir código
Consejos para convertir código
- En general, busque las propiedades de solo lectura de los objetos
userycontextde Rules en el objetoeventde Actions. Busque en las funciones del objetoapicualquier efecto secundario que sus Actions tengan en el sistema (como hacer fallar un inicio de sesión o actualizar los metadatos del usuario). - Use el editor de código de Actions en el Auth0 Dashboard para escribir su código; le ayudará resaltando errores y ofreciendo sugerencias de autocompletado.
- Antes de pasar a producción, pruebe exhaustivamente sus nuevas Actions en un entorno de ensayo o de prueba.
Copiar el código de la Rule en una nueva Action
Recomendamos copiar el código de su Rule en una nueva Action y usar el editor de código de Actions en el Auth0 Dashboard; esto le ayudará a identificar los problemas pendientes en su código.
- Inicie sesión en su inquilino de producción y copie el código de la Rule que desea convertir.
- Cambie a un inquilino de no producción y vaya a Auth0 Dashboard > Actions > Library.
-
Seleccione Build Custom y, a continuación:
- Introduzca un Name para su Action que coincida con el nombre de la Rule que está convirtiendo.
- Busque Trigger y seleccione Login / Post Login.
- Busque Runtime y seleccione Node 16.
- Seleccione Create.
-
En el bloque de código del editor de código de Actions, pegue debajo de la función exportada
onExecutePostLoginel código de la Rule que desea convertir. - Realice los cambios detallados en el resto de este artículo a medida que incorpora el código en la función.
Cambie la declaración de la función
user, context y callback, mientras que las Actions usan una función exportada con un nombre específico. Realice el siguiente cambio; por ahora, ignore los errores que aparezcan.
Antes
Cambie la forma de acceder a los datos de usuario
user object. En Actions, estos datos se encuentran en la propiedad user del event object. La mayoría de las propiedades existentes están disponibles en esta nueva ubicación.
Los datos almacenados o modificados en propiedades del objeto
event no están disponibles en otras Actions.Cambie cómo se accede a los datos de contexto
objeto context. En Actions, estos datos se han reestructurado y trasladado al objeto event. Muchas de las propiedades se trasladaron tal cual, pero algunas se combinaron para mejorar la claridad.
Los datos almacenados o modificados en propiedades del objeto
event no están accesibles desde otras Actions. Si su Rule desencadena una funcionalidad principal al establecer datos en estas propiedades, como context.idToken o context.multifactor, lea una de las secciones siguientes que aborda su caso de uso.Convertir dependencias
require. Las Actions usan una sintaxis CommonJS más estándar y requieren que las versiones se indiquen fuera del editor de código.
En Rules, solo se permiten versiones concretas de paquetes concretos, y para agregar paquetes o versiones nuevos es necesario enviar una solicitud a Auth0. En Actions, puede usar require con cualquier paquete disponible en el registro de npm.
Si sus módulos de
npm no están en la versión más reciente, este es un buen momento para actualizarlos.- Busque las instrucciones
requiredentro del código de su Rule. - Elimine los números de versión, pero anótelos.
- Agregue la dependencia siguiendo los pasos de la sección “Add a Dependency” de Write Your First Action (si la dependencia no es un módulo integrado de NodeJS; si la dependencia es un módulo integrado de NodeJS, no necesita incluirla).
- Mueva las instrucciones
requireencontradas fuera de la declaraciónfunction:
Convertir las devoluciones de llamada
callback() y pasar un error si el inicio de sesión falla. En cambio, Actions puede simplemente devolver en caso de éxito o llamar a un método de api con un mensaje si el inicio de sesión falla. Todas las instancias de callback() en un Rule deben eliminarse o sustituirse por api.access.deny() en caso de error. Tanto en Rules como en Actions, si el procesamiento debe detenerse por una condición específica, use una instrucción return.
Antes
Cambiar la gestión de los secretos
- Guarde los valores necesarios para la Action específica en la que está trabajando.
- Agregue un Secret para cada valor al que necesite acceder desde la Action. Para saber cómo hacerlo, lea la sección Add a Secret de Write Your First Action.
- Convierta su código:
Convertir claims personalizadas en los tokens
context, mientras que en Actions se usa un método del objeto api.
Antes
Convertir la activación de MFA
multifactor del objeto context. En Actions, esto se hace con un método del objeto api.
Antes
Convertir las actualizaciones de metadatos de usuario
user_metadata y app_metadata en Rules, es necesario hacer una llamada a la Management API, lo que puede provocar errores de límite de tasa. Sin embargo, Actions permite indicar varios cambios en los metadatos de usuario y hacer una sola llamada a la Management API.
Antes
api.user.setUserMetadata o api.user.setAppMetadata. En Actions, varias llamadas a estas funciones desde una o varias Actions darán lugar a una sola llamada a la Management API una vez que se complete el flujo.
Convertir otras llamadas a la Management API
- Registre una aplicación de máquina a máquina y autorícela para la Management API.
- Guarde el ID de cliente y el Secreto del cliente en la Action.
- Obtenga un token de acceso para la Management API.
- Llame a la Management API:
Convertir redirecciones
Explicar cómo realizar correctamente todas las redirecciones en Actions queda fuera del alcance de esta guía. Para obtener información más detallada, consulte Redirect with Actions.
Convertir las referencias actuales de clientes SSO
context.sso de Rules proporciona información sobre la sesión actual y los clientes que la usan. Para obtener más información, consulta la entrada de context.sso en Propiedades del objeto Context en Rules. En Actions, encontrarás información similar en el objeto event.session.
Antes