Español
  • Just-in-Time

Entender la provisión Just-in-Time

La provisión Just-in-Time es un proceso utilizado en sistemas de gestión de identidad y acceso para crear cuentas de usuario sobre la marcha cuando inician sesión en un sistema por primera vez. Este artículo explica los conceptos básicos de la provisión Just-in-Time y responde preguntas comunes sobre su implementación.

Guamian
Guamian
Product & Design

Antes de discutir la provisión Just-in-Time, imagina que estás construyendo una aplicación SaaS para B2B y quieres soportar funciones de membresía, permitiendo a los miembros unirse fácilmente a tu espacio de trabajo (inquilino). ¿Qué características propondrías? Aquí tienes una lista de verificación:

EscenarioFlujo
Invitación de adminLos usuarios pueden recibir una invitación por correo electrónico para unirse a la organización.
Creación o importación de usuarios por API de gestiónLos usuarios pueden usar una cuenta de usuario pre-creada para unirse a la organización.
Provisión Just-in-TimeLos usuarios que inician sesión en la aplicación por primera vez pueden unirse a la organización.
Sincronización de Directorio (por ej., SCIM)Utiliza la funcionalidad de sincronización de directorios del IdP para pre-provisionar usuarios en la aplicación por adelantado.

La provisión Just-in-Time (JIT) es un proceso utilizado en sistemas de gestión de identidad y acceso para crear cuentas de usuario sobre la marcha cuando inician sesión en un sistema por primera vez. En lugar de pre-provisionar cuentas para los usuarios por adelantado, la provisión JIT crea y configura dinámicamente las cuentas de usuario necesarias cuando un usuario se autentica. La provisión just-in-time es una característica popular con sus propias características, como eficiencia, sin intervención administrativa y membresía automatizada en la organización, etc. Ahora que entiendes los conceptos básicos de la provisión Just-in-Time, podrías tener varias preguntas a medida que profundizas en el desarrollo de productos en el mundo real. Abordaré estas preguntas, que pueden ser controvertidas y altamente dependientes de tus casos de negocio específicos.

¿Necesitas implementar la provisión Just-in-Time para tu producto?

Estos casos son comunes al construir una aplicación B2B que involucra arquitectura multi-inquilino, SSO empresarial, trabajar con empresas o requerir funciones de incorporación de equipos. Aquí hay algunos escenarios de muestra que tu cliente podría encontrar.

Incorporación rápida

Tienes un cliente que experimenta contrataciones frecuentes o un crecimiento rápido, y puede usar la provisión JIT para configurar rápidamente cuentas de usuario para los nuevos empleados. Tomemos un ejemplo:

Sarah es una nueva empleada en la empresa SuperFantasy, que utiliza Okta como su proveedor de identidad empresarial. El equipo de RRHH la agrega como una identidad empresarial [email protected] en Okta solo una vez. Cuando Sarah utiliza este correo electrónico para iniciar sesión en una aplicación de productividad corporativa llamada Smartworkspace por primera vez, el sistema crea automáticamente una cuenta y le asigna el rol adecuado dentro del espacio de trabajo de la empresa. De esta manera, ni Sarah ni el equipo de RRHH en SuperFantasy necesitan realizar múltiples pasos para la creación de la cuenta y la asignación de roles.

Fusiones, adquisiciones y trabajadores temporales

Tienes un cliente que está experimentando fusiones o adquiriendo otras empresas, la provisión JIT puede simplificar el proceso de otorgar acceso a los sistemas de la empresa adquiriente para muchos nuevos usuarios. Tomemos otro ejemplo,

Peter trabaja para MagicTech, que fue recientemente adquirida por SuperFantasy. MagicTech es una organización más pequeña sin SSO empresarial, pero también utiliza Smartworkspace donde Peter ya tiene una cuenta comercial.

El equipo de RRHH puede agregar a Peter en Okta. Cuando Peter inicia sesión en Smartworkspace por primera vez a través de Okta, el sistema automáticamente vincula su cuenta comercial existente y le otorga el acceso apropiado a SuperFantasy.

Los escenarios anteriores son ideales para implementar la función JIT.

¿Es específico para SAML y Enterprise SSO?

La provisión just-in-time (JIT) a menudo se asocia con el inicio de sesión único (SSO) en la autenticación SAML, pero no es exclusivo de SAML. La provisión JIT también se puede utilizar con otros protocolos de autenticación como OAuth 2.0 y OpenID Connect, y no siempre requiere una configuración de SSO empresarial.

Por ejemplo, la provisión JIT basada en correo electrónico puede agilizar la incorporación de equipos al agregar automáticamente usuarios a un espacio de trabajo basado en su dominio de correo electrónico. Esto es particularmente útil para organizaciones que carecen del presupuesto y los recursos para comprar y gestionar un SSO empresarial.

La idea fundamental detrás de la provisión JIT es automatizar la creación o actualización de cuentas de usuario cuando un usuario intenta acceder a un servicio por primera vez, independientemente del protocolo específico utilizado.

¿Aplica a nuevos o existentes usuarios de la aplicación?

Esta es una pregunta complicada. La provisión just-in-time (JIT) generalmente se refiere al primer intento de acceder a una aplicación. Sin embargo, diferentes productos perciben esta funcionalidad de manera diferente. Algunos usan la provisión JIT solo para la creación de identidad y cuenta, mientras que otros también incluyen actualizaciones de cuentas just-in-time, como reprovisionamiento y sincronización de atributos.

Además de la creación automática de usuarios, la provisión JIT de SAML permite otorgar y revocar membresías de grupo como parte de la provisión. También puede actualizar usuarios provisionados para mantener sus atributos en el almacén del Proveedor de Servicios (SP) en sincronía con los atributos del almacén de usuarios del Proveedor de Identidad (IDP).

Por ejemplo, en Oracle Cloud, la provisión just-in-time se puede configurar de diversas maneras.

  1. Creación just-in-time
  2. Actualización just-in-time

Administrar Oracle Identity Cloud Service: Comprender la provisión just-in-time de SAML.

Cuando el usuario inicia sesión:Flujo
Existe y la provisión JIT está habilitada.Flujo de fallo de SSO normal.
No existe y la creación JIT está habilitada.El usuario es creado y poblado con los atributos de la aserción SAML, como se mapeó en la configuración JIT.
Existe y la actualización JIT está habilitada.Los valores de los atributos del usuario se actualizan con los atributos de aserción SAML, como se mapeó en la configuración JIT.

Si deseas considerar el escenario posterior de inicio de sesión de usuario existente, asegúrate de tener un sistema de provisión robusto junto con tu sistema JIT. Por ejemplo,

  • Resolución de conflictos: Tu sistema debe tener una estrategia para manejar conflictos si ya existe una cuenta con información diferente a la proporcionada por el IdP durante el proceso JIT. Esto puede requerir un control detallado de las políticas de tu organización y la configuración del IdP.
  • Registros de auditoría: Es importante mantener registros tanto de las nuevas creaciones de cuentas como de las actualizaciones de cuentas existentes a través de procesos JIT por razones de seguridad y cumplimiento.
  • Rendimiento: Aunque la provisión JIT ocurre rápidamente, considera el impacto potencial en los tiempos de inicio de sesión, especialmente para los usuarios existentes si estás actualizando su información en cada inicio de sesión.
  • Consistencia de datos: Asegúrate de que tu proceso de provisión JIT mantenga la consistencia de los datos, especialmente al actualizar cuentas de usuario existentes.

¿Cuál es la diferencia entre JIT y SCIM?

Además de la provisión just-in-time (JIT), es posible que hayas oído hablar de SCIM (System for Cross-domain Identity Management). SCIM es un protocolo estándar abierto diseñado para simplificar y automatizar la gestión de identidades de usuarios en diferentes sistemas y dominios. Se utiliza comúnmente en escenarios de sincronización de directorios.

La principal diferencia entre JIT y SCIM es que JIT crea cuentas durante el intento de inicio de sesión del usuario, mientras que SCIM puede provisionar usuarios a través de un proceso automatizado fuera de línea, independiente de los intentos de inicio de sesión del usuario.

Esto significa que JIT se enfoca en la incorporación de nuevos usuarios, mientras que SCIM se enfoca en la gestión del ciclo de vida completo de los usuarios.

Además, JIT a menudo es una extensión de SAML y carece de una implementación estandarizada en diferentes sistemas, mientras que SCIM es un protocolo bien definido y estandarizado (RFC 7644) para la gestión de identidades.

Algunas organizaciones más grandes usan SCIM para la provisión de cuentas, integrándolo con sus propios sistemas. Esto puede ser muy complejo y varía caso por caso. Estas organizaciones a menudo tienen un sistema de provisión que involucra tanto procesos automatizados como la intervención de un administrativo.

Provisión Just-in-Time en Logto

Provisión Just-in-Time por SSO y Provisión Just-in-Time por dominio de correo electrónico son lo que abrazamos en Logto.

En Logto, tenemos este conjunto de características a nivel de organización que permite a los usuarios unirse automáticamente a la organización y recibir asignaciones de roles si cumplen con criterios específicos.

Implementamos la característica JIT en su nivel más escalable y seguro para simplificar y automatizar el proceso de provisión para los desarrolladores que incorporan a sus clientes. Sin embargo, como discutimos anteriormente, dado que los sistemas de provisión pueden ser complejos y adaptados a las necesidades específicas de tus clientes, debes aprovechar las funciones JIT pre-construidas de Logto, tu diseño cuidadoso del sistema y la API de gestión de Logto para construir un sistema de provisión robusto.

Veamos este diagrama para ver cómo funciona en Logto,

Provisión por SSO empresarial

Si tienes el SSO empresarial configurado en Logto, puedes seleccionar el SSO empresarial de tu organización para habilitar la provisión just-in-time.

Los usuarios nuevos o existentes que inicien sesión a través del SSO empresarial por primera vez se unirán automáticamente a la organización y obtendrán roles de organización predeterminados.

La siguiente tabla describe los posibles flujos:

Estado del usuarioDescripción del flujo
El usuario no existe, y JIT está habilitado.El usuario es creado y se une automáticamente a la organización correspondiente con los roles adecuados.
El usuario existe con la misma dirección de correo electrónico verificada que el SSO empresarial, y JIT está habilitado.La dirección de correo electrónico del usuario se vincula automáticamente con la cuenta de SSO empresarial, y se une a la organización correspondiente con los roles adecuados.
El usuario no existe, y JIT no está habilitado.Flujo normal de fallo de SSO.
El usuario existe, y JIT no está habilitado.Flujo normal de SSO.

Provisión por SSO

Provisión por dominio de correo electrónico

Si una organización no tiene un SSO empresarial dedicado, puedes usar dominios de correo electrónico para habilitar la provisión Just-in-Time. Esto generalmente ocurre en empresas más pequeñas que no tienen el presupuesto para SSO empresarial pero aún quieren algún nivel de automatización de incorporación de miembros y gestión de seguridad.

Cuando los usuarios se registran, si sus direcciones de correo electrónico verificadas coinciden con los dominios de correo electrónico configurados a nivel de organización, serán provisionados a la(s) organización(es) correspondiente(s) con los roles adecuados.

Provisión por dominio de correo electrónico

La provisión por dominio de correo electrónico funciona para:

  1. Autenticación por registro con correo electrónico
  2. Autenticación por registro social

Flujo de correo electrónico

Estado del usuarioDescripción del flujo
El usuario no existe y se registra con correo electrónico, y JIT está habilitado.El usuario es creado y se une automáticamente a la organización correspondiente con los roles adecuados.
El usuario existe con la misma dirección de correo electrónico verificada que el dominio de correo provisionado, y JIT está habilitado.Flujo normal de inicio de sesión por correo electrónico.
El usuario no existe y se registra con correo electrónico, y JIT no está habilitado.Flujo normal de registro por correo electrónico.
El usuario existe y se registra con correo electrónico, y JIT no está habilitado.Flujo normal de inicio de sesión por correo electrónico.

Flujo social

Estado del usuarioDescripción del flujo
El usuario no existe, se registra con cuenta social utilizando un correo verificado, y JIT está habilitado.El usuario es creado y se une automáticamente a la organización correspondiente con los roles adecuados.
El usuario no existe, se registra con cuenta social utilizando un correo no verificado o sin correo, y JIT está habilitado.Flujo normal de registro social.
El usuario existe con la misma dirección de correo electrónico verificada que el dominio de correo provisionado, inicia sesión a través de cuenta social, y JIT está habilitado.Flujo normal de inicio de sesión social.
El usuario no existe, se registra con cuenta social, y JIT no está habilitado.Flujo normal de registro social.
El usuario existe, inicia sesión con cuenta social, y JIT no está habilitado.Flujo normal de inicio de sesión social.

Manejo de posibles conflictos entre la provisión por dominio de correo electrónico y el SSO empresarial

Si configuraste inicialmente la provisión por dominio de correo electrónico y luego configuraste un SSO empresarial con el mismo dominio de correo electrónico, esto es lo que sucede:

Cuando un usuario ingresa su dirección de correo electrónico, será redirigido al flujo de SSO, omitiendo la autenticación por correo electrónico. Esto significa que el proceso JIT no se activará.

Para abordar esto, mostraremos un mensaje de advertencia durante la configuración. Asegúrate de manejar este flujo seleccionando el SSO correcto para habilitar la provisión just-in-time, y no confíes en la provisión por dominio de correo electrónico.

Resolución de conflictos

Roles predeterminados de organización

Al provisionar usuarios, puedes establecer sus roles predeterminados en la organización. La lista de roles proviene de la plantilla de la organización, y puedes elegir un rol o dejarlo en blanco.

Actualización Just-in-Time por SSO empresarial

Afortunadamente, ¡ya tenemos esta función incorporada en el SSO empresarial! Puedes elegir si la información de perfil se sincroniza con Logto en el primer inicio de sesión o en cada inicio de sesión. También consideraremos agregar más funciones como mapeo de roles y organización y reprovisionamiento en el futuro.

Actualización JIT por SSO Consulta esto para aprender más.

La función Just-in-Time está disponible de inmediato en Logto. Regístrate en Logto hoy y comienza a automatizar la incorporación de clientes a la membresía.