Skip to content

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