Como revogar tokens de atualização emitidos pelo Amazon Cognito?

4 minuto de leitura
0

Quero usar APIs ou endpoints para revogar os tokens de atualização gerados pelo Amazon Cognito.

Resolução

Você pode usar APIs e endpoints para revogar tokens de atualização gerados pelo Amazon Cognito.

Observação: é possível revogar tokens de atualização em tempo real para que esses tokens de atualização não possam gerar tokens de acesso.

Pré-requisitos para revogar tokens de atualização

Ative a revogação de tokens de um cliente de aplicação para revogar os tokens de atualização emitidos por esse cliente. O parâmetro EnableTokenRevocation está ativado por padrão quando você cria um novo cliente de grupo de usuários do Amazon Cognito. Antes de revogar um token para um cliente de grupo de usuários existente, ative a revogação do tokens na operação da API UpdateUserPoolClient. Inclua as configurações atuais do seu cliente de aplicação e defina o parâmetro EnableTokenRevocation como true.

Quando você ativa configurações de revogação de token, as declarações origin_jti e jti são adicionadas aos tokens de acesso e ID.

  • A declaração jti fornece um identificador exclusivo para JSON Web Tokens (JWTs).
  • A declaração jti é usada para evitar que os JWTs sejam reproduzidos.
  • O valor de jti é uma string que diferencia maiúsculas de minúsculas.
  • Quando o fluxo de autenticação REFRESH_TOKEN é usado para gerar novos tokens de acesso e ID, esses tokens têm a mesma delcaração origin_jti. As declarações jti são diferentes.

Para obter mais informações, consulte Ativar a revogação de tokens e Usar tokens com grupos de usuários.

Resultados esperados da revogação de tokens de atualização

Para obter informações sobre o que esperar ao revogar tokens de atualização, incluindo o efeito nos tokens de acesso e nos JWTs, consulte Revogar tokens e RevokeToken.

Observação: para obter mais informações sobre JWTs, consulte Verificar um token Web JSON.

Usar a chamada de API RevokeToken para revogar tokens de atualização

O token de atualização a ser revogado, o ID do cliente da aplicação e o segredo do cliente são parâmetros necessários para chamar a API RevokeToken.

Observação: o segredo do cliente é necessário somente quando o ID do cliente tem um segredo.

Sintaxe da solicitação:

{
  "ClientId": "string",
  "ClientSecret": "string",
  "Token": "string"
}

Exemplo de comando da AWS Command Line Interface (AWS CLI):

Observação: substitua o token ** <value>** pelas informações do seu token. Substitua client-id <value> pelo seu ID de cliente. Substitua client-secret <value> pelo segredo do seu cliente de aplicação.

aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Exemplo de comando curl:

Observação: substitua <region> pela sua região da AWS. Substitua <refresh token> pelas informações do seu token. Substitua <client-id> pelo seu ID de cliente.

awscurl \
-v \
-X POST \
--service cognito-idp \
--region <region> \
-H 'X-Amz-Target: AWSCognitoIdentityProviderService.RevokeToken' \
-H 'Content-Type: application/x-amz-json-1.1' \
-d '{"ClientId": "<client-id>", "Token": "<refresh-token>"}' \
https://cognito-idp.<region>.amazonaws.com

Usar o endpoint de revogação para revogar tokens de atualização

O endpoint /oauth2/revoke fica disponível depois que você adiciona um domínio ao seu grupo de usuários. Depois que o endpoint revogar os tokens, você não poderá usar os tokens revogados para acessar as APIs que são autenticadas pelos tokens do Amazon Cognito. Para obter informações sobre o endpoint /oauth2/revoke, incluindo parâmetros de solicitação, consulte Revogar endpoint.

Exemplo 1: revogar o token com um cliente de aplicação sem segredo de aplicação:

Observação: substitua <region> pela sua região da AWS. Substitua <refresh token> pelas informações do seu token de atualização. Substitua <client-id> pelo seu ID de cliente.

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    token=<refresh token>&
    client_id=<client-id>

Exemplo 2: revogar o token com um cliente de aplicação com segredo de aplicação:

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    token=<refresh token>

Para saber mais sobre como configurar um cabeçalho de autorização, consulte Como solucionar erros "Unable to verify secret hash for client <client-id>" (Não é possível verificar o hash do segredo do cliente) do meu grupo de usuários?

Erros de endpoint

Para obter mais informações sobre erros de endpoint, consulte Revogar endpoint e revise as informações em Resposta do erro de revogação.

AWS OFICIAL
AWS OFICIALAtualizada há um ano