5.6 KiB
5.6 KiB
EPICA: EPIC-MGN-001 - Autenticacion
Metadata
| Campo | Valor |
|---|---|
| ID | EPIC-MGN-001 |
| Nombre | Sistema de Autenticacion |
| Modulo | auth |
| Fase | Fase 1 - Foundation |
| Prioridad | P0 (Critico) |
| Estado | Ready |
| Story Points | 34 |
| Sprint(s) | Sprint 1 (core), Sprint 2 (recovery) |
| Plan Detalle | SPRINT-PLAN-FASE-1.md |
Descripcion
Sistema de autenticacion robusto que proporciona login con email/password, manejo de tokens JWT (access + refresh), soporte para OAuth providers (Google, Microsoft), sesiones multi-dispositivo, recuperacion de password y opcionalmente 2FA.
Esta epica es fundamental ya que todos los demas modulos dependen de ella para identificar y autorizar usuarios.
Objetivo de Negocio
Proveer un sistema de autenticacion seguro, escalable y con buena experiencia de usuario que:
- Proteja el acceso a la plataforma
- Soporte multiples metodos de autenticacion
- Permita sesiones simultaneas controladas
- Cumpla con estandares de seguridad (OWASP)
Stakeholders
| Rol | Nombre/Equipo | Responsabilidad |
|---|---|---|
| Product Owner | Equipo Producto | Aprobacion de criterios |
| Tech Lead | Equipo Backend | Validacion tecnica y seguridad |
| Usuarios | Todos los usuarios | Feedback de UX |
Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|---|---|---|---|---|
| US-MGN001-001 | Como usuario, quiero iniciar sesion con email y password para acceder al sistema | P0 | 8 | Ready |
| US-MGN001-002 | Como usuario, quiero recuperar mi password via email para restaurar acceso | P0 | 5 | Ready |
| US-MGN001-003 | Como usuario, quiero cerrar sesion para proteger mi cuenta | P0 | 2 | Ready |
| US-MGN001-004 | Como usuario, quiero que mi sesion se renueve automaticamente para no perder trabajo | P0 | 5 | Ready |
| US-MGN001-005 | Como usuario, quiero iniciar sesion con Google/Microsoft para facilitar el acceso | P1 | 8 | Backlog |
| US-MGN001-006 | Como admin, quiero configurar 2FA para aumentar la seguridad | P2 | 5 | Backlog |
| US-MGN001-007 | Como usuario, quiero ver mis sesiones activas para controlar accesos | P2 | 3 | Backlog |
Total Story Points: 34 SP (Fibonacci: 8+5+2+5+8+5+3 = 36, ajustado a 34)
Criterios de Aceptacion de la Epica
Funcionales:
- Login con email/password funcional
- Tokens JWT con access (15min) y refresh (7 dias)
- Password recovery via email con token temporal
- Logout individual y logout de todas las sesiones
- Almacenamiento seguro de passwords (bcrypt, cost 12)
- Rate limiting en endpoints de auth (5 intentos/minuto)
No Funcionales:
- Performance: Login < 500ms
- Seguridad: Passwords hasheados, tokens firmados
- Usabilidad: Flujo de login en max 2 pasos
Tecnicos:
- Cobertura de tests > 80%
- Documentacion Swagger completa
- Integracion DB-Backend-Frontend verificada
Dependencias
Esta epica depende de:
| Epica/Modulo | Estado | Bloqueante |
|---|---|---|
| PostgreSQL | Ready | Si |
| Schema core_auth | Por crear | Si |
Esta epica bloquea:
| Epica/Modulo | Razon |
|---|---|
| EPIC-MGN-002 Users | Requiere sistema de auth |
| EPIC-MGN-003 Roles | Requiere identificacion de usuarios |
| EPIC-MGN-004 Tenants | Requiere autenticacion base |
| Todos los modulos | Requieren auth para acceso |
Desglose Tecnico
Database:
- Schema:
core_auth - Tablas: 4 (users_auth, sessions, tokens, oauth_connections)
- Funciones: 2 (validar_password, generar_token)
- RLS Policies: Si (aislamiento por tenant)
Backend:
- Modulo:
auth - Entities: 4 (UserAuth, Session, Token, OAuthConnection)
- Endpoints: 8 (login, logout, refresh, forgot-password, reset-password, oauth-login, oauth-callback, sessions)
- Tests: 24+
Frontend:
- Paginas: 4 (Login, ForgotPassword, ResetPassword, Sessions)
- Componentes: 6 (LoginForm, PasswordInput, OAuthButtons, SessionList, etc.)
- Stores: 1 (authStore)
Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|---|---|---|---|
| Vulnerabilidades de seguridad | Media | Alto | Code review, auditorias, OWASP checklist |
| Performance en login | Baja | Medio | Caching, optimizacion de queries |
| Integracion OAuth compleja | Media | Medio | Documentacion detallada, POC previo |
Definition of Ready (DoR)
- Historias de usuario definidas
- Criterios de aceptacion claros
- Dependencias identificadas
- Estimacion completada
- Diseno tecnico aprobado
- Sin bloqueadores activos
Definition of Done (DoD)
- Codigo implementado y revisado
- Tests pasando (unit, integration, e2e)
- Documentacion actualizada
- Inventarios actualizados
- Trazas registradas
- Demo realizada
- Product Owner aprobo
Documentacion Relacionada
- Requerimientos:
docs/03-requerimientos/RF-auth/ - Especificaciones:
docs/04-modelado/especificaciones-tecnicas/ET-auth-*.md - User Stories:
docs/05-user-stories/MGN-001/ - DDL Spec:
docs/04-modelado/database-design/DDL-SPEC-core_auth.md - ADR:
docs/97-adr/ADR-001-stack-tecnologico.md
Historial
| Fecha | Cambio | Autor |
|---|---|---|
| 2025-12-05 | Creacion de epica | Requirements-Analyst |
Creada por: Requirements-Analyst Fecha: 2025-12-05 Ultima actualizacion: 2025-12-05