wave-ai/standards/03-active-directory-sso.md

43 lines
1.6 KiB
Markdown

# 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.