# 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`: ```http 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.