Estudio de caso
Plataforma municipal de identidad unificada
Identidad • Límites de confianza • RBAC
Imágenes
Galería no disponible.
Resumen
Gateway de autenticación estilo SSO para el Municipio de Bahía Blanca (autentica.bahia.gob.ar): los ciudadanos se autentican una vez y acceden a 10+ servicios municipales críticos con un único token. ~15k logins/mes, 2 años en producción ininterrumpida. La identidad se valida contra registros nacionales — ARCA, ANSES, RENAPER y Mi Argentina — en cada login; el gateway es el único componente que llama esas APIs y el único emisor de tokens de sesión. Sistemas legacy consumen tokens firmados y aplican RBAC; no re-autentican. Sin PII en tokens; fail safe cuando las APIs nacionales no están disponibles. Auditoría y RBAC en gateway y capa de servicio.
Arquitectura y diseño
Identity Trust Boundary Flow
System Invariants
- ·Tokens must not contain PII; only claims required for authorization (sub, roles, exp).
- ·"Verified" is never issued when verification against national APIs did not succeed.
- ·Only the gateway calls national APIs and issues tokens; services validate tokens only.
- ·Session tokens are short-lived; re-validation on every login.
- ·RBAC is enforced at gateway (route) and at service (resource); no bypass.
- ·All authentication and token issuance events are logged for audit.
Architecture Decision Records
- ADR-01Gateway como único emisor de tokens de sesión; sistemas legacy solo validan
- ADR-02Sin PII en tokens; claims mínimos para autorización
- ADR-03Fail safe cuando las APIs nacionales de identidad no están disponibles
- ADR-04RBAC aplicado en gateway y en capa de servicio
- ADR-05Auditoría de autenticación y emisión de tokens
Escala y restricciones
- Volumen de requests
- ~45k logins/mes; validación de token en cada request a servicios downstream.
- Concurrencia
- El gateway es el único escritor de tokens; los servicios son solo validadores. Sin lock distribuido; validación stateless.
- Dependencias externas
- Mi Argentina, RENAPER, ARCA. El login depende de que al menos uno esté disponible; modo degradado (sesión no verificada o rechazo) cuando todos están caídos.
- Modos de fallo
- APIs nacionales caídas o lentas → modo degradado o fallo de login; sin 'verificado' emitido sin verificación. Fallo de validación de token → 401; sin fallback a auth legacy.
- Consistencia de datos
- Estado de sesión y verificación solo en el gateway; los tokens son aserciones firmadas. Los servicios no persisten estado de identidad; validan y aplican RBAC por request.
Qué se rechazó explícitamente
- ✕
Cada sistema legacy llamando a APIs nacionales y emitiendo sus propios tokens
Duplicaría integración, exposición de PII y modos de fallo; un único gateway da un límite de confianza y un único punto de fail safe.
- ✕
PII o datos crudos de registros en tokens
Radio de daño y compliance; los tokens son claims mínimos (sub, roles, exp) para que el compromiso de un servicio no filtre datos de registros.
- ✕
Tokens de larga vida sin re-validación
La verificación debe reflejar el estado actual; cada login re-valida contra las APIs nacionales para que 'verificado' no quede desactualizado.