切换深色模式
腾讯云 AI Agent 安全网关:认证接入与身份边界
核对日期:2026-10-05。场景包括公司/第三方本地 Agent 和服务器沙箱,沿用 Google 篇 的范围。本系统只负责认证,业务授权交给项目。 本次研究依据公开网关文档,没有部署腾讯云实例。
1. 结论:本轮证据支持网关认证接入
腾讯云 AI Agent 安全网关的公开能力重点包含 MCP 资产管理、防护和服务封装。产品说明 官方认证文档给出了接入现有身份源、验证 MCP 调用令牌的路径。认证配置
因此可以将它作为项目的认证执行入口,但本轮证据不足以证明它提供与 Google 或微软完全相同的 Agent 身份目录、沙箱实例证明和完整委托链。这是本次资料覆盖边界,不是“腾讯没有这些能力”的全产品结论。
2. 官方认证能力
| 入口 | 文档列出的能力 | 能证明的范围 |
|---|---|---|
| API | 企业微信等登录,以及 OIDC、LDAP、SAML、OAuth 2.0、CAS | 配置身份源下的主体 |
| MCP | OAuth 2,JWT+JWK 或令牌验证端点 | 受信任 Token 所代表的身份 |
| 免认证 | 纯代理模式 | 不提供调用者身份认证 |
MCP 配置项包括 Issuer、JWKSet 端点或令牌验证端点,远程验证还可配置客户端 ID/密钥。文档中的企业微信 AgentID 指企业微信应用标识,不是 AI Agent 工作负载身份。S2
3. 架构
以下为本系统集成设计:

图:使用 imagegen 生成。蓝色表示厂商能力,青色表示本系统集成设计;凭证交换与检查顺序以下文为准。
沙箱身份适配器是本系统需要补齐的组件,不能因网关能验 JWT 就假设它已经证明了任意云容器的来源。
4. 本地 Agent:登录不会自动验证软件来源
本系统设计:本地端采用公共客户端和浏览器授权码+PKCE。Broker 连接企业登录后,把稳定主体映射为内部用户;客户端名称、User-Agent、企业微信应用 ID 都不能替代软件来源证明。
公司客户端和第三方客户端使用各自登记信息。可增加实例密钥,但应把“持有实例密钥”和“应用来源经过证明”作为不同字段。未支持应用证明的普通桌面场景,来源输出 unverified。
本地端拿到的是面向目标项目的凭证,不是网关调用验证端点的 client secret,也不是企业微信 AppSecret。这些机密仅部署在服务端。
5. 服务器沙箱与网关后端
本系统设计:在沙箱平台验证工作负载凭证,固定平台 issuer、受众、租户和运行主体映射,再由 Broker 输出项目凭证。可独立验证云平台已有工作负载机制,但那属于额外适配,不能从这份网关文档推断已支持。
项目可以自行验签原凭证;如果采用网关转发认证结果,必须同时满足:网关清除外部同名身份头、后端只接受受认证的网关连接、身份上下文有完整性保护且绑定当前请求。单独信任 X-User-Id 无法满足这些要求。
仅配置网络不可直达还不足以证明身份头安全;需要验证网关到后端的身份,以及所有备用入口和调试路由。
6. 配置落地与缺口处理
官方配置流程在认证中心分别建立 API 或 MCP 认证。S2 本系统实施时还要核实具体应用/路由确实使用该认证配置,并执行无 Token 的负例;“创建了认证对象”不等于所有路由都已启用认证。
以下为本系统验证配置,不是腾讯云控制台原生字段:
json
{
"provider": "tencent-agent-gateway",
"validation_mode": "jwt",
"expected_issuer": "https://identity.example.com/",
"expected_audience": "urn:company:project:demo",
"jwks_uri": "https://identity.example.com/jwks.json",
"require_authenticated_route": true,
"identity_headers_from_public_clients": "reject",
"software_origin_default": "unverified"
}已查的官方页面没有展示独立 audience 配置字段。因此应在实际版本确认 audience 是否被严格验证;如果无法证明,项目端补验或改用返回并检查目标受众的验证接口。不能在文档里虚构一个云控制台的 audience 开关。
JWT 路径要确认签名、issuer、受众、有效期和算法约束;远程验证路径要确认调用方认证、Token 活跃状态、主体及受众的完整契约。验证服务不可达时不放行,返回可重试错误并告警。
7. 授权、生命周期与排障
本系统返回可信身份,项目检查数据范围、操作权限和审批规则。网关可配置的 scope 不应被描述为已经覆盖项目全部业务授权。
JWT 离线验证的撤销取决于过期时间或额外状态检查;远程验证若有缓存,也会产生撤销窗口。由项目要求决定接受的窗口并实测,不宣称任一路径天然即时撤销。
排障按链路区分:未登录、Token 无效、验证服务故障、项目无权限。审计保留用户/工作负载、网关路由、项目、结果与关联 ID;禁止记录客户端密钥或完整 Token。
8. 实施顺序与真实环境验收
先建立单个项目和认证配置,再完成原凭证或可信转发契约,最后接沙箱身份。以下均为未实测:
| 编号 | 验收动作 | 必须看到的结果 |
|---|---|---|
| T1 | 对目标路由发无凭证请求 | 拒绝,不能落到免认证代理 |
| T2 | 同 issuer 但另一项目 audience | 网关或后端明确拒绝 |
| T3 | 客户端伪造身份请求头 | 清除或拒绝,不能覆盖真实身份 |
| T4 | 绕过网关直连后端 | 不能绕过认证边界 |
| T5 | 撤销 Token 或验证端点故障 | 按契约失效,不故障放行 |
| T6 | 将企业微信 AgentID 当执行实例 | 不生成虚假的 AI Agent 认证事实 |
9. 详细设计:把网关接入做成可信认证链路
场景:企业已有统一登录系统,Agent 通过腾讯云网关访问内部 MCP 项目。目标是复用现有身份,而不是让网关创建一个无法追溯的新用户体系。以下部署、接口和故障处理均为本系统设计。
9.1 三个独立验证位置
| 位置 | 负责验证什么 | 不能省略的原因 |
|---|---|---|
| Broker | 用户登录、工作负载证据及会话关联 | 网关无法从自报 userId 还原登录事实 |
| 网关 | 进入该路由的 Token | 建立入口的认证边界 |
| 项目 | 本项目受众及业务权限,必要时复验凭证 | “网关接受”不等于“有权访问该数据” |
可以将重复验证封装为公共库或受保护的网关契约,但不能把验证责任变成无人负责的假设。
9.2 JWT 路径的具体流程
- 客户端通过 Broker 登录,取得只用于项目 C 的凭证。Broker 维护实际用户和 Agent 关联。
- 客户端请求网关的项目 C 路由。网关按绑定的认证配置取得可信 JWKSet,并检查 Token。
- 核实网关的具体版本是否执行完整 audience 检查。如果没有可验证的配置与负例证据,在项目端补验。
- 网关把原始凭证送给后端时,后端使用可信签发方和项目 C 的 audience 验证,而不是从请求中读取预期受众。
- 后端生成内部不可变认证上下文,再进入业务逻辑。项目用该上下文进行工具、资源和数据范围授权。
官方提供 JWT+JWK 配置路径,但细化检查仍应按实际产品版本验收。S2 不能因为公钥能下载,就认定 JWT 的用途与主体已经正确。
9.3 远程验证路径的具体流程
网关用服务端客户端凭证访问固定验证端点,发送待验证 Token;端点检查签名或凭证存储及当前会话状态。响应应包含明确的有效状态、稳定主体、目标受众和到期边界,具体字段需与网关支持的契约对齐。
若验证接口只返回 true,却不能区分项目 C 与 D,应为路由增加受众约束或由项目再次核验。active=true 不是通用授权许可。
网关验证端点的密钥保存在服务端密钥设施,轮换时允许受控重叠窗口。超时、返回格式错误、未知主体都不得当成认证成功;依赖故障与用户无效分别记录,避免把故障提示误导成要求用户不断登录。
9.4 两种后端交付契约
方案 A:项目复验原凭证。 网关转发 Token,项目按统一库验证。部署简单且身份来源直接,但需要各项目正确配置 issuer 和 audience。
方案 B:项目验证网关签发的内部断言。 在网关或受控伴随组件明确支持的前提下,生成短期且面向该项目的签名上下文;项目只接受受认证网关连接及对应断言。断言需绑定当前请求的必要上下文并防止跨项目、跨请求重用。这是本系统可选设计,不是本轮已核实的腾讯网关原生能力。
普通 X-User-Id 头不能替代方案 B。上线前同时检查外部同名头清理、后端直连、备用域名和健康检查等入口,避免绕过主路由的验证。
9.5 本地与沙箱的身份输出
本地登录可输出用户和已登记客户端,但没有平台证明时软件来源仍是未验证。沙箱适配器只有在验证平台凭证后才输出工作负载身份;将 Agent ID 写入请求并不能完成该步骤。
两种入口统一成项目上下文时保留 subject_kind、用户(可空)、actor、认证方式及会话 ID。没有用户的自主任务不能继承最后一个登录用户,连接池或进程全局变量中也不能缓存“当前用户”。
9.6 缓存、撤销与故障策略
远程验证缓存键应绑定完整凭证摘要、目标路由/受众与验证配置版本;缓存时效不超过 Token 剩余寿命和约定撤销窗口。不把成功结果按 userId 全局缓存,否则已撤销凭证可能借用同用户其他会话的结果。
JWT 离线模式可采用短期 Token,并由项目决定是否增加在线撤销查询。验证服务故障期间,只有仍在有效契约内的缓存结果可用;不能延长过期缓存或降级为免认证。
9.7 上线检查怎样覆盖真实风险
先确认每个项目路由绑定的认证配置,再测试正确 Token;接着使用同一签发方、另一个真实项目的 Token 测 audience 隔离。最后在直连后端、伪造身份头、验证端点停机、密钥轮换和会话撤销条件下复测。
审计分开记录网关认证结果和项目授权结果。T1—T6 的证据应能说明请求在哪一层被拒绝;只有最终 HTTP 状态、不知道拒绝来源的测试不足以证明所有边界成立。