View a markdown version of this page

客户端身份验证方法 - Amazon Bedrock AgentCore

客户端身份验证方法

客户端身份验证方法控制 OAuth 客户端在请求访问令牌时如何使用授权服务器的令牌端点进行身份验证。

对于特定于提供商的凭证提供商,Ident AgentCore ity 会根据每个供应商的要求为您管理客户端身份验证方法,因此无需进行其他配置。

对于需要更精细控制的用例(例如使用 IAM-signed JWT 断言而不是客户端密钥进行身份验证,或者定位要求与内置供应商不同的授权服务器),请使用自定义提供程序,它允许您从以下支持的方法中进行选择。

支持的客户端身份验证方法

AgentCore Identity 支持以下客户端身份验证方法值。

  1. CLIENT_SECRET_BASIC(默认)— 根据OAuth 2.0(RFC 6749)第 2.3.1 节,从授权服务器收到客户端密钥值的客户端使用 HTTP Basic 身份验证方案向授权服务器进行身份验证。客户端 ID 和客户端密钥均为必填项。

  2. CLIENT_SECRET_POST— 根据OAuth 2.0 (RFC 6749) 第 2.3.1 节,从授权服务器收到客户端密钥值的客户端通过在请求正文中包含客户端凭据向授权服务器进行身份验证。客户端 ID 和客户端密钥均为必填项。

  3. AWS_IAM_ID_TOKEN_JWT— 根据 RFC 7523 第 2.2 节,通过发送代理执行角色的 AWS IAM-signed JWT 断言(通过 sts: 获得GetWebIdentityToken)作为客户端断言,向授权服务器的令牌端点进行身份验证。授权服务器必须支持此机制并信任 AWS IAM 作为颁发者。选择此方法时,不需要客户端密钥,并且只有用户委托的访问流程(User-delegated 访问权限(OAuth 2.0 授权码授予))才需要客户端 ID。要AWS_IAM_ID_TOKEN_JWT用作客户端身份验证方法,需要满足以下先决条件:

    1. 您的账户必须启用出站 Web 联合身份验证。使用 iam 启用它:EnableOutboundWebIdentityFederation.

    2. 调用 AWS IAM 的身份必须具有调用 sts: 的权限GetWebIdentityToken。

如何配置客户端身份验证方法

为 CustomOauth 2 配置客户端身份验证方法

要在 AWS 控制台上为自定义提供商配置客户端身份验证方法,请参阅使用自定义提供商添加 OAuth 客户端。您也可以使用 CLI 对其进行配置。

CLI 示例:使用 CLI ENT_SECRET_BASIC 作为客户端身份验证方法

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-client-basic", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientSecret": "your-client-secret", "clientAuthenticationMethod": "CLIENT_SECRET_BASIC" } } }'

CLI 示例:使用 AWS_IAM_ID_TOKEN_J WT 作为客户端身份验证方法

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-iam-jwt", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientAuthenticationMethod": "AWS_IAM_ID_TOKEN_JWT" } } }'

Notice

不建议使用客户端身份验证方法使用该tokenEndpointAuthMethods字段,但保留该字段是为了在 CLI 和 SDK 中向后兼容。在同一个请求中同时提供两者会导致验证错误。