1.6 KiB
1.6 KiB
Estándares - Autenticación SSO Active Directory & JWT
Este documento detalla el flujo de identidad corporativa entre Angular, NestJS y Active Directory (Azure AD / Entra ID).
1. Diagrama de Secuencia SSO
[ Angular (Cliente) ] ----(1) Iniciar Sesión ----> [ Azure AD SSO Portal ]
[ Angular (Cliente) ] <---(2) Retorna JWT Token --- [ Azure AD SSO Portal ]
[ Angular (Cliente) ] ----(3) GET /api/tickets ----> [ NestJS (Backend) ]
(Authorization Header)
[ NestJS (Backend) ] ----(4) Valida Firma JWT ---> [ Azure AD Keys (JWKS) ]
[ NestJS (Backend) ] <---(5) Token Válido --------- [ Azure AD Keys (JWKS) ]
[ Angular (Cliente) ] <---(6) Respuesta JSON ------- [ NestJS (Backend) ]
2. Contrato de Cabeceras
Toda solicitud HTTP realizada por el frontend hacia los endpoints protegidos del backend debe incluir la cabecera Authorization:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IiJ9...
3. Configuración en NestJS (Passport)
El backend utiliza passport-jwt o passport-azure-ad para descifrar y validar el token.
Claims esperados en el JWT decodificado:
sub(Identificador único de usuario)email(Correo electrónico corporativo, ej:jess@kinetix.com)name(Nombre del empleado)roles(Roles asignados, ej:['Employee', 'Manager'])department(Departamento de la organización)
4. Frontend Angular AuthGuard
El interceptor HTTP de Angular inyecta automáticamente el token JWT obtenido desde el store de autenticación en todas las llamadas salientes hacia el backend.