本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Okta
Okta 可以配置为用于访问 AgentCore 网关和运行时的身份提供商,也可以配置为用于出站资源访问的 AgentCore 身份凭证提供商。这允许您的代理使用 Okta 作为身份提供商和授权服务器对代理用户进行身份验证和授权,或者您的代理获得访问由 Okta 授权的资源的凭证。
入站
要将 Okta 添加为用于访问 AgentCore Gateway 和 Runtime 的身份提供商和授权服务器,您必须:
-
配置来自您的 Okta 租户的发现 URL。这有助于 AgentCore Identity 获取与您的 OAuth 授权服务器和令牌验证密钥相关的元数据。
-
输入代币的有效
aud索赔。这有助于验证来自您的 IdP 的令牌,并允许访问包含预期声明的令牌。
配置 Okta 以进行入站身份验证
-
打开 Okta 开发者控制台。
-
在左侧导航栏中,选择应用程序。
-
选择创建应用程序集成。
-
选择 OIDC-OpenID Connect 作为应用程序的登录方法。
-
选择 Web 应用程序作为您的应用程序类型。
-
提供应用程序的名称。
-
根据您的需要选择授权码 and/or 客户证书。
-
对于Sign-in 重定向 URI,请添加您的应用程序终端节点,该终端节点将接收 Okta 令牌。
-
根据需要调整任务部分。
-
选择保存。
-
创建 Okta API 来代表您的应用程序:
-
在左侧导航栏中,选择 “安全” 。
-
转到 API 并选择 “添加授权服务器” 。
-
按照流程创建专用于您的 Okta 租户的授权服务器。
-
创建授权服务器后,在概述页面上选择 “访问策略” 选项卡以配置相应的访问策略。
-
为您的应用程序所需的授权服务器定义必要的自定义范围。
-
-
为您的 Okta 租户构造发现 URL:
https://your-tenant.okta.com/oauth2/your-authorization-server -
使用以下值配置入站身份验证:
-
发现 URL:在上一步中构造的 URL
-
允许的受众群体:您在步骤 11 中创建 API 时提供的受众价值
-
有关更多详细信息,请参阅 Okta 的文档
在访问令牌声明中添加 client_id 声明
默认情况下,Okta 不client_id将其作为标准索赔包含在其代币中。要在令牌中填充声明,您需要通过用于发行令牌的授权服务器自定义声明。
为访问令牌添加 client_id 声明
-
在左侧导航栏中,选择 “安全” 。转到 API 并选择您打算用于应用程序的授权服务器。
-
在授权服务器的详细信息页面中,选择索赔选项卡,然后选择添加声明。
-
将新声明命名为 client_id 并将该值设置为 app.clientID。
-
将 “包含在令牌类型中” 设置为 “访问令牌”。
-
选择保存。
有关更多详细信息,请参阅 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
{ "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 中。
-
登录 Okta 开发者控制台并打开您在步骤 1 中创建的 OIDC 应用程序。
-
打开 “常规” 选项卡并编辑 “登录” 设置。
-
将返回的
callbackUrl值CreateOauth2CredentialProvider添加到Sign-in 重定向 URI 。 -
选择保存。