# Clase 11 - Azure Active Directory B2C: Gestión de Usuarios y Autenticación
### Que es Microsoft Entra External ID ?
Es una solución de gestión de identidades para usuarios externos como clientes, ciudadanos o partners. Su propósito es permitir que aplicaciones web y móviles autentiquen usuarios de forma segura, escalable y personalizable, sin depender de cuentas corporativas internas.
**Permite:**
- Autenticación con cuentas locales (correo y contraseña).
- Integración con proveedores de identidad externos (Google, Facebook, Apple, etc).
- Flujos completos de identidad:
- Registro.
- Inicio de Sesión.
- Recuperación de contraseña.
- Edición de perfil.
Todo esto bajo estándares modernos como OpenID Connect y OAuth 2.0.
---
### Como funciona un Tenant en Microsoft Entra ?
Un tenant es una instancia dedicada de Microsoft Entra que representa un entorno aislado. En el contexto de Entra External ID, el tenant esta diseñado unicamente para usuarios externos.
Un tenant de Entra External ID incluye:
- Directorio de Usuarios Consumidores.
- Registro de Aplicaciones.
- Flujos de Usuarios (User Flows).
- Directivas Personalizadas (Custom Polices).
- Proveedores de Identidad Federados.
- Gestión de Claves y Certificados.
- Configuración de Seguridad y Tokens.
**El tenant de B2C esta separado del tenant corporativo tradicional.**
----
### Tipos de identidades gestionadas en Microsoft Entra External ID
Entra External ID se centra en usuarios consumidores, no en empleados internos.
**Tipos de Identidades Soportadas**:
1.Cuentas Locales
- Correo electrónico + contraseña.
- Validación del correo mediante código.
- Gestión completa de contraseñas (reset, cambio).
2.Identidades Sociales
- Google.
- Facebook.
- Apple.
- Microsoft Account.
- Otros proveedores OAuth/OpenID Connect.
3.Identidades Federadas Externas
- Usuarios autenticados mediante Azure AD de otra organización.
- Se gestionan como identidades externas, no como cuentas internas.
- En todos los casos:
- La credenciales son gestionadas por Entra.
- La aplicación nunca almacena contraseñas.
---
### Proveedores de identidad externos
Permitiendo delegarles la autenticación mediante el siguiente flujo general:
- El usuario selecciona el proveedor (Eje: Google).
- Se autentica en la plataforma externa.
- El proveedor devuelve la identidad.
- Entra External ID:
- Valida la respuesta.
- Crea o vincula el usuario.
- Emite tokens de claims.
Los claims resultantes pueden incluir:
- Email.
- Nombre.
- Proveedor de Identidad.
- Identificador Único.
**Esto permite una experiencia de login sencilla sin sacrificar seguridad.**
---
### Flujos de usuario vs Directivas personalizadas
#### Que son los Flujos de Usuarios (User Flows) ?
Los **User Flow** son configuraciones predefinidas que controlan como los usuarios interactúan con la aplicación durante procesos comunes de identidad.
**Escenarios Soportados**:
- Registro (Sign Up).
- Inicio de Sesión (Sign In).
- Registro o inicio combinado.
- Recuperación de contraseña.
- Edición de perfil.
**Capacidades**:
- Personalización Visual (Branding).
- Selección de Proveedores.
- Definición de claims.
- Idioma y mensajes.
**Son rápidos de implementar y recomendados para la mayoría de los casos**.
---
#### Qué son las directivas personalizadas (Custom Polices)?
Los **Custom Polices** permiten construir flujos avanzados de seguridad, más allá de lo que ofrecen los User Flows.
**Casos de Uso**:
- Integración con APIs REST externas (KYC, Scoring, validaciones).
- Lógica condicional avanzada.
- Autenticación multifactor personalizada.
- Flujos dinámicos según contexto.
**Características**:
- Basadas en archivos XML.
- Orquestan pasos de autenticación.
- Trabajan con claims como eje central.
**Son mas potentes pero también mas complejas**.
---
#### Como se personaliza la experiencia del usuario ?
La experiencia del usuario es un componente clave de Entra External ID.
Se puede personalizar:
- Pantallas de login y registro.
- Colores, logos y textos.
- Idiomas.
- Campos solicitados.
- Claims devueltos en tokens.
Esta personalización se define en:
- User Flows.
- Custom Polices.
**Herramientas como Visual Studio Code y respositorios en Git facilitan la gestion de estas configuraciones**.
---
#### Tokens y claims en Entra External ID
Tras un flujo exitoso, Entra External ID emite:
- ID Token --> Identidad del Usuario.
- Access Token --> Permisos para APIs (Si aplica).
Los Tokens:
- Están firmados digitalmente.
- Siguen al estándar JWT.
- Contienen claims que la aplicación usa para:
- Autorización.
- Personalización.
- Control de Acceso.
**La Aplicación debe validar siempre los tokens antes de confiar en ellos**.
#### Resumen de la Clase
- Entra External ID gestiona identidades de usuarios externos.
- El tenant B2C es independiente del tenant corporativo.
- Los User Flows cubren escenarios comunes.
- Las Custom Polices permiten flujos avanzados.
- La seguridad se basa en estándares (OIDC, OAuth 2.0).
- La experiencia del usuario es totalmente personalizable.
**Microsoft Entra External ID no solo autentica usuarios, define como tus clientes confían en tu aplicación**