Elegir entre flujos de usuario y directivas personalizadas en Azure Active Directory B2C es una decisión que impacta directamente la flexibilidad, personalización y complejidad de tu solución de identidad. Comprender las diferencias entre ambos enfoques te permitirá tomar la mejor decisión según el escenario que enfrentes.
¿Qué son los flujos de usuario y cuándo conviene utilizarlos?
Los flujos de usuario representan la alternativa más simple para implementar experiencias de identidad en Azure AD B2C [01:00]. Son configuraciones preconstruidas que se gestionan directamente desde el portal de Azure, sin necesidad de escribir código XML ni tener conocimientos profundos sobre protocolos de identidad.
Con flujos de usuario puedes cubrir cuatro actividades fundamentales que cualquier aplicación con identidad necesita:
- Registro de nuevos usuarios.
- Inicio de sesión con cuentas locales o redes sociales.
- Modificación de perfil del usuario.
- Reseteo de contraseña [03:08].
Además, permiten configurar el tipo de cuenta soportada (cuentas locales, redes sociales u otros proveedores compatibles con OpenID Connect), definir qué atributos se recopilan durante el registro y cuáles se regresan al iniciar sesión, habilitar autenticación multifactor (MFA) con el servicio de Microsoft, personalizar la interfaz de usuario mediante HTML y CSS, y administrar el comportamiento de las sesiones [02:18].
¿Qué es el flujo ROPC y para qué sirve?
Existe una alternativa llamada ROPC (Resource Owner Password Credentials) [03:38] que permite hacer una llamada a una API directamente desde la aplicación para autenticar al usuario y obtener claims. Está orientada principalmente a dispositivos móviles, ya que necesita capturar la metadata del inicio de sesión, como la dirección IP del dispositivo. Si se usara en un esquema server to server, se perdería esa información importante porque el servidor tendría una única IP. La recomendación es preferir flujos de usuario o directivas personalizadas sobre ROPC.
¿Qué son las directivas personalizadas y qué ventajas ofrecen?
Las directivas personalizadas son archivos de configuración en formato XML que definen paso a paso el comportamiento completo de la experiencia del usuario [04:36]. A diferencia de los flujos de usuario, permiten diseñar escenarios avanzados donde cada paso del proceso de autenticación se puede personalizar por completo.
Con directivas personalizadas puedes:
- Conectarte con proveedores de identidad mediante protocolos estándar como OpenID Connect.
- Habilitar MFA de terceros, no solo el servicio nativo de Microsoft.
- Llamar APIs REST externas durante el proceso de registro o inicio de sesión para obtener información adicional [05:20].
- Personalizar plantillas de correo electrónico usando servicios como SendGrid para envíos masivos con diseño propio [08:45].
¿Cómo funciona el flujo de una directiva personalizada?
El diagrama de funcionamiento muestra un proceso de múltiples pasos [06:04]: el usuario interactúa con la aplicación, la aplicación inicia la autenticación indicando qué política seguir (inicio de sesión, reseteo de contraseña, etc.), y dentro de esa política se ejecutan pasos secuenciales. Por ejemplo, verificar si el usuario ocupa una cuenta local o de redes sociales, evaluar si se requiere MFA, validar el correo electrónico, hacer una llamada a una API REST para complementar la información, y buscar datos en un directorio de usuarios. Al final, se regresa un token con todos los claims construidos a lo largo del proceso hacia la URL de redirección.
¿Cuáles son las diferencias clave entre ambos enfoques?
| Aspecto | Flujos de usuario | Directivas personalizadas |
|---|
| Usuarios objetivo | Cualquier desarrollador, sin experiencia en identidad [07:10]. | Especialistas de identidad o desarrolladores cómodos con OpenID Connect. |
| Método de configuración | Portal de Azure. | Archivos XML editables en Visual Studio Code con plugin dedicado [07:50]. |
| Personalización de UI | HTML, CSS y JavaScript. | HTML, CSS y JavaScript. |
| Proveedores de identidad | Locales y federación con Active Directory. | Los mismos, más conexión con cualquier proveedor que soporte OpenID Connect [08:25]. |
| MFA | Solo servicio de Microsoft. | Microsoft y terceros. |
| Correos electrónicos | Confirmación estándar. | Plantillas personalizadas con servicios como SendGrid. |
Para empezar rápidamente, los flujos de usuario son la opción ideal. Cuando necesites mayor control, como integrar APIs externas, usar MFA de terceros o personalizar correos, las directivas personalizadas son el camino a seguir. En GitHub existe un repositorio con ejemplos y una forma accesible de comenzar a configurarlas [07:30].
¿Ya decidiste cuál de los dos enfoques se adapta mejor a tu proyecto? Comparte tu experiencia en los comentarios.