
Reverse proxy zero-trust e gateway di autorizzazione ABAC in Go con valutazione delle policy OPA integrata e revoca distribuita dei token.
Reverse proxy e gateway di autorizzazione zero-trust ad alte prestazioni, scritto in Go con un motore Open Policy Agent (OPA) integrato, latenza decisionale inferiore a 5 ms, revoca distribuita dei token in tempo reale tramite Redis Pub/Sub e registrazione di audit crittografica a prova di manomissione.
Le moderne piattaforme cloud-native e multi-tenant richiedono paradigmi di autorizzazione molto più granulari rispetto al controllo degli accessi basato sui ruoli (RBAC) statico. In ambienti ad alta affidabilità, l'autorizzazione deve sintetizzare dinamicamente chi è il richiedente (Soggetto), quale azione intende eseguire (Azione), quale classificazione dei dati si applica (Risorsa) e il contesto operativo in tempo reale (Ambiente).
Il Gateway ABAC aziendale a granularità fine funge da Policy Enforcement Point (PEP) e Policy Decision Point (PDP) centralizzato posto a protezione dei microservizi backend. Progettato per essere conforme a NIST SP 800-162 (ABAC), NIST SP 800-207 (architettura zero-trust) e RFC 7519 (JSON Web Tokens), elimina la latenza di autorizzazione compilando le policy Rego direttamente nello spazio di memoria del processo Go, evitando salti di rete fuori processo e mantenendo al contempo la coerenza distribuita tra le istanze del cluster.
ALLOW / DENY) viene registrato in una catena di hash SHA-256 append-only ($\text{Hash}n = \text{SHA-256}(\text{Hash}{n-1} + \text{Snapshot}_n)$) persistita in modo asincrono su PostgreSQL per le tracce di audit SOC 2 Type II e ISO 27001.Il gateway è suddiviso in un Data Plane a latenza ultra-bassa (HTTP Reverse Proxy e PDP in-memory), un Control Plane isolato (Admin API per la gestione delle policy e della revoca) e livelli di stato e persistenza resilienti (Redis 7 e PostgreSQL 16).

Figura 1: Diagramma dell'architettura di sistema ad alto livello generato con Archify.
👉 🔍 Clicca qui per aprire il diagramma interattivo Archify (Supporta temi scuri/chiari, nodi cliccabili e ispezione approfondita dei componenti)
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