Saltar al contenido principal

Acciones

Las Acciones de Logto te permiten ejecutar JavaScript confiable en puntos específicos del flujo de autenticación. Una acción se ejecuta de forma síncrona: la solicitud de autenticación espera al script, y el resultado del script puede actualizar al usuario o determinar si el flujo continúa.

Las acciones son útiles cuando la decisión debe ocurrir dentro del flujo de autenticación. Los casos de uso comunes incluyen:

  • Migrar usuarios y contraseñas desde un sistema de identidad heredado cuando inician sesión por primera vez.
  • Actualizar el perfil del usuario o datos específicos de la aplicación antes de que Logto complete un inicio de sesión.
  • Llamar a un servicio externo y aplicar su resultado al usuario de Logto.
nota:

Las acciones están disponibles en los planes Enterprise de Logto Cloud.

aviso:

Los scripts de acción pueden afectar la autenticación y modificar los datos del usuario. Solo los administradores de confianza deben poder ver, crear, editar, probar, habilitar o eliminarlos.

En implementaciones autogestionadas, los scripts de acción se ejecutan dentro del proceso del servidor Logto con sus privilegios. Conceder acceso para editar o probar scripts es equivalente a conceder ejecución de código en el host de Logto, por lo que la Consola de Administración no debe compartirse con usuarios no confiables. Trata los scripts como código confiable del lado del servidor; el entorno de ejecución limita el tiempo y la memoria de un script, pero no es un límite de seguridad para código no confiable.

Cómo encajan las Acciones en el inicio de sesión

Logto actualmente proporciona dos tipos de acción:

Tipo de acciónCuándo se ejecutaQué puede hacer
Posterior a la verificación del primer factorDurante un inicio de sesión con contraseña, solo después de que falle la verificación de la contraseña local de Logto. No se ejecuta cuando la contraseña local es válida.Verificar las credenciales enviadas contra un sistema heredado, luego crear un nuevo usuario de Logto o actualizar uno existente y migrar la contraseña enviada.
Posterior al inicio de sesiónDespués de que el usuario haya completado todos los factores de autenticación, incluyendo MFA si es requerido, y antes de que Logto complete el inicio de sesión y emita tokens.Actualizar y enriquecer el usuario existente de Logto usando el contexto final del inicio de sesión.

Ambos tipos de acción se ejecutan solo para interacciones SignIn en la Experience API. La acción posterior a la verificación del primer factor solo aplica para inicio de sesión con contraseña; la acción posterior al inicio de sesión es independiente del método de autenticación.

Modelo de script

Cada tipo de acción tiene una configuración y una función de entrada JavaScript llamada runAction:

const runAction = async ({ event, environmentVariables = {} }) => {
// Inspecciona el evento, opcionalmente obtiene datos externos y retorna
// un resultado compatible con este tipo de acción.
};

La carga útil contiene:

  • event: El evento de autenticación en producción. Su forma depende del tipo de acción.
  • environmentVariables: Los valores de cadena configurados para esta acción. Estos valores se pasan a través de la carga útil de la función; no están disponibles a través de process.env.

El editor proporciona información de tipos, pero el script guardado se ejecuta como JavaScript. El script puede ser asíncrono y puede usar la función fetch inyectada para llamar a APIs HTTPS externas. No puede importar paquetes ni acceder a globales de Node.js como require o process.

El resultado compatible es diferente para cada tipo de acción; consulta la página de referencia correspondiente antes de habilitar una Acción.

Acciones y Webhooks

Las acciones y los Webhooks tienen propósitos diferentes:

AccionesWebhooks
EjecuciónSíncrona y en línea con la autenticaciónAsíncrona y fuera de la solicitud de autenticación
¿Puede afectar el flujo de autenticación actual?No
¿Puede modificar un usuario desde su resultado?Sí, usando el parche de usuario compatibleNo directamente; el receptor puede llamar a la Management API por separado
Cobertura de eventosPuntos de autenticación seleccionadosUn conjunto amplio de eventos de interacción y cambio de datos
Uso típicoMigración de credenciales, enriquecimiento de perfil previo a tokenNotificaciones, sincronización descendente, analítica

Mantén el trabajo asíncrono en los Webhooks. Usa una Acción solo cuando Logto necesite el resultado antes de que la autenticación pueda continuar.

Próximos pasos