
Proxy inverso de confianza cero y puerta de enlace de autorización ABAC en Go con evaluación de políticas OPA integrada y revocación de tokens distribuida.
Proxy inverso y gateway de autorización de alto rendimiento y de confianza cero, construido en Go con un motor Open Policy Agent (OPA) embebido, latencia de decisión inferior a 5 ms, revocación distribuida de tokens en tiempo real mediante Redis Pub/Sub y registro de auditoría criptográfico a prueba de manipulaciones.
Las plataformas modernas nativas de la nube y multiinquilino requieren paradigmas de autorización mucho más granulares que el control de acceso basado en roles (RBAC) estático. En entornos de alta garantía, la autorización debe sintetizar dinámicamente quién es el solicitante (Sujeto), qué acción pretende realizar (Acción), qué clasificación de datos aplica (Recurso) y el contexto operativo en tiempo real (Entorno).
El Gateway empresarial ABAC de grano fino actúa como un Punto de Aplicación de Políticas (PEP) y Punto de Decisión de Políticas (PDP) centralizado frente a los microservicios de backend. Diseñado para cumplir con NIST SP 800-162 (ABAC), NIST SP 800-207 (Arquitectura de confianza cero) y RFC 7519 (JSON Web Tokens), elimina la latencia de autorización al compilar las políticas Rego directamente en el espacio de memoria del proceso Go, evitando saltos de red fuera del proceso mientras mantiene la consistencia distribuida entre las instancias del clúster.
ALLOW / DENY) se registra en una cadena de hash SHA-256 de solo adición ($\text{Hash}n = \text{SHA-256}(\text{Hash}{n-1} + \text{Snapshot}_n)$) persistida de forma asíncrona en PostgreSQL para las pistas de auditoría de SOC 2 Type II e ISO 27001.La puerta de enlace está particionada en un Plano de Datos de latencia ultra baja (proxy inverso HTTP y PDP en memoria), un Plano de Control aislado (API de administración para la gestión de políticas y revocación) y Niveles de Estado y Persistencia resilientes (Redis 7 y PostgreSQL 16).

Figura 1: Diagrama de arquitectura del sistema de alto nivel generado con Archify.
👉 🔍 Haga clic aquí para abrir el diagrama interactivo de Archify (Compatible con temas claro/oscuro, nodos en los que se puede hacer clic e inspección profunda de componentes)
graph TD
subgraph Clients["Perimeter & External Consumers"]
ClientApp["Client Applications (SPA / Mobile / Microservices)"]
SecOps["SecOps & Admin Console"]
end
subgraph DataPlane["Enterprise Zero-Trust Gateway (:8080)"]
direction TB
AuthMid["Auth Middleware (JWT, JTI, Leeway)"]
PEP["ABAC Interceptor (PEP Gate)"]
Resolver["Attribute Resolver (S, A, R, E)"]
OPA["Embedded OPA Engine (Rego Runtime)"]
Proxy["Reverse Proxy (httputil)"]
PubSubLis["PubSub Invalidation Listener"]
AuditLog["Non-Blocking Audit Logger"]
HashChain["SHA-256 Cryptographic Chainer"]
end
subgraph ControlPlane["Control Plane (:8082)"]
AdminAPI["Admin API (Revocations & Health)"]
end
subgraph StateTier["Distributed State & Persistence"]
Redis["Redis 7 (Vector Cache & Blacklist :6380)"]
Postgres["PostgreSQL 16 (Ledger & Tenant DB :5433)"]
end
subgraph UpstreamTier["Target Services"]
Upstream["Protected Upstream API (:8081)"]
end
ClientApp -->|"HTTPS + Bearer JWT"| AuthMid
SecOps -->|"Admin Key Auth"| AdminAPI
AdminAPI -->|"Publish JTI Revocation"| Redis
Redis -.->|"Pub/Sub Channel (<=100ms)"| PubSubLis
PubSubLis -->|"Invalidate Local LRU"| AuthMid
AuthMid -->|"Verified Identity Claims"| PEP
PEP -->|"Build Evaluation Context"| Resolver
Resolver -.->|"Query Vectors"| Redis
Resolver -->|"Vector (S, A, R, E)"| OPA
OPA -->|"ALLOW / DENY (<5ms SLA)"| PEP
PEP -->|"Authorized Traffic"| Proxy
Proxy -->|"Reverse Proxy Forward"| Upstream
PEP -.->|"Async Decision Record"| AuditLog
AuditLog -->|"Hash Chain Generation"| HashChain
HashChain -->|"Append-Only Immutable Write"| Postgres