
Proxy inverse zero-trust et passerelle d'autorisation ABAC en Go avec évaluation de politiques OPA intégrée et révocation de jetons distribuée.
Proxy inverse et passerelle d'autorisation haute performance à confiance zéro, développés en Go avec un moteur Open Policy Agent (OPA) embarqué, une latence de décision inférieure à 5 ms, une révocation de jetons distribuée en temps réel via Redis Pub/Sub, et une journalisation d'audit cryptographique inviolable.
Les plateformes cloud-native et multi-tenant modernes exigent des paradigmes d'autorisation bien plus granulaires que le contrôle d'accès statique basé sur les rôles (RBAC). Dans les environnements à haute assurance, l'autorisation doit synthétiser dynamiquement l'identité du demandeur (Sujet), l'action qu'il souhaite effectuer (Action), la classification de données applicable (Ressource) et le contexte opérationnel en temps réel (Environnement).
La passerelle ABAC à granularité fine pour l'entreprise agit comme un point d'application des politiques (PEP) et un point de décision des politiques (PDP) centralisé, placé devant les microservices backend. Conçue pour être conforme à NIST SP 800-162 (ABAC), NIST SP 800-207 (architecture Zero-Trust) et RFC 7519 (JSON Web Tokens), elle élimine la latence d'autorisation en compilant les politiques Rego directement dans l'espace mémoire du processus Go, évitant ainsi les sauts réseau hors processus tout en maintenant une cohérence distribuée entre les instances du cluster.
ALLOW / DENY) est enregistré dans une chaîne de hachage SHA-256 en ajout seul ($\text{Hash}n = \text{SHA-256}(\text{Hash}{n-1} + \text{Snapshot}_n)$) persistée de manière asynchrone dans PostgreSQL pour les pistes d'audit SOC 2 Type II et ISO 27001.La passerelle est partitionnée en un Data Plane à ultra-faible latence (proxy inverse HTTP et PDP en mémoire), un Control Plane isolé (API d'administration pour la gestion des politiques et des révocations), et des niveaux d'état et de persistance résilients (Redis 7 et PostgreSQL 16).

Figure 1 : Diagramme d'architecture système de haut niveau généré avec Archify.
👉 🔍 Cliquez ici pour ouvrir le diagramme Archify interactif (Prend en charge les thèmes sombre/clair, les nœuds cliquables et l'inspection approfondie des composants)
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