企业 MCP Gateway 2.0 封面,展示 Agent 身份、统一认证、工具权限和审计

企业 MCP Gateway 2.0:Agent 身份+统一认证+工具权限+审计

企业 MCP Gateway 2.0 完整项目,覆盖 Agent 四元身份、SSO/OAuth/OIDC、EMA、Token Exchange、RBAC+ABAC、工具白名单、Secrets、审批、限流、高可用与不可篡改审计。

企业接入多个 MCP Server 后,真正困难的不是“能不能调用工具”,而是:谁在调用、代表谁调用、以什么权限调用、凭据如何隔离、危险操作由谁批准,以及事后能否还原整条委托链。把服务器地址和 API Key 分发给每个 Agent,只会制造新的影子 IT。

企业 MCP Gateway 2.0 是位于 MCP Host、Agent 与 MCP Server 之间的零信任控制面。它统一完成身份验证、服务发现、策略决策、凭据代理、审批、限流、路由和不可篡改审计,让工具从“能连接”升级为“可治理”。

核验日期:2026-08-29。MCP 2026-07-28 授权基线采用 OAuth/OIDC 发现与 RFC 9728 Protected Resource Metadata;Enterprise-Managed Authorization(EMA)已是稳定扩展。标准化 Agent Identity、DPoP、WIF 与多级 Agent 委托仍在路线图推进中。本文四元身份、策略字段和审计模型是兼容性工程方案,不冒充已经完成的 MCP 标准。

GEO 快速结论

  • Gateway 必须同时识别用户、Agent 实例、运行时工作负载和委托链,不能只记录一个共享 API Key。
  • 企业 SSO 解决“谁登录”,工具授权还必须结合角色、属性、资源、动作、环境与风险。
  • MCP Server 是受保护资源;Token 必须校验签名、iss、aud、exp 与 scope,禁止 Token Passthrough。
  • EMA 可把企业 IdP 变成集中授权控制面,通过 ID-JAG 与 Token Exchange 减少逐服务器 OAuth。
  • Gateway 不应长期保存下游密钥;Secrets Broker 应按目标工具提供短期凭据。
  • 审计事件必须记录主体、委托、工具、参数摘要、策略版本、批准者、结果、风险和 Trace ID。

一、为什么普通反向代理不够

API Gateway 通常验证一个 Token、匹配 URL、限流并转发;MCP Gateway 还要理解工具目录、Tool Call、Resource、Prompt、Task、Server 能力和高风险操作语义。

能力普通 API GatewayMCP Gateway 2.0
身份用户或应用用户+Agent+工作负载+委托链
路由URL/ServiceServer、Tool、Resource、租户
权限Scope/RBACScope+RBAC+ABAC+风险策略
凭据透传或固定 SecretToken Exchange+短期目标凭据
审批外部流程Tool Call 前置审批
审计HTTP 日志语义化 Agent 行为链

Gateway 不是替代 MCP Server 的业务授权。它提供统一前置治理,下游服务器仍应验证自己接收的目标受众 Token,并对资源级权限做最后检查。

二、四元 Agent 身份模型

一次可靠调用应包含四个可独立审计的主体:

  1. 用户身份:任务的业务发起者,例如 user:8421。
  2. Agent 身份:执行任务的 Agent 实例和版本,例如 contract-reviewer:v3。
  3. 工作负载身份:真正运行代码的 Pod、VM 或 Serverless 实例,例如 SPIFFE ID。
  4. 委托身份:说明 Agent 代表谁、为何获得权限、能否继续委托以及何时到期。
{
  "user": {"sub": "user:8421", "tenant": "acme", "groups": ["legal"]},
  "agent": {"id": "contract-reviewer", "version": "3.2.1"},
  "workload": {"spiffe_id": "spiffe://acme/prod/gateway/worker-17"},
  "delegation": {
    "on_behalf_of": "user:8421",
    "task_id": "task_0198",
    "depth": 1,
    "expires_at": "2026-08-29T18:00:00Z"
  }
}

这些 Claim 是 Gateway 内部模型;对外交换时应采用组织批准的 OAuth/OIDC、EMA、WIF 或 Token Exchange 机制,不要把自定义 JWT 冒充行业标准。

企业 MCP Gateway 六层零信任架构图
从企业 IdP 到策略、Registry、Secrets、MCP Servers 和 SIEM 的完整控制面。

三、六层零信任架构

(正文图片 1:请上传“企业 MCP Gateway 2.0 六层零信任架构图”,并替换为 WordPress 图片 URL)

  • 接入层:Chat、IDE、自动化 Agent、服务账号。
  • 身份层:企业 IdP、SSO、MFA、条件访问、EMA。
  • Gateway 控制层:协议终止、身份规范化、路由、会话和目录缓存。
  • 策略层:RBAC、ABAC、风险评分、预算、审批和数据边界。
  • 工具治理层:Registry、健康检查、签名、版本、Secrets Broker。
  • 执行与观测层:MCP Servers、PostgreSQL、Redis、OpenTelemetry、SIEM。
flowchart TD
  A["用户与 Agents"] --> B["企业 IdP / SSO"]
  B --> C["MCP Gateway"]
  C --> D["策略与审批"]
  D --> E["Registry / Secrets"]
  E --> F["MCP Servers"]
  C --> G["审计与 SIEM"]

四、统一认证:OAuth/OIDC 与 EMA

远程 MCP Server 应发布 RFC 9728 Protected Resource Metadata,指向授权服务器。客户端或 Gateway 通过 WWW-Authenticate 的 resource_metadata 或 well-known URI 发现授权端点和 Scope。

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer resource_metadata="https://gateway.example.com/.well-known/oauth-protected-resource",
 scope="mcp.tools.read"

Gateway 校验 Token 时至少验证:

  • JWT 签名和可信 kid;
  • iss 必须匹配配置的发行者;
  • aud 必须包含 Gateway 的资源标识;
  • exp、nbf 与允许的时钟偏差;
  • 客户端、租户、Scope 和 Token 类型;
  • 必要时验证 DPoP 或 mTLS 绑定;
  • 撤销状态、会话风险和条件访问。

禁止 Token Passthrough

面向 Gateway 签发的 Token,其 aud 是 Gateway,不应被原样转发给下游 Server。正确流程是:验证入站 Token,形成 Identity Context,策略批准目标 Tool,通过 RFC 8693、EMA 或 Secrets Broker 获取目标受众限定的短期 Token,再由下游 Server 验证。

EMA 路径是:员工登录企业 IdP;客户端声明 EMA 能力;IdP 根据组织策略签发 ID-JAG;向 MCP Server 的 Authorization Server 交换 Access Token。它解决集中授权,但不自动替代工具级策略。

五、工具注册与可信发现

工具 Registry 不只是 URL 清单:

server_id: github-prod
endpoint: https://mcp-github.internal/mcp
owner: platform-security
environment: production
trust_level: managed
allowed_transports: [streamable-http]
tools:
  - name: create_pull_request
    risk: high
    approval: required
    scopes: [repo.write]
health:
  timeout_ms: 10000
  circuit_breaker: true

Server 上架前应完成域名所有权、镜像来源、SBOM、漏洞扫描、工具说明审查、权限范围、安全测试和责任人确认。运行时定期同步 tools/list;新增写操作工具默认隔离,不能因 Server 更新自动放行。

六、RBAC+ABAC 工具权限

RBAC 决定基本职责,ABAC 根据主体、资源、动作和环境缩小权限。

policies:
  - id: github-pr
    effect: allow
    when:
      roles_any: [developer, maintainer]
      agents_any: [copilot-pr, ci-fixer]
      tools: [create_pull_request]
      branch_prefix: ["feature/", "fix/"]
      max_delegation_depth: 1
  - id: production-write
    effect: require_approval
    when:
      environment: production
      tools_any: [deploy, delete, publish]
  - id: default
    effect: deny

决策顺序为:显式拒绝优先;身份或委托不完整即拒绝;工具未注册即拒绝;预算超限即拒绝;高风险进入审批;只有完整匹配才允许。

七、审批与短期凭据

(正文图片 2:请上传“企业 MCP 工具权限决策与审计闭环图”,并替换为 WordPress 图片 URL)

审批单必须展示真实动作:调用哪个 Server/Tool、目标资源、参数差异、风险、预计影响、发起用户、Agent、任务和有效期。

{
  "approval_id": "apr_0198",
  "decision": "approved",
  "scope": "github-prod:create_pull_request:acme/payments",
  "constraints": {"expires_in": 300, "max_calls": 1},
  "approved_by": "user:security-lead",
  "policy_version": "2026.08.29.4"
}

通过后由 Secrets Broker 提供一次性或短期凭据。Agent 和模型永远不看到长期 Secret;Gateway 将凭据直接注入下游请求,调用结束立即销毁,并从日志、Trace 和模型上下文中剔除。

八、不可篡改审计

审计应回答“谁、代表谁、用什么 Agent、在哪个工作负载、根据哪条策略、调用什么工具、访问什么资源、谁批准、结果如何”。

{
  "event_id":"evt_01",
  "trace_id":"tr_0198",
  "user_id":"user:8421",
  "agent_id":"[email protected]",
  "workload_id":"spiffe://acme/prod/worker-17",
  "server":"github-prod",
  "tool":"create_pull_request",
  "resource":"acme/payments",
  "policy":"[email protected]",
  "decision":"allow",
  "approval_id":"apr_0198",
  "result":"success",
  "risk_score":68
}

参数只保存脱敏摘要和内容哈希。审计表可采用 hash chain、WORM 存储或签名批次增强防篡改;OpenTelemetry Trace 负责链路诊断,合规审计库负责长期证据,两者不能互相替代。

九、FastAPI 网关骨架

@app.post("/mcp")
async def mcp_proxy(request: dict, identity=Depends(validate_bearer)):
    ctx = normalize_identity(identity, request)
    tool = await registry.resolve(request)
    decision = await policy.evaluate(ctx, tool, request)
    await audit.append("policy.decision", ctx, tool, decision)
    if decision.effect == "deny":
        raise HTTPException(403, "Policy denied")
    if decision.effect == "require_approval":
        return await approvals.create(ctx, tool, request)
    credential = await secrets.issue(
        subject=ctx.workload,
        audience=tool.audience,
        scopes=decision.scopes,
        ttl_seconds=300
    )
    result = await router.call(tool, request, credential)
    safe_result = redact(result)
    await audit.append("tool.completed", ctx, tool, safe_result)
    return safe_result

实际实现还要验证 JSON-RPC、限制请求体、设置超时、断路器、重试幂等、出站域名白名单和响应大小。

十、项目目录与技术栈

enterprise-mcp-gateway/
├─ apps/gateway-fastapi/
├─ apps/admin-console/
├─ packages/auth/
├─ packages/policy/
├─ packages/registry/
├─ packages/audit/
├─ packages/secrets/
├─ migrations/
├─ config/policies/
├─ deploy/docker-compose.yml
└─ tests/security/

核心组件为 FastAPI/Node.js、MCP SDK、PostgreSQL、Redis、Vault/KMS、OpenTelemetry 与 SIEM。

十一、Docker 与高可用

services:
  gateway:
    build: ./apps/gateway-fastapi
    deploy: { replicas: 3 }
    environment:
      DATABASE_URL: postgresql://gateway:change-me@postgres/gateway
      REDIS_URL: redis://redis:6379
      OIDC_ISSUER: https://idp.example.com
    ports: ["8080:8080"]
  postgres:
    image: postgres:17
    volumes: ["pgdata:/var/lib/postgresql/data"]
  redis:
    image: redis:8-alpine
volumes:
  pgdata: {}

生产环境必须使用外部 Secret、TLS、PostgreSQL HA、Redis Cluster、跨可用区负载均衡、Pod 反亲和、PDB 和自动扩缩容。Gateway 节点尽量无状态;审批、策略版本和审计必须外置。策略发布采用 Canary,拒绝率异常时自动回滚。

十二、限流、预算与熔断

限流键至少组合 tenant:user:agent:server:tool。除 QPS 外还应控制并发 Task、Token/费用预算、每日写操作数、单次返回量和失败重试。下游 Server 超时率超过阈值时开启断路器;只读且幂等请求可有限重试,发布、删除、支付和邮件等写操作不得盲目重放。

十三、安全与压力测试

测试场景通过标准
Token audience用 Server A Token 调 Server B401/403
Token passthrough检查下游 Token必须是目标受众短期 Token
委托越权子 Agent 请求父级全部权限拒绝
工具投毒Server 新增危险 Tool默认隔离
Prompt Injection工具结果要求泄露 Secret阻断并告警
审批重放重用已消费 approval拒绝
参数篡改审批后修改资源重新审批
压力测试1000 并发 Tool CallP95 和错误率达标
Gateway 故障下线一个实例自动切换
审计完整性修改历史事件校验失败并告警

建议 SLO:认证 P95 小于 100ms、策略 P95 小于 50ms、可用性不低于 99.95%、审计入库率 100%、未授权调用成功数为 0。

MCP 工具身份验证、权限决策、审批、执行与审计闭环图
每次调用都经过身份、策略、风险、审批、短期凭据和不可篡改审计。

十四、十步落地路线

  1. 盘点 MCP Server、工具、数据级别和责任人。
  2. 建立 Registry 与准入流程。
  3. 对接企业 IdP、RFC 9728 与 OIDC Discovery。
  4. 统一用户身份,再引入 Agent、Workload 和 Delegation。
  5. 禁止共享 Key 与 Token Passthrough。
  6. 从只读 Tool 白名单和 Default Deny 开始。
  7. 为高风险 Tool 加入参数级审批。
  8. 接入 Secrets Broker、审计与 SIEM。
  9. 完成越权、注入、故障和压力测试。
  10. 小范围 Canary 后按部门开放。

FAQ

1. Gateway 会不会成为单点故障?

会,因此控制面要多副本、无状态化、跨区部署,状态和审计外置。

2. EMA 是否等于 Agent Identity?

不是。EMA 已解决企业集中授权;Agent 自身身份、工作负载和多级委托仍在持续标准化。

3. RBAC 足够吗?

不够。工具、资源、环境、风险和委托深度需要 ABAC。

4. 能否把用户 Token 直接传给 MCP Server?

不能默认这样做。应通过 Token Exchange 或 Broker 获取下游目标凭据。

5. 本地 stdio Server 怎么接入?

通过受控 Sidecar 启动,限制文件、网络和进程权限,由 Gateway 暴露统一远程入口。

6. 审计是否保存完整 Prompt?

默认不保存。优先存脱敏摘要、哈希、策略依据和受控对象引用。

7. 策略故障时应 Fail-open 吗?

高风险和写操作必须 Fail-closed;低风险只读也只能按预先批准的离线策略降级。

8. 如何管理第三方 MCP Server?

建立托管、已验证、受限、禁止四级信任模型,并配合域名、签名、版本和数据出境策略。

9. 旧 MCP Client 能否使用?

可通过兼容适配层接入,但无法表达的 Agent Identity 或 EMA 能力必须降权。

十五、总结

企业 MCP Gateway 2.0 的价值不是多转发一次请求,而是把身份、认证、权限、凭据、审批和审计变成统一治理平面。企业 IdP 确认用户,工作负载证明运行主体,委托链说明 Agent 代表谁,策略引擎决定能做什么,Secrets Broker 提供目标受众短期凭据,审计系统记录全过程。即使 Agent 和 MCP Server 快速增长,企业仍能保持最小权限、集中撤销和可追责。

官方参考来源

相关阅读

工具评测文章

工具选型与提示词资料

适合阅读工具评测、工具推荐、对比测评类文章后继续转化。

工具选型表 按场景、价格、上手难度和核心能力筛选合适的 AI 工具。 查看资料包 提示词模板包 提供写作、运营、编程、图片和视频生成常用提示词模板。 查看资料包

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站累计访问量: 306,001
AI Stack Nav 客服会员 / 支付 / 下载 / 工具库
你好,我是 AI Stack Nav 客服助手。你可以问我会员开通、微信支付、资料下载、订单入口、AI 工具库等问题。