View a markdown version of this page

配置入站 JWT 授权器 - 亚马逊基岩 AgentCore

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

配置入站 JWT 授权器

入站授权方对传入的 OAuth 2.0 API 请求进行身份验证并授权向 Runtime 和 Gateway 发出的请求。 AgentCore AgentCore 在允许访问代理或网关之前,它会验证 JSON 网络令牌 (JWT)。授权方与身份提供商 (IdP) 无关,可与任何兼容 OAuth 2.0 的身份提供商一起使用。当 AgentCore Runtime 或 AgentCore Gateway 收到入站请求时,授权者将使用配置的发现 URL 来获取公钥和授权服务器端点来执行 JWT 验证。您可以根据您的 IdP 和允许的授权范围或声明来配置授权方。

配置入站授权器

通过在代理或网关创建期间提供授权方配置,您可以将代理运行时(参见 CreateAgentRuntime CreateGateway)或网关(参见)配置为接受 JWT 持有者令牌。 AgentCore 运行时或 AgentCore 网关的授权配置(参见 CustomJWTAuthorizerConfiguration)相同。

  • 发现网址:必须与 OpenID Connect (OIDC) 发现网址的模式^.+/\.well-known/openid-configuration$相匹配的字符串。您可以从身份提供商处找到您的发现 URL。发现 URL 是一个特定的网址, AgentCore Identity 可以使用它来查找有关身份验证端点详细信息的信息。它允许 Id AgentCore entity 动态接受您的 OIDC 身份提供商发行的代币,无需明确加入。

  • 允许的受众:允许的受众列表, AgentCore Identity 将根据 JWT 代币中的aud声明对其进行验证。OAuth 2.0 中的受众声明 (aud) 指定了令牌适用于哪个资源服务器 (API)。在处理请求之前,资源服务器会验证aud声明以确保它是正确的接收者,从而防止令牌在非发行的其他 API 上重复使用。

  • 允许的客户端:允许的客户端标识符列表, AgentCore Identity 将根据 JWT 令牌中的client_id声明对其进行验证。OAuth 2.0 client_id 中的 A 是请求访问令牌以访问 AgentCore 运行时或 AgentCore 网关的应用程序的公共唯一标识符。它就像应用程序的用户名,将其与向授权者注册的其他客户端(应用程序)区分开来。

  • 允许的范围:允许调用运行时或网关的允许权限列表,定义为范围。如果已配置,则传入令牌中的至少一个范围值必须与其中一个配置值相匹配。OAuth 2.0 范围是一个字符串,用于定义 JWT 中定义的特定访问级别。作用域充当权限来限制应用程序可以执行的操作。

  • 必需的自定义声明(请参阅 CustomClaimValidationType):一组规则,用于将传入令牌中的特定声明与验证 JWT 令牌的预定义值进行匹配。您可以通过指定以下内容来创建规则:

    • InboundTokenClaimName:自定义声明的名称。

    • InboundTokenClaimValueType: 要STRING么是STRING_ARRAY。

    • AuthorizingClaimMatchValue:自定义声明的必填值和比较运算符。

      • ClaimMatchValue:自定义索赔的必填值。

      • ClaimMatchOperator: 如果InboundTokenClaimValueType等于STRING,则必须是EQUALS。如果InboundTokenClaimValueType等于STRING_ARRAY,则可以是CONTAINS或CONTAINS_ANY。

      • 示例:您可以定义一个强制执行的规则:Group must equal Developer。

  • 注意:配置中至少有一个字段是必填字段:允许的受众、允许的客户、允许的范围或必填的自定义声明。如果使用多个,则授权者将对它们全部进行验证。