Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
enterprise-abac-gateway — Go 语言实现的零信任反向代理与 ABAC 授权网关,内置 OPA 策略评估与分布式令牌吊销功能。 | Kitploit
工具/GitLabGitLab/kavryxdev-group/enterprise-abac-gateway
身份验证与授权防御工具Web代理与拦截网络安全云安全身份与访问管理 (IAM)
GitLabkavryxdev-group/enterprise-abac-gateway

enterprise-abac-gateway

Go 语言实现的零信任反向代理与 ABAC 授权网关,内置 OPA 策略评估与分布式令牌吊销功能。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
2914小时22分前尚未审核

🛡️ 企业级细粒度基于属性的访问控制(ABAC)网关

Go Version OPA Engine Redis Cache PostgreSQL NIST Compliance Latency SLA License

基于 Go 构建的高性能、零信任反向代理与授权网关,内置 Open Policy Agent(OPA)引擎,决策延迟低于 5ms,通过 Redis Pub/Sub 实现实时分布式令牌吊销,并提供密码学防篡改审计日志。


📌 执行概览

现代云原生与多租户平台所需的授权范式,其粒度远超静态的基于角色的访问控制(RBAC)。在高保障环境中,授权必须动态综合请求者身份(主体)、其试图执行的操作(动作)、适用的数据分类(资源)以及实时运行上下文(环境)。

企业级细粒度 ABAC 网关作为集中式策略执行点(PEP)与策略决策点(PDP),前置部署于后端微服务之前。该网关依据 NIST SP 800-162(ABAC)、NIST SP 800-207(零信任架构)及 RFC 7519(JSON Web Tokens)设计,通过将 Rego 策略直接编译进 Go 进程内存空间来消除授权延迟,避免进程外网络跳转,同时保持集群实例间的分布式一致性。

🌟 核心能力

  • ⚡ 低于 5ms 的决策延迟 SLA($T_{\text{eval}} \le 5.0\text{ ms (p99)}$): 借助嵌入式 OPA 在 Go 中实现内存内属性解析与本地策略编译,消除热路径授权期间的阻塞式数据库往返。
  • 🎯 四维向量评估($S, A, R, E$): 跨主体(角色、租户、许可级别、MFA 状态)、动作(动词、幂等性分类)、资源(分类、租户所有者、生命周期标签)与环境(客户端 IP/CIDR、营业时间、设备信任态势)动态计算决策。
  • 🔄 实时分布式失效($\le 100\text{ ms}$): 紧急令牌吊销(JTI)与角色变更通过 Redis Pub/Sub 立即传播至所有网关实例,在 100ms 内更新内存中的 LRU 缓存。
  • 🔒 密码学防篡改审计链: 每个授权结果(ALLOW / DENY)均记录于仅追加的 SHA-256 哈希链($\text{Hash}n = \text{SHA-256}(\text{Hash}{n-1} + \text{Snapshot}_n)$)中,并异步持久化至 PostgreSQL,用于 SOC 2 Type II 与 ISO 27001 审计追踪。
  • 🏢 坚不可摧的多租户隔离: 在路由与策略层以密码学与逻辑方式强制实现租户组织间的完全隔离,采用默认拒绝的失效关闭语义。
  • 🚨 紧急破窗协议: 为关键事件提供受管控的绕过路径,附带强制审计义务与自动租户边界遏制。

📐 系统架构

网关被划分为超低延迟的数据平面(HTTP 反向代理与内存 PDP)、隔离的控制平面(用于策略与吊销管理的 Admin API),以及具备弹性的状态与持久化层(Redis 7 与 PostgreSQL 16)。

交互式架构图(Archify)

System Architecture
图 1:使用 Archify 生成的高层系统架构图。
👉 🔍 点击此处打开交互式 Archify 架构图 (支持深色/浅色主题、可点击节点以及深度组件检查)


原生系统架构图

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

组件分解与信任边界

组件层级描述安全与可靠性保证
认证中间件 (proxy/auth_middleware.go)边界入口验证 HMAC 签名的 JWT 令牌,校验签发者/受众,强制执行时钟偏移容差($\pm 30\text{s}$),并检查本地 JTI 黑名单。在策略执行开始之前,在边界处拒绝过期、被篡改或已被列入黑名单的令牌。
ABAC 拦截器 (proxy/abac_interceptor.go)执行点 (PEP)拦截 HTTP 请求,协调属性解析与策略评估,并决定是转发还是失败关闭。强制执行默认拒绝语义。捕获并记录所有拒绝原因,以便进行安全审计。
属性解析器 (engine/resolver.go)上下文丰富合成四个评估向量($S, A, R, E$),结合 JWT 声明、URI 参数和缓存的租户元数据。内存查找避免了在授权热路径上阻塞 SQL 查询。
嵌入式 OPA 引擎 (engine/opa.go)决策点 (PDP)进程内 Open Policy Agent 评估器,运行预编译的 Rego 策略(rbac_fallback.rego 和 abac_enterprise.rego)。在内存中评估复杂的多属性规则,严格满足 $\le 5.0\text{ms}$ p99 延迟 SLA。
反向代理 (proxy/reverse_proxy.go)数据平面转发器高吞吐量 Go 反向代理,将授权请求转发到目标后端微服务。保留上游头部,注入已认证的主体上下文,并流式传输响应。
PubSub 监听器 (cache/pubsub_listener.go)失效同步订阅 Redis abac:v1:invalidate 频道,将令牌和策略变更传播到内存缓存。保证在 $\le 100\text{ms}$ 内跨所有网关副本的分布式缓存失效。
审计日志记录器与链式器 (audit/logger.go)审计管道有界异步工作池,为每个决策计算连续的 SHA-256 哈希链。非阻塞环形缓冲区确保审计写入永远不会限制代理流量,同时确保在正常负载下零事件丢失。
管理 API (cmd/admin_api)控制平面端口 8082 上的专用管理服务,用于紧急令牌撤销(POST /admin/revoke)和健康监控。通过严格的静态管理员凭据(ABAC_ADMIN_KEY)进行认证,与公共数据平面流量隔离。

🔄 核心工作流与请求生命周期

每个入站请求都经过三阶段管道:入口与令牌验证、内存属性解析与策略决策,以及授权代理与加密审计日志记录。

交互式工作流图 (Archify)

请求生命周期
图 2:使用 Archify 生成的端到端请求生命周期与策略决策管道。
👉 🔍 点击此处打开交互式 Archify 工作流


原生序列图

sequenceDiagram
    autonumber
    actor Client as Client App
    participant PEP as Gateway PEP (:8080)
    participant Auth as Auth Middleware
    participant Cache as Redis 7 Cache
    participant Resolver as Attribute Resolver
    participant OPA as Embedded OPA
    participant Upstream as Target Upstream (:8081)
    participant Audit as Async Audit Logger
    participant DB as PostgreSQL 16

    Client->>PEP: GET /api/v1/records/1 (Bearer JWT)
    PEP->>Auth: Verify Signature & Clock Skew
    Auth->>Cache: Check JTI Revocation Blacklist (Local LRU / Redis)
    Cache-->>Auth: Token Active (Not Blacklisted)
    Auth-->>PEP: Valid Identity & Tenant Claims

    PEP->>Resolver: Assemble Attributes (S, A, R, E)
    Resolver-->>Cache: Fetch Dynamic Tenant Context
    Cache-->>Resolver: Return Attribute Vector
    Resolver->>OPA: In-Memory Rego Evaluation f(S, A, R, E)
    OPA-->>PEP: Decision: ALLOW (p99 < 5.0ms)

    par Reverse Proxy to Upstream
        PEP->>Upstream: Forward Authorized Request
        Upstream-->>PEP: 200 OK + Upstream Payload
        PEP-->>Client: 200 OK HTTP Response
    and Non-Blocking Cryptographic Audit Ledger
        PEP-)Audit: Enqueue Decision Snapshot (Buffered Channel)
        Audit->>DB: Append SHA-256 Tamper-Evident Hash Chain
    end

请求生命周期分步说明

下载工具