

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

A PingOne plataforma da Ping Identity pode ser configurada como um provedor de credenciais de AgentCore identidade para acesso externo a recursos. Isso permite que seus agentes autentiquem usuários por meio PingOne do serviço OAuth2 e obtenham tokens de acesso aos recursos da API. PingOne 

## Saída
<a name="identity-idp-pingidentity-outbound"></a>

**nota**  
Você só pode configurar um aplicativo PingOne OAuth2 como uma federação de usuários ou cliente M2M OAuth2, mas não ambos.

**nota**  
AgentCore A identidade emite uma URL exclusiva de retorno de chamada do OAuth2 para cada provedor de credenciais que você cria. O URL de retorno de chamada exclusivo permite a vinculação de sessão, o que protege a troca do código de autorização do OAuth2 contra repetições e CSRF-style ataques entre provedores, garantindo que uma resposta de autorização só possa ser resgatada contra o provedor de credenciais específico que a iniciou. Como o URL é exclusivo por provedor, você não o saberá até **depois** de ligar`CreateOauth2CredentialProvider`. Crie seu aplicativo PingOne OAuth2 primeiro e depois retorne ao console PingOne administrativo para registrar o URL de retorno de chamada depois que o AgentCore Identity o emitir.

 **Etapa 1: Criar o aplicativo Ping Identity OAuth2** 

Use o procedimento a seguir para configurar um aplicativo PingOne OAuth2 e obter as credenciais de cliente necessárias para o Identity. AgentCore Se você estiver configurando um cliente de federação de usuários, registrará o URI de redirecionamento na Etapa 3, depois que o AgentCore Identity emitir o URL de retorno de chamada exclusivo.

 **Para configurar um aplicativo PingOne OAuth2** 

1. Faça login no PingOne Admin Console.

1. Na barra de navegação, em **Aplicativos**, escolha **Aplicativo**.

1. Na página, escolha o ícone **\+** ao lado de **Aplicativos** para criar um novo aplicativo.

1. Para configurar seu aplicativo como um cliente M2M OAuth2:
   + Selecione **Credenciais do cliente** para o tipo de concessão.
   + Selecione **Client Secret Post** para o método de autenticação do Token Endpoint.
   + Crie um recurso personalizado em Aplicativos→Recursos nas guias, incluindo um escopo. Em seguida, adicione esse escopo ao aplicativo na guia **Recursos** pessoais. Em seguida, certifique-se de que o escopo esteja presente no campo 'escopos' do GetResourceOauth2AccessToken.

1. Para configurar seu aplicativo como um cliente Oauth2 de federação de usuários:
   + Selecione **Código** para o tipo de resposta.
   + Selecione **Código de autorização** para o tipo de concessão.
   + Selecione **Client Secret Basic** para o método de autenticação do Token Endpoint.
   + Deixe a lista de URI de redirecionamento vazia por enquanto — você adicionará a URL de retorno de chamada exclusiva na Etapa 3.

Para obter mais detalhes, consulte a [documentação da PingOne API do Ping Identity](https://apidocs.pingidentity.com/pingone/getting-started/v1/api).

 **Etapa 2: criar o provedor de credenciais de AgentCore identidade** 

Para configurar PingOne como um provedor de recursos de saída, use o seguinte:

```
{
  "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"
    }
  }
}
```

Para usar a [troca de tokens PingIdentity OAuth 2.0 para delegação](https://docs.pingidentity.com/pingone/use_cases/p1_oauth_2_token_exchange_delegation.html), use o provedor personalizado para configuração avançada. Para obter detalhes, consulte [troca de On-behalf-of tokens com 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"
        }
      }
    }
  }
}
```

Para usar a [troca de tokens PingIdentity OAuth 2.0 para representação, use um provedor personalizado para configuração](https://docs.pingidentity.com/pingone/use_cases/p1_oauth_2_token_exchange_impersonation.html) avançada. Para obter detalhes, consulte [troca de On-behalf-of tokens com 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"
        }
      }
    }
  }
}
```

A [CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html)resposta inclui um `callbackUrl` campo. Esse URL é exclusivo desse provedor de credenciais e se parece com:`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. Salve esse valor para a próxima etapa.

**nota**  
O URL de retorno de chamada exclusivo só se aplica aos clientes da federação de usuários. Se você configurou PingOne como um cliente M2M, nenhum registro de URL de retorno de chamada é necessário.

 **Etapa 3: registre o URL de retorno de chamada exclusivo com PingOne** 

Retorne ao console de PingOne administração e adicione o URL de retorno de chamada exclusivo à lista de URI de redirecionamento do seu aplicativo de federação de usuários.

1. Faça login no PingOne Admin Console e abra o aplicativo que você criou na Etapa 1.

1. Adicione o `callbackUrl` valor retornado por `CreateOauth2CredentialProvider` à configuração do URI de redirecionamento do aplicativo.

1. Salve as alterações.