View a markdown version of this page

Okta - Amazon Bedrock AgentCore
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

Okta

Okta 可以配置为用于访问 AgentCore 网关和运行时的身份提供商,也可以配置为用于出站资源访问的 AgentCore 身份凭证提供商。这允许您的代理使用 Okta 作为身份提供商和授权服务器对代理用户进行身份验证和授权,或者您的代理获得访问由 Okta 授权的资源的凭证。

入站

要将 Okta 添加为用于访问 AgentCore Gateway 和 Runtime 的身份提供商和授权服务器,您必须:

  • 配置来自您的 Okta 租户的发现 URL。这有助于 AgentCore Identity 获取与您的 OAuth 授权服务器和令牌验证密钥相关的元数据。

  • 输入代币的有效aud索赔。这有助于验证来自您的 IdP 的令牌,并允许访问包含预期声明的令牌。

配置 Okta 以进行入站身份验证

  1. 打开 Okta 开发者控制台。

  2. 在左侧导航栏中,选择应用程序。

  3. 选择创建应用程序集成。

  4. 选择 OIDC-OpenID Connect 作为应用程序的登录方法。

  5. 选择 Web 应用程序作为您的应用程序类型。

  6. 提供应用程序的名称。

  7. 根据您的需要选择授权码 and/or 客户证书。

  8. 对于Sign-in 重定向 URI,请添加您的应用程序终端节点,该终端节点将接收 Okta 令牌。

  9. 根据需要调整任务部分。

  10. 选择保存。

  11. 创建 Okta API 来代表您的应用程序:

    • 在左侧导航栏中,选择 “安全” 。

    • 转到 API 并选择 “添加授权服务器” 。

    • 按照流程创建专用于您的 Okta 租户的授权服务器。

    • 创建授权服务器后,在概述页面上选择 “访问策略” 选项卡以配置相应的访问策略。

    • 为您的应用程序所需的授权服务器定义必要的自定义范围。

  12. 为您的 Okta 租户构造发现 URL:

    https://your-tenant.okta.com/oauth2/your-authorization-server
  13. 使用以下值配置入站身份验证:

    • 发现 URL:在上一步中构造的 URL

    • 允许的受众群体:您在步骤 11 中创建 API 时提供的受众价值

有关更多详细信息,请参阅 Okta 的文档。

在访问令牌声明中添加 client_id 声明

默认情况下,Okta 不client_id将其作为标准索赔包含在其代币中。要在令牌中填充声明,您需要通过用于发行令牌的授权服务器自定义声明。

为访问令牌添加 client_id 声明

  1. 在左侧导航栏中,选择 “安全” 。转到 API 并选择您打算用于应用程序的授权服务器。

  2. 在授权服务器的详细信息页面中,选择索赔选项卡,然后选择添加声明。

  3. 将新声明命名为 client_id 并将该值设置为 app.clientID。

  4. 将 “包含在令牌类型中” 设置为 “访问令牌”。

  5. 选择保存。

有关更多详细信息,请参阅 Okta 的文档。

出站

注意

AgentCore Identity 会为您创建的每个凭证提供商颁发唯一的 OAuth2 回调 URL。独特的回调 URL 支持会话绑定,通过确保授权响应只能针对发起该请求的特定凭证提供商进行兑换,从而保护 OAuth2 授权码交换免受跨提供商重放和 CSRF-style 攻击。由于每个提供商的网址都是唯一的,所以你要等到打电话之后才会知道CreateOauth2CredentialProvider。首先创建您的 Okta OIDC 应用程序,然后在 Ident AgentCore ity 发布回调 URL 后返回 Okta 开发者控制台注册回调 URL。

第 1 步:创建 Okta OIDC 应用程序

按照入站部分中的步骤创建您的 Okta OIDC 应用程序和授权服务器。当在应用程序设置中提示输入Sign-in 重定向 URI 时,将该字段暂时留空——您将在步骤 3 中添加唯一的回调 URL。

第 2 步:创建 AgentCore 身份凭证提供商

要在 I AgentCore dentity 中将 Okta 配置为出站资源提供商,请使用以下方法:

{ "name": "Okta", "credentialProviderVendor": "OktaOauth2", "oauth2ProviderConfigInput" : { "includedOauth2ProviderConfig": { "clientId": "your-client-id", "clientSecret": "your-client-secret", "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize", "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token", "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server" } } }

要代表代币交换使用 Okta OAuth 2.0,请使用自定义提供商进行高级配置。有关详细信息,请参阅使用 Id AgentCore entity 进行On-behalf-of 代币交换。

{ "name": "Okta", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "clientAuthenticationMethod": "CLIENT_SECRET_BASIC", "clientId": "your-client-id", "clientSecret": "your-client-secret", "oauthDiscovery": { "authorizationServerMetadata": { "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize", "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token", "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server" } }, "onBehalfOfTokenExchangeConfig": { "grantType": "TOKEN_EXCHANGE", "tokenExchangeGrantTypeConfig": { "actorTokenContent": "NONE" } } } } }

CreateOauth2CredentialProvider响应包含一个callbackUrl字段。此网址是该凭证提供商所独有的,看起来像:https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. 保存此值以供下一步使用。

第 3 步:向 Okta 注册唯一的回传 URL

返回 Okta 开发者控制台,将唯一的回调 URL 添加到应用程序的Sign-in 重定向 URI 中。

  1. 登录 Okta 开发者控制台并打开您在步骤 1 中创建的 OIDC 应用程序。

  2. 打开 “常规” 选项卡并编辑 “登录” 设置。

  3. 将返回的callbackUrl值CreateOauth2CredentialProvider添加到Sign-in 重定向 URI 。

  4. 选择保存。