

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

# 使用自定义提供商添加 OAuth 客户端
<a name="identity-add-oauth-client-custom"></a>

自定义提供程序使您能够连接到除内置提供程序选项之外的任何 OAuth2-compatible 资源服务器。您可以通过让系统自动检索配置详细信息或手动提供服务器信息来配置自定义提供程序。

 **使用自定义提供商添加 OAuth 客户端 ** 

1. 打开[AgentCore 身份](https://console.amazonaws.cn/bedrock-agentcore/identity)控制台。

1. 在**出站身份验证**部分中，选择**添加 OAuth 客户端/API 密钥**，然后选择**添加 OAuth 客户端。**

1. 对于**名称**，您可以使用自动生成的名称，也可以输入自己的描述性名称，以帮助您在账户中识别这个 OAuth 客户端。仅使用字母数字字符、连字符和下划线，最大长度为 50 个字符。

1. 对于**提供商**，选择**自定义提供商**。

1. 在**提供商配置**部分中，根据您的提供商要求，选择以下选项之一：

   1.  **Discovery URL**（推荐）-选择此选项可让 AgentCore Identity 自动从您的提供商处检索配置详细信息。您提供发现网址，您的提供商将在其中发布其 OpenID Connect 配置，Id AgentCore entity 负责处理端点发现过程。如果可用，这是推荐的方法，因为它可以减少手动配置。

      1. 对于**客户端身份验证方法**，选择用于使用身份提供商令牌端点进行身份验证的客户端身份验证方法。有关更多信息，请参阅[客户端身份验证方法](client-auth-methods.md)。

      1. 对于 ** Discovery URL**，输入您的提供商发布其 OpenID Connect 配置的网址。发现网址必须以结尾`.well-known/openid-configuration`。例如，https://{{example.com}}/.well known/openid--配置。

      1. 对于**客户端 ID**，输入您在向身份提供商注册应用程序时收到的唯一标识符。

      1. 如果**客户端身份验证方法**是`PRIVATE_KEY_JWT`，则不需要客户端密钥。对于其他方法，请为**客户端密钥选择方法选择以下选项之一**：

         1.  **提供客户端密钥 **-直接输入客户端密钥值。

            1. 对于**客户端密钥**，输入与 Ident AgentCore ity 安全存储以进行身份验证的客户端 ID 关联的机密密钥。

         1.  **通过密钥管理器提供客户端密钥 **-引用存储在 Amazon 密钥管理器中的密钥，而不是直接输入该值。

            1. 对于**密钥管理器**，输入或选择包含您的客户端密钥的密钥管理器密钥的 ARN。

            1. 对于 ** JSON 密钥**，请在您的密钥管理器密钥中输入 JSON 密钥，该密钥包含 OAuth 客户端的客户端密钥值。

   1.  **手动配置 **-当您的提供商不支持自动发现时，选择此选项可直接指定服务器信息。您将单独定义每个端点 URL，从而完全控制配置细节。

      1. 对于**客户端身份验证方法**，选择用于使用身份提供商令牌端点进行身份验证的客户端身份验证方法。有关更多信息，请参阅[客户端身份验证方法](client-auth-methods.md)。

      1. 对于**颁发者**，输入标识您的授权服务器的基本 URL。该值出现在已发行代币的`iss`索赔中，有助于验证代币的真实性。

      1. 对于**授权端点**，输入引导用户向您的应用程序授予权限的 URL。这是 OAuth 授权流程的入口点。

      1. 对于**令牌终端节点**，输入您的代理交换授权码以获取访问令牌的 URL。此端点处理凭证交换过程。

      1. （可选）在**响应类型**部分中，通过选择**添加响应类型**并选择提供商应返回的令牌格式，配置 OAuth 客户端接收身份验证响应的方式。常见类型包括`code`授权代码流或隐`token`式流。

      1. 对于**客户端 ID**，输入您在向身份提供商注册应用程序时收到的唯一标识符。

      1. 如果**客户端身份验证方法**是`PRIVATE_KEY_JWT`，则不需要客户端密钥。对于其他方法，请为**客户端密钥选择方法选择以下选项之一**：

         1.  **提供客户端密钥 **-直接输入客户端密钥值。

            1. 对于**客户端密钥**，输入与 Ident AgentCore ity 安全存储以进行身份验证的客户端 ID 关联的机密密钥。

         1.  **通过密钥管理器提供客户端密钥 **-引用存储在 Amazon 密钥管理器中的密钥，而不是直接输入该值。

            1. 对于**密钥管理器**，输入或选择包含您的客户端密钥的密钥管理器密钥的 ARN。

            1. 对于 ** JSON 密钥**，请在您的密钥管理器密钥中输入 JSON 密钥，该密钥包含 OAuth 客户端的客户端密钥值。

1. （可选）扩展**其他配置**以配置代币交换。选择以下授权类型模式之一：

   1.  **无**：不支持 On-behalf-of 代币交换

   1.  **JWT 授权授权**：使用 RFC 7523 语法代表代币交换。入站身份用作获取访问令牌的授权授权

   1.  **代币交换**：使用 RFC 8693 语法代表代币交换。这是捕捉委托关系的最新标准。您可以使用以下模式自定义 actor 代币：

      1.  **无**：请求中不会提供 Actor 代币

      1.  ** Amazon IAM ID 令牌 JWT**：使用 IA Amazon M 颁发的已签名 JWT 进行身份验证，该签名的 JWT 将呼叫 Amazon 身份表示为参与者代币

      1.  **机器对机器 (M2M)**：使用[机器对机器 (M2M) ](common-use-cases.md#machine-to-machine-auth) 访问令牌作为角色令牌进行身份验证

         1. （可选）提供 ** Actor 令牌作用域**以在身份验证时用作范围参数

1. （可选）扩展**其他配置**，配置私有终端节点，用于连接您的 VPC 内托管的身份提供商。选择以下模式之一：

   1.  **托管 VPC**：代表您 AgentCore 创建和管理 VPC 资源。这是账户内 VPC 连接的更简单选项。

      1. 对于 ** VPC**，选择您的 VPC 标识符。

      1. 对于**子网**，选择一个或多个可以网络访问您的 IdP 的子网。

      1. 对于 ** IP 地址类型**，选择`IPV4`或`IPV6`。

      1. （可选）对于**安全组**，选择允许流量流向您的 IdP 的安全组。

   1.  **Self-managed 莱迪思**：您自己创建和管理 VPC 莱迪思资源网关和资源配置。此选项支持通过 Amazon RAM 进行跨账户连接，并提供全面的监管可见性。

      1. 对于**资源配置 ARN**，请选择您的 VPC 莱迪思资源配置的 ARN。

      1. （可选）对于**域覆盖**，请输入应通过私有端点路由的其他域。当您的身份提供商终端节点（例如令牌或授权终端节点）托管在与资源配置中配置的主 IdP 域不同的域上时，请使用此选项。

1. 选择**添加 OAuth 客户端。**

有关莱迪思托管模式与自管理模式的详细比较，请参阅[支持的 VPC 出口模式。](vpc-egress-private-endpoints.md#lattice-vpc-egress-compare-modes)

完成任一配置后，Id AgentCore entity 都会安全地存储您的 OAuth 设置，并提供可在代理代码中引用的 ARN，从而无需在应用程序中嵌入敏感凭据即可启用令牌请求。您可以在 OAuth 客户端的属性页面中找到此 ARN（在 “**出站身份**验证” 部分选择客户端名称）。