

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

# Ping Identity
<a name="identity-idp-pingidentity"></a>

Ping Identity 的 PingOne 平台可以配置为用于出站资源访问的 AgentCore 身份凭证提供商。这允许您的代理通过 PingOne OAuth2 服务对用户进行身份验证，并获取 PingOne API 资源的访问令牌。

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

**注意**  
您只能将 PingOne OAuth2 应用程序配置为用户联盟或 M2M OAuth2 客户端，但不能同时配置两者。

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

 **步骤 1：创建 Ping Identity OAuth2 应用程序 ** 

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

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

1. 登录 PingOne 管理员控制台。

1. 在导航栏的 “**应用程序” 下**，选择 “**应用程序” **。

1. 在页面上，选择 “**应用程序” 旁边的 “**\+**” 图标**以创建新应用程序。

1. 要将您的应用程序配置为 M2M OAuth2 客户端，请执行以下操作：
   + **为 “授权类型” 选择 “**客户证书”。
   + **为令牌端点身份验证方法选择 “**客户端密文”。
   + 在选项卡中的 “应用程序” → “资源” 下创建自定义资源，包括作用域。然后，将该范围添加到应用程序的 “个人**资源**” 选项卡下。然后，确保范围存在于的 “范围” 字段中 GetResourceOauth2AccessToken。

1. 要将您的应用程序配置为用户联盟 Oauth2 客户端，请执行以下操作：
   + **为 “响应类型” 选择 “**代码”。
   + **为**授权类型选择授权码。
   + **为令牌终端节点身份验证方法选择 “基本**客户端密钥”。
   + 暂时将重定向 URI 列表留空——您将在步骤 3 中添加唯一的回调 URL。

有关更多详细信息，请参阅 [ Ping Identity 的 PingOne API 文档](https://apidocs.pingidentity.com/pingone/getting-started/v1/api)。

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

要配置 PingOne 为出站资源提供者，请使用以下内容：

```
{
  "name": "PingOne",
  "credentialProviderVendor": "PingOneOauth2",
  "oauth2ProviderConfigInput" : {
    "includedOauth2ProviderConfig": {
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "authorizationEndpoint": "https://auth.pingone.com/your-env-id/as/authorize",
      "tokenEndpoint": "https://auth.pingone.com/your-env-id/as/token",
      "issuer": "https://auth.pingone.com/your-env-id/as"
    }
  }
}
```

要使用 [ PingIdentity OAuth 2.0 令牌交换进行委托](https://docs.pingidentity.com/pingone/use_cases/p1_oauth_2_token_exchange_delegation.html)，请使用自定义提供商进行高级配置。有关详细信息，请参阅使用 Id AgentCore entity 进行[On-behalf-of 代币交换](on-behalf-of-token-exchange.md)。

```
{
  "name": "PingOne",
  "credentialProviderVendor": "CustomOauth2",
  "oauth2ProviderConfigInput": {
    "customOauth2ProviderConfig": {
      "clientAuthenticationMethod": "CLIENT_SECRET_BASIC",
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "oauthDiscovery": {
        "authorizationServerMetadata": {
          "authorizationEndpoint": "https://auth.pingone.com/your-env-id/as/authorize",
          "tokenEndpoint": "https://auth.pingone.com/your-env-id/as/token",
          "issuer": "https://auth.pingone.com/your-env-id/as"
        }
      },
      "onBehalfOfTokenExchangeConfig": {
        "grantType": "TOKEN_EXCHANGE",
        "tokenExchangeGrantTypeConfig": {
          "actorTokenContent": "M2M"
        }
      }
    }
  }
}
```

要使用 [ PingIdentity OAuth 2.0 令牌交换进行模拟](https://docs.pingidentity.com/pingone/use_cases/p1_oauth_2_token_exchange_impersonation.html)，请使用自定义提供商进行高级配置。有关详细信息，请参阅使用 Id AgentCore entity 进行[On-behalf-of 代币交换](on-behalf-of-token-exchange.md)。

```
{
  "name": "PingOne",
  "credentialProviderVendor": "CustomOauth2",
  "oauth2ProviderConfigInput": {
    "customOauth2ProviderConfig": {
      "clientAuthenticationMethod": "CLIENT_SECRET_BASIC",
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "oauthDiscovery": {
        "authorizationServerMetadata": {
          "authorizationEndpoint": "https://auth.pingone.com/your-env-id/as/authorize",
          "tokenEndpoint": "https://auth.pingone.com/your-env-id/as/token",
          "issuer": "https://auth.pingone.com/your-env-id/as"
        }
      },
      "onBehalfOfTokenExchangeConfig": {
        "grantType": "TOKEN_EXCHANGE",
        "tokenExchangeGrantTypeConfig": {
          "actorTokenContent": "NONE"
        }
      }
    }
  }
}
```

[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`. 保存此值以供下一步使用。

**注意**  
唯一的回调 URL 仅适用于用户联盟客户端。如果您配置 PingOne 为 M2M 客户端，则无需注册回调 URL。

 **第 3 步：使用注册唯一的回传 URL PingOne ** 

返回 PingOne 管理员控制台，将唯一的回调 URL 添加到用户联盟应用程序的重定向 URI 列表中。

1. 登录 PingOne 管理员控制台并打开您在步骤 1 中创建的应用程序。

1. 将返回的`callbackUrl`值添加到应用程序的重定向 URI 配置中。`CreateOauth2CredentialProvider`

1. 保存更改。