桃子桃子快讯
返回首页
产品功能

Bedrock AgentCore Identity 支持 Private Key JWT 认证

AWS Bedrock AgentCore Identity 新增 Private Key JWT 客户端认证,私钥托管…

2026.07.30 · 周四6 分钟阅读

AWS 宣布 Amazon Bedrock AgentCore Identity 新增 Private Key JWT 客户端认证能力。借助该机制,智能体(agent)可使用签名后的 JWT client assertion 向下游 OAuth 2.0 身份提供商的 token 端点进行认证,而不再依赖共享的 client secret。用户可将公钥注册到身份提供商,私钥则保留在 AWS Key Management Service(KMS)中,由 AgentCore Identity 调用 KMS 完成签名。

工作流程

以客服智能体读取用户订单历史为例,整体请求链路如下:

  • 智能体调用 AgentCore Identity 的 GetResourceOauth2Token,请求下游 orders API 的访问令牌。
  • AgentCore Identity 从 credential provider 读取 client ID、KMS Key ARN 和签名算法,构造一个短生命周期的 JWT client assertion(可附加 header 或 payload claim,如 kid、证书指纹等),并使用配置好的算法(RS256、PS256 或 ES256)对 KMS 非对称签名密钥调用 kms:Sign
  • AWS KMS 完成签名后返回签名结果,私钥始终不离开 KMS。
  • AgentCore Identity 将签名后的断言以 grant_type=client_credentialsclient_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer 提交到身份提供商的 token 端点。
  • 身份提供商使用事先注册的公钥验签,签发访问令牌返回给 AgentCore Identity,再由其转交给智能体。
  • 智能体使用该访问令牌调用 orders API,获取订单数据。

支持的授权流程

Private Key JWT 认证可应用于三种 grant flow:

  • Machine-to-machine(M2M):智能体代表自身访问资源,无人类用户参与,例如后台数据同步任务或所有客服智能体均可读取的服务。使用 client_credentials grant,令牌的 subject 即 client 本身。
  • On-behalf-of(OBO):智能体代表特定用户操作,使用用户已有的入站令牌换取下游令牌,以延续该用户的身份与权限。可采用 RFC 8693 token exchange 或 RFC 7523 JWT authorization grant,具体取决于身份提供商。
  • 用户授权委派(user-delegated access):没有既有令牌可供交换,用户先通过交互式登录与授权(即 authorization code / three-legged OAuth 流程)授予智能体相应权限,智能体随后获得代表该用户的令牌。

准备工作

启用该认证方式前,需具备以下条件:

  • 一个可访问 KMS、AgentCore 和 CloudTrail 控制台的 AWS 账户。
  • 在目标身份提供商上拥有一个租户,并能为应用注册公钥。
  • 身份提供商的 Discovery URL 与 Client ID。
  • 确认身份提供商要求的签名算法,且该算法与 AWS KMS、AgentCore Identity 同时兼容。
  • 流程各环节所需的 IAM 权限,包括 kms:CreateKeykms:PutKeyPolicy(创建密钥)、kms:GetPublicKey(导出公钥,若需导入私钥还需 kms:GetParametersForImportkms:ImportKeyMaterial),以及 bedrock-agentcore-control:CreateOauth2CredentialProvider(创建 credential provider)。

配置步骤概览

在 AWS Management Console 上配置 Private Key JWT 的主要步骤如下:

  • 创建 KMS 签名密钥:在与 credential provider 相同的区域打开 KMS 控制台,选择「Customer managed keys」并创建新密钥,Key type 选 Asymmetric,Key usage 选 Sign and verify,Key spec 依据签名算法选取,例如 ES256 对应 ECC_NIST_P256
  • 注册公钥到 IdP:将该 KMS 密钥的公钥导出并注册到身份提供商;若 IdP 已生成密钥对并提供私钥材料,也可将其导入到 KMS。
  • 配置 credential provider:在 AgentCore 控制台创建 OAuth2 credential provider,将 client ID、KMS Key ARN、签名算法与 Discovery URL 等信息填入,并将 client authentication method 设为 Private Key JWT。
  • 验证审计:完成配置后,可通过 CloudTrail 查看 kms:Sign 调用记录以及 AgentCore Identity 的相关事件,以审计智能体的令牌获取行为。

Private Key JWT 的引入使 Bedrock AgentCore Identity 在面向下游 IdP 时具备更强的非对称签名能力,私钥始终托管于 KMS,降低了 client secret 泄露带来的风险。

信源