# US-ADM-007: Configurar PolΓ­ticas de Seguridad **ID:** US-ADM-007 **MΓ³dulo:** MAI-013 **Relacionado con:** RF-ADM-001, RF-ADM-002, ET-ADM-005 **Prioridad:** Alta **Story Points:** 5 --- ## πŸ“– Historia de Usuario **Como** Director General **Quiero** configurar polΓ­ticas de seguridad de la organizaciΓ³n (passwords, sesiones, intentos de login) **Para** cumplir con estΓ‘ndares de seguridad y proteger el sistema contra accesos no autorizados --- ## βœ… Criterios de AceptaciΓ³n ### 1. Configurar PolΓ­tica de Passwords ```gherkin Given que soy Director General When accedo a "AdministraciΓ³n > Seguridad > PolΓ­ticas de Password" Then debo ver opciones configurables: - Longitud mΓ­nima (slider: 8-20 caracteres, default: 12) - Requerir mayΓΊscula (toggle) - Requerir minΓΊscula (toggle) - Requerir nΓΊmero (toggle) - Requerir carΓ‘cter especial (toggle) - ExpiraciΓ³n (dΓ­as): 30, 60, 90, 180, nunca - Prevenir reutilizaciΓ³n (ΓΊltimas N passwords): 0-10 - Bloquear passwords comunes (toggle) When modifico la configuraciΓ³n And hago clic en "Guardar" Then el sistema debe: - Aplicar la polΓ­tica a nuevos passwords inmediatamente - Solicitar cambio de password en prΓ³ximo login a usuarios existentes (si es mΓ‘s restrictiva) - Enviar notificaciΓ³n a todos los usuarios sobre cambio de polΓ­tica - Registrar en audit log ``` ### 2. Configurar PolΓ­tica de Sesiones ```gherkin Given que estoy configurando polΓ­ticas de sesiΓ³n When accedo a "Seguridad > Sesiones" Then debo ver opciones: - DuraciΓ³n de sesiΓ³n activa: 15min, 30min, 1h, 4h, 8h, 24h - Timeout por inactividad: 5min, 15min, 30min, 1h - Sesiones concurrentes mΓ‘ximas por usuario: 1-10 - Requerir re-autenticaciΓ³n para acciones crΓ­ticas (toggle) - IP whitelist (lista de IPs permitidas) When configuro: - DuraciΓ³n: 4 horas - Timeout: 30 minutos - MΓ‘ximo 3 sesiones concurrentes And guardo Then el sistema debe: - Aplicar lΓ­mites inmediatamente a nuevas sesiones - Cerrar sesiones existentes que excedan los nuevos lΓ­mites - Notificar a usuarios afectados ``` ### 3. Configurar PolΓ­tica de Intentos de Login ```gherkin Given que quiero proteger contra brute force attacks When configuro polΓ­ticas de login: - MΓ‘ximo intentos fallidos: 3, 5, 10 - Tiempo de bloqueo: 15min, 30min, 1h, 24h, permanente - Bloqueo por IP: toggle - Bloqueo por usuario: toggle - Captcha despuΓ©s de N intentos: 0-5 And establezco: - 5 intentos mΓ‘ximos - Bloqueo de 30 minutos - Captcha despuΓ©s de 3 intentos Then el sistema debe: - Aplicar reglas inmediatamente - Mostrar captcha en login despuΓ©s de 3 fallos - Bloquear cuenta por 30 min despuΓ©s de 5 fallos - Enviar alerta de seguridad al administrador ``` ### 4. Configurar AutenticaciΓ³n de Dos Factores (2FA) ```gherkin Given que quiero habilitar 2FA When accedo a "Seguridad > AutenticaciΓ³n" Then debo ver opciones: - Requerir 2FA para todos los usuarios (toggle) - Requerir 2FA solo para roles crΓ­ticos (director, finance) - MΓ©todos permitidos: β˜‘οΈ AplicaciΓ³n Authenticator (Google, Microsoft) β˜‘οΈ SMS β˜‘οΈ Email - Periodo de recordar dispositivo: 0, 7, 30, 90 dΓ­as When habilito 2FA obligatorio para directores Then el sistema debe: - Solicitar configuraciΓ³n de 2FA en prΓ³ximo login de directores - No permitir acceso hasta configurar 2FA - Generar cΓ³digos de recuperaciΓ³n ``` ### 5. Gestionar Sesiones Activas ```gherkin Given que soy administrador When accedo a "Seguridad > Sesiones Activas" Then debo ver lista en tiempo real con: - Usuario - Dispositivo / Navegador - IP - UbicaciΓ³n (geo-localizaciΓ³n) - Inicio de sesiΓ³n - Última actividad - Acciones: [Revocar] When hago clic en "Revocar" en una sesiΓ³n Then el sistema debe: - Cerrar la sesiΓ³n inmediatamente - Forzar re-login del usuario - Notificar al usuario por email - Registrar en audit log ``` ### 6. Configurar Alertas de Seguridad ```gherkin Given que quiero recibir alertas de eventos crΓ­ticos When configuro reglas de alerta: - Evento: "Login desde nueva IP" - CondiciΓ³n: "Usuario con rol director o finance" - AcciΓ³n: "Enviar email + SMS" - Destinatarios: ["director@constructora.com"] And guardo la regla Then el sistema debe: - Evaluar cada evento de login - Enviar alerta si cumple condiciΓ³n - Incluir detalles: IP, ubicaciΓ³n, dispositivo - Permitir bloquear sesiΓ³n desde el email ``` ### 7. Restricciones por Horario ```gherkin Given que quiero limitar acceso a horarios laborales When configuro: - Horario permitido: Lun-Vie 8:00-18:00 - Zona horaria: America/Mexico_City - Aplicar a rol: "resident" Then el sistema debe: - Permitir login solo en horario configurado - Bloquear intentos fuera de horario con mensaje claro - Permitir excepciones temporales ``` ### 8. Whitelist/Blacklist de IPs ```gherkin Given que quiero restringir acceso por IP When agrego a whitelist: - 192.168.1.0/24 (Oficina principal) - 10.0.0.0/16 (VPN corporativa) And agrego a blacklist: - 203.0.113.0/24 (IP sospechosa) Then el sistema debe: - Solo permitir login desde IPs en whitelist - Bloquear inmediatamente IPs en blacklist - Registrar intentos bloqueados en audit log ``` ### 9. RevisiΓ³n PeriΓ³dica de Seguridad ```gherkin Given que quiero auditorΓ­as de seguridad automΓ‘ticas When configuro: - Frecuencia: Semanal - DΓ­a: Lunes 9:00 AM - Enviar reporte a: ["director@constructora.com"] Then el sistema debe generar reporte con: - Usuarios con passwords expirados - Usuarios sin 2FA habilitado - Sesiones sospechosas - Intentos de login fallidos (top 10) - Recomendaciones de seguridad ``` ### 10. Modo de Mantenimiento ```gherkin Given que necesito mantenimiento del sistema When activo "Modo Mantenimiento" And configuro: - Mensaje personalizado: "Sistema en mantenimiento..." - Tiempo estimado: 2 horas - Permitir acceso a IPs: [admin IPs] Then el sistema debe: - Mostrar pΓ‘gina de mantenimiento a todos los usuarios - Cerrar sesiones activas (excepto admins) - Permitir solo acceso desde IPs autorizadas - Registrar inicio/fin del mantenimiento ``` --- ## 🎨 Mockup / Wireframe ### Panel de PolΓ­ticas de Seguridad ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ PolΓ­ticas de Seguridad β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ πŸ” PolΓ­ticas de Password β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Longitud mΓ­nima β”‚ β”‚ β”‚ β”‚ ●────────────────○───────── 12 caracteres β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β˜‘οΈ Requerir mayΓΊscula β˜‘οΈ Requerir minΓΊscula β”‚ β”‚ β”‚ β”‚ β˜‘οΈ Requerir nΓΊmero β˜‘οΈ Requerir carΓ‘cter especial β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ ExpiraciΓ³n de password β”‚ β”‚ β”‚ β”‚ [v] 90 dΓ­as β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Prevenir reutilizaciΓ³n (ΓΊltimas N passwords) β”‚ β”‚ β”‚ β”‚ [v] 5 passwords β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β˜‘οΈ Bloquear passwords comunes (123456, password, etc.) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ πŸ”“ PolΓ­ticas de SesiΓ³n β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ DuraciΓ³n mΓ‘xima de sesiΓ³n β”‚ β”‚ β”‚ β”‚ β—‰ 4 horas β—‹ 8 horas β—‹ 24 horas β—‹ Sin lΓ­mite β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Timeout por inactividad β”‚ β”‚ β”‚ β”‚ β—‹ 15 min β—‰ 30 min β—‹ 1 hora β—‹ Sin timeout β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Sesiones concurrentes mΓ‘ximas por usuario β”‚ β”‚ β”‚ β”‚ [v] 3 dispositivos β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β˜‘οΈ Requerir re-autenticaciΓ³n para acciones crΓ­ticas β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ 🚫 ProtecciΓ³n contra Brute Force β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Intentos de login fallidos antes de bloqueo β”‚ β”‚ β”‚ β”‚ [v] 5 intentos β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Tiempo de bloqueo β”‚ β”‚ β”‚ β”‚ β—‰ 30 minutos β—‹ 1 hora β—‹ 24 horas β—‹ Permanente β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Mostrar captcha despuΓ©s de β”‚ β”‚ β”‚ β”‚ [v] 3 intentos fallidos β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β˜‘οΈ Bloquear por IP β˜‘οΈ Bloquear por usuario β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ [Cancelar] [Guardar Cambios] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Sesiones Activas en Tiempo Real ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Sesiones Activas (Tiempo Real) πŸ”„ Actualizarβ”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 🟒 15 usuarios conectados β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Usuario Dispositivo IP Inicio β”‚ β”‚ ────────────────────────────────────────────────────────────── β”‚ β”‚ 🟒 MarΓ­a LΓ³pez Chrome / Windows 10.0.1.45 09:15 AM β”‚ β”‚ Director πŸ“ Ciudad de MΓ©xico [Revocar] β”‚ β”‚ Última actividad: Hace 2 minutos β”‚ β”‚ β”‚ β”‚ 🟒 Juan PΓ©rez Safari / macOS 192.168.1.89 08:45 AM β”‚ β”‚ Ingeniero πŸ“ Monterrey [Revocar] β”‚ β”‚ Última actividad: Hace 5 minutos β”‚ β”‚ β”‚ β”‚ 🟑 Ana GarcΓ­a Mobile / Android 200.57.5.12 07:30 AM β”‚ β”‚ Residente πŸ“ Guadalajara [Revocar] β”‚ β”‚ ⚠️ IP no reconocida - Nueva ubicaciΓ³n β”‚ β”‚ β”‚ β”‚ πŸ”΄ Pedro Morales Firefox / Linux 198.51.100.5 3 dΓ­as β”‚ β”‚ Compras πŸ“ Desconocido [Revocar] β”‚ β”‚ ⚠️ SesiΓ³n inactiva por 3 dΓ­as β”‚ β”‚ β”‚ β”‚ [Revocar Todas las Sesiones] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### ConfiguraciΓ³n de Alertas de Seguridad ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Nueva Regla de Alerta [X]β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Evento * β”‚ β”‚ [v] Login desde nueva IP β”‚ β”‚ β–Ό Login desde nueva IP β”‚ β”‚ Login fallido β”‚ β”‚ Password cambiado β”‚ β”‚ Permiso modificado β”‚ β”‚ Backup fallido β”‚ β”‚ EliminaciΓ³n masiva β”‚ β”‚ β”‚ β”‚ CondiciΓ³n (opcional) β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ user.role IN ['director', 'finance'] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Acciones β”‚ β”‚ β˜‘οΈ Enviar email β”‚ β”‚ β˜‘οΈ Enviar SMS β”‚ β”‚ ☐ Crear ticket de soporte β”‚ β”‚ ☐ Bloquear usuario temporalmente β”‚ β”‚ β”‚ β”‚ Destinatarios β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ director@constructora.com β”‚ β”‚ β”‚ β”‚ seguridad@constructora.com [+ ] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Severidad β”‚ β”‚ β—‰ Alta β—‹ Media β—‹ Baja β”‚ β”‚ β”‚ β”‚ [Cancelar] [Crear Regla] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ§ͺ Casos de Prueba ### CP-001: Cambiar PolΓ­tica de Password **Precondiciones:** - PolΓ­tica actual: 8 caracteres mΓ­nimos **Pasos:** 1. Ir a "Seguridad > PolΓ­ticas de Password" 2. Cambiar a 12 caracteres mΓ­nimos 3. Habilitar requerir carΓ‘cter especial 4. Guardar **Resultado Esperado:** - βœ… PolΓ­tica actualizada inmediatamente - βœ… Nuevos usuarios deben cumplir nueva polΓ­tica - βœ… Usuarios existentes reciben notificaciΓ³n - βœ… Audit log registra cambio ### CP-002: Bloqueo por Intentos Fallidos **Precondiciones:** - PolΓ­tica: 5 intentos, bloqueo 30 min **Pasos:** 1. Intentar login con password incorrecto 5 veces 2. Verificar estado de cuenta **Resultado Esperado:** - βœ… DespuΓ©s de 3 intentos: muestra captcha - βœ… DespuΓ©s de 5 intentos: cuenta bloqueada por 30 min - βœ… Mensaje: "Cuenta bloqueada por intentos fallidos" - βœ… Email de alerta enviado al usuario - βœ… Audit log registra bloqueo ### CP-003: Revocar SesiΓ³n Activa **Precondiciones:** - Usuario "Juan" tiene sesiΓ³n activa **Pasos:** 1. Ir a "Sesiones Activas" 2. Clic "Revocar" en sesiΓ³n de Juan 3. Confirmar **Resultado Esperado:** - βœ… SesiΓ³n cerrada inmediatamente - βœ… Juan desconectado del sistema - βœ… Debe hacer login nuevamente - βœ… Email enviado a Juan notificando - βœ… Audit log registra revocaciΓ³n ### CP-004: Alerta de Login desde Nueva IP **Precondiciones:** - Regla: Alertar login desde nueva IP para directores **Pasos:** 1. Director hace login desde IP nunca antes usada 2. Verificar alertas **Resultado Esperado:** - βœ… Email enviado a director - βœ… Email incluye IP, ubicaciΓ³n, dispositivo - βœ… OpciΓ³n para "Bloquear esta sesiΓ³n" en email - βœ… Audit log registra alerta ### CP-005: IP Bloqueada en Blacklist **Precondiciones:** - IP 203.0.113.10 agregada a blacklist **Pasos:** 1. Intentar login desde IP bloqueada **Resultado Esperado:** - βœ… Login bloqueado inmediatamente - βœ… Mensaje: "Acceso denegado desde esta ubicaciΓ³n" - βœ… No se registra intento de login (bloqueado en firewall) - βœ… Audit log registra intento bloqueado --- ## πŸ”— Dependencias **Requisitos Previos:** - ET-ADM-005: PasswordPolicyService implementado - ET-ADM-005: SessionSecurityService implementado - ET-ADM-005: RateLimitGuard implementado - Redis para tracking de intentos de login **APIs Necesarias:** - `GET /api/admin/security/policies` - Obtener polΓ­ticas - `PUT /api/admin/security/policies` - Actualizar polΓ­ticas - `GET /api/admin/security/sessions` - Sesiones activas - `DELETE /api/admin/security/sessions/:id` - Revocar sesiΓ³n - `POST /api/admin/security/alert-rules` - Crear regla de alerta - `GET /api/admin/security/ip-whitelist` - Gestionar whitelist/blacklist --- ## πŸ“Š MΓ©tricas de Γ‰xito - **Passwords que cumplen polΓ­tica:** 100% - **Tiempo de bloqueo despuΓ©s de 5 intentos:** <1 segundo - **Alertas enviadas:** 100% de eventos configurados - **Sesiones revocadas:** <5 segundos --- **Generado:** 2025-11-20 **Estado:** βœ… Listo para desarrollo