

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

Ping Identity 的 PingOne 平台可以設定為用於傳出資源存取的 AgentCore Identity 登入資料提供者。這可讓您的代理程式透過 PingOne 的 OAuth2 服務驗證使用者，並取得 PingOne API 資源的存取權杖。

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

**注意**  
您只能將 PingOne OAuth2 應用程式設定為使用者聯合或 M2M OAuth2 用戶端，但不能同時設定為兩者。

**注意**  
AgentCore Identity 會為您建立的每個登入資料提供者發出唯一的 OAuth2 回呼 URL。唯一的回呼 URL 可啟用工作階段繫結，透過確保授權回應只能針對啟動它的特定憑證提供者進行兌換，以保護 OAuth2 授權碼交換免受跨供應商重播和 CSRF 型攻擊。由於每個提供者的 URL 都是唯一的，因此在呼叫 **之前**，您都不會知道它`CreateOauth2CredentialProvider`。首先建立 PingOne OAuth2 應用程式，然後返回 PingOne 管理員主控台，在 AgentCore Identity 發出回呼 URL 後註冊回呼 URL。

 **步驟 1：建立 Ping Identity OAuth2 應用程式** 

使用下列程序來設定 PingOne OAuth2 應用程式，並取得 AgentCore Identity 的必要用戶端憑證。如果您要設定使用者聯合用戶端，您將在 AgentCore Identity 發出唯一回呼 URL 之後，在步驟 3 中註冊重新導向 URI。

 **設定 PingOne OAuth2 應用程式** 

1. 登入 PingOne 管理員主控台。

1. 在導覽列的應用程式 **** 下，選擇**應用程式**。

1. 在頁面上，選擇**應用程式**旁的 **\+** 圖示以建立新的應用程式。

1. 若要將應用程式設定為 M2M OAuth2 用戶端：
   + 選取授予類型的**用戶端登入**資料。
   + 選取權杖端點身分驗證方法的**用戶端秘密貼文**。
   + 在 標籤中的 Applications→Resources 下建立自訂資源，包括範圍。然後，將該範圍新增至應用程式的個人**資源**索引標籤下。然後，請確定範圍存在於 GetResourceOauth2AccessToken 的 'scopes' 欄位中。

1. 若要將您的應用程式設定為使用者聯合 Oauth2 用戶端：
   + 選取回應類型的**程式碼**。
   + 選取授予類型的**授權碼**。
   + 選取權杖端點身分驗證方法的**用戶端秘密基本**。
   + 現在將重新導向 URI 清單保留空白 — 您將在步驟 3 中新增唯一的回呼 URL。

如需詳細資訊，請參閱 [Ping Identity 的 PingOne API 文件](https://apidocs.pingidentity.com/pingone/getting-started/v1/api)。

 **步驟 2：建立 AgentCore Identity 登入資料提供者** 

若要將 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)，請使用自訂提供者進行進階組態。如需詳細資訊，請參閱[On-behalf-of杖與 AgentCore Identity 交換](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)，請使用自訂提供者進行進階組態。如需詳細資訊，請參閱[On-behalf-of杖與 AgentCore Identity 交換](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.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html) 回應包含 `callbackUrl` 欄位。此 URL 對此登入資料提供者是唯一的，如下所示：`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`。儲存此值以供下一個步驟使用。

**注意**  
唯一的回呼 URL 僅適用於使用者聯合用戶端。如果您將 PingOne 設定為 M2M 用戶端，則不需要回呼 URL 註冊。

 **步驟 3：向 PingOne 註冊唯一的回呼 URL** 

返回 PingOne 管理員主控台，並將唯一的回呼 URL 新增至使用者聯合應用程式的重新導向 URI 清單。

1. 登入 PingOne 管理員主控台，並開啟您在步驟 1 中建立的應用程式。

1. 將 傳回`callbackUrl`的值`CreateOauth2CredentialProvider`新增至應用程式的重新導向 URI 組態。

1. 儲存您的變更。