Azure Active Directory B2C: Gestión de Usuarios y Autenticación

Clase 11 de 28Curso de Azure Active Directory

Resumen

¿Qué es Azure Active Directory B2C?

Azure Active Directory B2C es una solución de gestión de identidad que permite a las organizaciones autenticar usuarios de manera segura, ya sea mediante credenciales locales o integraciones con proveedores de identidad externos como las redes sociales. Una de sus ventajas es que permite a las empresas ofrecer experiencias personalizadas y seguras a sus usuarios, abarcando desde el inicio de sesión hasta la recuperación de contraseñas.

¿Cómo funciona un "tenant" en Azure Active Directory?

Un "tenant" o inquilino en Azure Active Directory representa a una organización y a sus usuarios e incluye un directorio que controla todas las cuentas registradas. Entre las funcionalidades del tenant se encuentran:

  • Registro de aplicaciones: Importante para flujos como Open ID Connect y OAuth 2.0.
  • Flujos de usuario y directivas personalizadas: Para la autenticación de usuarios.
  • Proveedores de identidad registrados: Facilitan la gestión de autenticación a través de diversas plataformas.
  • Gestión de claves: Para la seguridad del directorio.

¿Qué tipos de cuentas se pueden gestionar en Azure Active Directory B2C?

Azure Active Directory B2C permite gestionar distintos tipos de cuentas:

  1. Cuenta profesional: Usuarios con cuentas corporativas que pueden provenir de Azure Active Directory de otra empresa o institución educativa.
  2. Cuenta de invitado: Permite invitar a usuarios externos a colaborar con tu organización.
  3. Cuenta de consumidor: Puede asociarse a redes sociales o generarse como una cuenta local.

Las cuentas de consumidor pueden validarse por correo electrónico, asegurando que el correo existe mediante un código de verificación. Esto ayuda en procesos como la recuperación de contraseñas.

¿Cómo se integran los proveedores de identidad externos?

Azure Active Directory B2C soporta múltiples proveedores de identidad externos, como Facebook, Twitter y LinkedIn. Esto significa que:

  • La autenticación se delega al proveedor de identidad: El proceso de inicio de sesión se realiza en la plataforma externa.
  • Atributos adicionales: Se pueden agregar al usuario registrado en el directorio activo.

Los flujos de usuario permiten iniciar sesión con cuentas locales mediante un correo electrónico o ID de usuario, garantizando que las credenciales queden almacenadas de manera segura.

¿Qué son los flujos de usuario y las directivas personalizadas?

Los flujos de usuario y las directivas personalizadas son métodos para definir cómo los usuarios interactúan con tus aplicaciones en términos de autenticación y registro.

Flujos de usuario:

  • Personalización: Permiten cambiar la interfaz de usuario y establecer qué datos se capturan y retornan.
  • Escenarios comunes: Inicio de sesión, registro de nuevos usuarios, modificación del perfil, cambio de contraseña.
  • Opciones de inicio de sesión: Pueden incluir cuentas locales y autenticación a través de redes sociales.

Directivas personalizadas:

  • Avance en escenarios complejos: Permiten incorporar autenticación multifactor adicional o llamadas a API REST durante el proceso de autenticación.
  • Edición de XML: Aunque complejas, estas políticas pueden ser gestionadas eficazmente con herramientas como Visual Studio Code, que ofrece plugins para facilitarlas.

¿Cómo personalizar la experiencia del usuario final?

Parafraseando, la personalización de la experiencia se refiere a que el usuario final tenga un flujo de autenticación adaptado a sus necesidades, desde el momento en que decide registrarse, iniciar sesión o recuperar credenciales.

Con las directivas personalizadas y los flujos de usuario, puedes definir cada paso del proceso y cómo se deben presentar las credenciales verificadas y los tokens con diferentes "claims" al usuario final.

Las herramientas como Visual Studio Code ayudan a gestionar estas personalizaciones mediante plugins específicos, y puedes referirte a repositorios en GitHub para obtener ejemplos de implementaciones exitosas.