Appearance
Autenticación - Portal PWA
Estrategia Simplificada
Autenticación simple de cliente sin JWT de empresa (machine tokens).
Opciones de Autenticación
Opción A: Session PHP (Recomendada para MVP)
Ventajas:
- Simple de implementar
- Sin overhead de JWT
- Session nativa de PHP
- Fácil de invalidar
Funcionamiento:
- Después de identificar cliente, se crea session con datos básicos
- Session incluye: cliente_id, tenant_id, nombre, expiración
- Configuración segura: secure, httponly, samesite
Validación:
- Verificar que session existe
- Verificar que no esté expirada
- Destruir session si es inválida
Opción B: JWT Ligero de Cliente
Payload mínimo:
- cliente_id
- tenant_id
- nombre
- timestamps (iat, exp)
Firma: HS256 con secret compartido
Funcionamiento:
- Generar token al identificar cliente
- Validar firma y expiración en cada request
- Verificar que tenant_id coincida
Seguridad
1. Rate Limiting
- Max 5 intentos de login por minuto por IP
- Max 100 requests por minuto por dominio
2. Bloqueo por Intentos Fallidos
- Después de 3 intentos fallidos → bloquear 15 minutos
- Contador se resetea al login exitoso
3. HTTPS Obligatorio
- Redirect automático HTTP → HTTPS
- HSTS Header configurado
4. CORS
- Origins permitidos por tenant
- Credentials habilitados
- Métodos permitidos: GET, POST, PUT, DELETE
Auditoría
Loggear todos los accesos con:
- tenant_id
- cliente_id
- IP
- User agent
- Timestamp
Logout
- Session PHP: Destruir session
- JWT: Opcional usar blacklist en Redis