View a markdown version of this page

指定访问网关目标的授权类型和凭证 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

指定访问网关目标的授权类型和凭证

在CreateGatewayTarget请求正文中,您在credentialProviderConfigurations阵列中指定凭证提供者配置。配置取决于您设置的出站授权类型。有关凭证提供者配置的 API 结构的参考信息,请参阅CredentialProviderConfiguration。有关出站授权的更多信息,请参阅为网关设置出站授权。

要了解有关凭证提供者配置的更多信息,请选择一个主题:

AgentCore 网关服务角色 (IAM) 授权

如果您通过 AgentCore 网关服务角色对目标使用 IAM 授权,请将指定credentialProviderType为GATEWAY_IAM_ROLE。配置取决于您的目标类型。

适用于 Lambda、API 网关、Smithy 和 Connector 目标

不需要进行iamCredentialProvider配置,因为 AgentCore 网关服务已经知道目标服务名称。仅使用credentialProviderType配置,如以下示例所示:

{ "credentialProviderType": "GATEWAY_IAM_ROLE" }

适用于 MCP 服务器和 OpenAPI 目标

对于 MCP 服务器和 OpenAPI 目标,您还必须提供用于AWS 签名版本 4 (Sig V4) 签名的服务名称。iamCredentialProviderservice 字段为必填项。该region字段是可选的,默认为网关的区域。

{ "credentialProviderType": "GATEWAY_IAM_ROLE", "credentialProvider": { "iamCredentialProvider": { "service": "execute-api", "region": "us-west-2" } } }

下表描述了iamCredentialProvider对象中的字段:

字段 必填 描述

service

是

用于 SigV4 签名的 AWS 服务名称。该值必须与目标在验证 SigV4 签名时期望的服务名称相匹配。以下是常用值:

  • bedrock-agentcore— 适用于托管在 Amazon Bedrock 上的 MCP 服务器 AgentCore,例如运行时(请参阅在 AgentCore 运行时部署 MCP 服务器)或其他网关。

  • execute-api— 适用于亚马逊 API Gateway 背后的 MCP 服务器或 OpenAPI 目标。

  • lambda— 适用于 Lambda 函数 URL 后面的 MCP 服务器。

region

否

用于 SigV4 签名的 AWS 区域。如果省略,则默认为网关的区域。

OAuth 授权

如果您使用的是 OAuth 授权,则将指定为。credentialProviderType OAUTH在credentialProvider字段映射到的对象中,将oauthCredentialProvider字段名称映射到OAuthCredentialProvider对象,并根据您的出站授权设置提供值。

的结构因您设置的身份验证模式类型而OAuthCredentialProvider异。要了解有关不同身份验证模式的更多信息,请参阅支持的身份验证模式。

  • 如果您设置了机器间身份验证(也称为客户端凭据授予或双边 OAuth (2LO)),请遵循客户端凭据选项卡中的结构。

  • 如果您设置了用户委托访问权限(也称为授权码授予或三段式 OAuth (3LO)),请按照授权码选项卡中的结构进行操作。

  • 如果您设置代理令牌交换以将经过身份验证的用户的身份传播到下游服务或使用参与者上下文获取访问令牌,请按照令牌交换 () 选项卡中的结构进行操作。On-behalf-of

选择以下方法之一:

例
Client credentials
  1. 指定grantType为CLIENT_CREDENTIALS,如以下示例所示:

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "CLIENT_CREDENTIALS", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }
Authorization code
  1. 指定grantType为,AUTHORIZATION_CODE并在defaultReturnUrl字段中包含获取授权码后将最终用户的浏览器重定向到的 URL,如以下示例所示:

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "AUTHORIZATION_CODE", "defaultReturnUrl": "string", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }

    要了解有关 3LO 身份验证的更多信息,请参阅 OAuth 2.0 授权 URL 会话绑定。

Token exchange (On-behalf-of)
  1. 将 grantType 指定为 TOKEN_EXCHANGE。网关通过凭证提供商将入站用户的访问令牌交换为目标范围的令牌。在中包含任何 IdP-specific 参数customParameters。有关配置凭证提供商的更多信息,请参阅On-behalf-of 令牌交换。

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "TOKEN_EXCHANGE", "scopes": [ "string", ... ], "customParameters": { "subject_token_type": "urn:ietf:params:oauth:token-type:access_token" } } } }
    注意

    该customParameters字段将值直接传递到身份提供商的令牌端点。所需参数因提供商而异。例如,除了,Okta 还需要subject_token_type一个audience参数。有关详细信息,请参阅您的身份提供商的文档和On-behalf-of 代币交换。

API 密钥授权

如果您设置 API 密钥授权,则将指定credentialProviderType为API_KEY。在credentialProvider字段映射到的对象中,将apiKeyCredentialProvider字段名称映射到ApiKeyCredentialProvider对象,并根据您的出站授权设置提供值。以下 JSON 显示了结构:

{ "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "string", "credentialLocation": "HEADER" | "QUERY_PARAMETER", "credentialParameterName": "string", "credentialPrefix": "string" } } }

来电者 IAM 证书授权

如果您希望网关使用调用者的 IAM 身份和权限来签署向下游目标发出的请求,请指定 credentialProviderType as CALLER_IAM_CREDENTIALS。使用这种授权类型,网关代表网关调用方使用 SigV4 向下游目标发出请求。这允许下游目标根据最初调用网关的人来应用 IAM 策略。

注意

CALLER_IAM_CREDENTIALS仅适用于具有AWS_IAM或AUTHENTICATE_ONLY作为授权方类型的网关。

{ "credentialProviderType": "CALLER_IAM_CREDENTIALS" }

JWT 直通授权

如果您希望网关在不修改的情况下将传入请求中的持有者令牌直接传递到下游目标,请将指定credentialProviderType为JWT_PASSTHROUGH。网关验证入站令牌,然后在出站请求中将其转发给目标。当目标服务使用原始调用者的令牌处理自己的授权时,这很有用。

注意

JWT_PASSTHROUGH仅适用于 HTTP 目标(直通和 AgentCore 运行时)。

{ "credentialProviderType": "JWT_PASSTHROUGH" }