深度解读 · 约 4 分钟阅读
AWS 与 Keyfactor 参考架构:用用户签名委托约束代理调用
证书、请求签名、限受众令牌和吊销检查证明身份链,但不能证明数据库操作的业务正确性。
- 本站发布
- 原文发布
- 核实时间
AWS 与 Keyfactor 于 10 月 20 日介绍一套三层身份链:从用户登录,到代理之间调用,再到 MCP 工具服务。数据库示例使用 Bedrock、Strands、Keycloak 与 EJBCA Enterprise。关键区别是,代理出示一张凭据,与证明某项请求由特定且获授权的密钥持有者签署,并不是同一件事。
听读资讯
朗读当前文章,或连续收听资讯。
正在准备听读…
设备语音
朗读由浏览器或设备处理,AISubHub 不向音频 API 发送文本。可用语音及锁屏播放能力因设备而异。
继续播放时可能重复一小段。
一分钟速览
- 示例结合签名请求信封、用户签名委托和 RFC 8693 限受众令牌,最后由工具服务核对身份一致性。
- 请求新鲜度默认 60 秒;nonce 为 128 位随机值;内存防重放缓存保留 nonce 的时间是新鲜度窗口的两倍。
把用户授权与代理密钥分开
应用先认证用户,再经 RFC 8693 令牌交换取得范围更窄的令牌,使预期受众限定为受保护的 MCP 服务,而非原始会话可访问的全部服务。应用本地生成至少 2048 位 RSA 密钥,只把证书签名请求交给 EJBCA;返回证书与私钥打包存入 Secrets Manager,私钥不发送给证书机构。用户用自己的密钥签署委托,列出获准代理证书的 SHA-256 指纹与到期时间。代理携带的是授权断言,不是用户私钥或完整会话令牌;每个代理也有独立密钥。这样撤销某个代理身份时,不必先把所有代理当成同一个共享调用者。
有证书不等于请求刚刚发生
调用方以 RSA-PSS-SHA256 签署工具名、参数、时间戳和 nonce。接收方检查签名、新鲜度、nonce 唯一性、可信 CA 链、允许调用的角色及 OCSP 状态。默认 60 秒窗口和防重放缓存各有任务:旧请求会过期,刚截获但已使用过 nonce 的有效请求同样被拒绝。重试需要新信封和新 nonce,但这本身不保证重试的业务操作只执行一次。示例缓存线程安全,却只在内存中;指南将 ElastiCache 共享缓存列为分布式扩展。多副本部署必须防止一个副本忘记另一个副本已经接收过的 nonce。
工具服务汇合不同身份凭据
执行数据库操作前,参考服务检查令牌是否有效、受众是否正确,验证签名信封,核对用户委托和代理证书指纹,再交叉比对令牌用户名、委托主体与代理证书身份。角色表只允许编排代理调用数据库或邮件子代理,没有任意横向和向上调用权。AISubHub 分析:这些检查回答“谁请求、代表谁”,仍需适当的数据库权限和操作级政策。原文令牌交换示例与校验缩写采用了不同受众字符串,实现者必须让实际签发与验证配置一致,不能把零散片段当作直接可运行配置照抄。
吊销也带来可用性依赖
设计在 OCSP 不可达或任一验证失败时拒绝调用。退出流程吊销用户及三个代理的证书、删除存储秘密并结束身份提供方会话。用户证书吊销后,后续委托检查会失效;原文将逐请求 OCSP 称为即时传播机制。实际仍需验证响应器、缓存、故障和时钟条件,不能据此声称有普遍且实测的吊销延迟上界。示例证书配置有效期七天,高可用响应器、共享重放状态、轮换及审计保存都应进入验收。Guardrails 和有限工具访问可以补充身份链,但请求带签名、内容过滤通过,也不意味着每条生成操作都正确。
有什么影响
AISubHub 分析:身份与委托应在工具边界落实,而不能只写进模型提示词。身份链有效,仍不能证明生成的 SQL 合理,或业务操作符合实际政策。
限制与可用性
本文是参考架构解读,不是独立安全认证,本站没有运行实现。前提包括 Keycloak 26.2 或更新版本、带 OCSP 的 EJBCA Enterprise;部署、授权和云服务成本没有在此量化。
来源与证据
原文发布: · 核实时间:
AI 辅助采编,依据所列一手来源核实。厂商自报结论注明归属,收录不代表背书。