

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

# Okta 的 Auth0
<a name="identity-idp-auth0"></a>

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

## 入站
<a name="identity-idp-auth0-inbound"></a>

要将 Auth0 添加为用于访问 AgentCore Gateway 和 Runtime 的身份提供商和授权服务器，您必须：
+ 从 IDP 目录配置发现 URL。这有助于 AgentCore Identity 获取与您的 OAuth 授权服务器和令牌验证密钥相关的元数据。
+ 输入代币的有效`aud`索赔。这有助于验证来自您的 IDP 的令牌，并允许访问包含预期声明的令牌。

使用以下步骤设置 Auth0 并获取网关身份验证所需的配置值。

 **为入站身份验证配置 Auth0 ** 

1. 在 Auth0 中创建 API：

   1. 登录到您的 Auth0 控制面板。

   1. 打开 ** API**，然后选择**创建 API **。

   1. 输入您的 API 的名称和标识符（例如，“网关 API”）。

   1. 选择签名算法（推荐 RS256）。

   1. 选择**创建**。

1. 配置 API 范围：

   1. 在 API 设置中，转到**范围**选项卡。

   1. 添加诸如 “调用:网关” 和 “读取:网关” 之类的范围。

1. 创建应用程序：

   1. 打开**应用程序**，然后选择**创建应用程序**。

   1. 选择 “**机器对计算机应用程序” **。

   1. 选择您在步骤 1 中创建的 API。

   1. 为应用程序授予您创建的作用域的权限。

   1. 选择**创建**。

1. 记录应用程序设置中的客户端 ID 和客户端密钥。您需要这些值才能在 I AgentCore dentity 中配置 Auth0 提供商。

1. 为您的 Auth0 租户构造发现 URL：

   ```
   https://your-domain/.well-known/openid-configuration
   ```

   你{{your-domain}}的 Auth0 租户域在哪里（例如，“dev-example.us.auth0.com”）。

1. 使用以下值配置入站身份验证：

   1.  **发现 URL**：在上一步中构造的 URL

   1.  **允许的受众**：您在步骤 1 中创建的 API 标识符

## 出站
<a name="identity-idp-auth0-outbound"></a>

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

 **步骤 1：创建 Auth0 应用程序 ** 

使用以下步骤设置 Auth0 OAuth2 应用程序并获取身份所需的客户端凭证。 AgentCore 在 I AgentCore dentity 发布唯一回调 URL 后，您将在步骤 3 中注册重定向 URI。

 **配置 Auth0 OAuth2 应用程序 ** 

1. 登录到您的 Auth0 控制面板。

1. 打开**应用程序**，然后选择**创建应用程序**。

1. 输入应用程序的名称，然后选择**常规 Web 应用程序**作为应用程序类型。

1. 选择**创建**。

1. 在应用程序的 ** “**设置” 选项卡上，暂时将 “**允许的回调 URL” 留**空——您将在步骤 3 中添加唯一的回传 URL。

1. 配置应用程序所需的任何连接、范围和权限。

1. 记录应用程序设置中的**客户**端 ID ** 和客户端密钥**。您需要这些值才能在 I AgentCore dentity 中配置 Auth0 提供商。

1. 记下您的 Auth0 租户域（例如`dev-example.us.auth0.com`）。在步骤 2 中，您将使用它来构造授权、令牌和颁发者端点。

有关更多详细信息，请参阅 [ Auth0 关于创建应用程序](https://auth0.com/docs/get-started/auth0-overview/create-applications)的文档。

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

要将 Auth0 配置为出站资源提供商，请使用以下方法：

```
{
  "name": "NAME",
  "credentialProviderVendor": "Auth0Oauth2",
  "oauth2ProviderConfigInput" : {
    "includedOauth2ProviderConfig": {
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "authorizationEndpoint": "https://your-auth0-tenant.auth0.com/authorize",
      "tokenEndpoint": "https://your-auth0-tenant.auth0.com/oauth/token",
      "issuer": "https://your-auth0-tenant.auth0.com"
    }
  }
}
```

[CreateOauth2CredentialProvider](https://docs.amazonaws.cn/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html)响应包含一个`callbackUrl`字段。此网址是该凭证提供商所独有的，看起来像:`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. 保存此值以供下一步使用。

 **第 3 步：使用 Auth0 注册唯一的回调 URL ** 

返回 Auth0 控制面板，将唯一的回调 URL 添加到应用程序允许的回调中。

1. 登录您的 Auth0 仪表板并打开您在步骤 1 中创建的应用程序。

1. 在 ** “**设置” 选项卡上，将返回的`callbackUrl`值粘贴到 “**允许的回传 URL” `CreateOauth2CredentialProvider` 中**。

1. 选择**保存更改**。