Come posso revocare i token di aggiornamento emessi da Amazon Cognito?

4 minuti di lettura
0

Voglio utilizzare le API o gli endpoint per revocare i token di aggiornamento generati da Amazon Cognito.

Risoluzione

Puoi utilizzare le API e gli endpoint per revocare i token di aggiornamento generati da Amazon Cognito.

Nota: Puoi revocare i token di aggiornamento in tempo reale in modo che questi token di aggiornamento non possano generare token di accesso.

Prerequisiti per la revoca dei token di aggiornamento

Attiva la revoca dei token per un client dell'app per revocare i token di aggiornamento emessi da quel client dell'app. Il parametro EnableTokenRevocation è attivato per impostazione predefinita quando si crea un nuovo client del pool di utenti Amazon Cognito. Prima di poter revocare un token per un client del pool di utenti esistente, attiva la revoca del token all'interno dell'operazione API UpdateUserPoolClient. Includi le impostazioni correnti dal client dell'app e imposta il parametro EnableTokenRevocation su true.

Quando attivi le impostazioni di revoca dei token, i claim origin\ _jti e jti vengono aggiunti ai token di accesso e ID.

  • Il claim jti fornisce un identificatore univoco per i token Web JSON (JWT).
  • Il claimjti viene utilizzato per impedire che i JWT vengano rigiocati.
  • Il valore jti è una stringa con distinzione tra maiuscole e minuscole.
  • Quando il flusso di autenticazione REFRESH\ _TOKEN viene utilizzato per generare nuovi token di accesso e ID, i nuovi token di accesso e ID hanno la stessa rivendicazione di** origine\ _jti**. I claim jti sono diversi.

Per ulteriori informazioni, vedi Attivare la revoca dei token e Utilizzo dei token con i pool di utenti.

Risultati attesi della revoca dei token di aggiornamento

Per informazioni su cosa aspettarsi dalla revoca dei token di aggiornamento, incluso l'effetto sui token di accesso e sui JWT, vedi Revoca dei token e RevokeToken.

Nota: Per ulteriori informazioni su JWTS, vedi Verifica di un token Web JSON.

Utilizzo della chiamata API RevokeToken per revocare i token di aggiornamento

Il token di aggiornamento da revocare, l'ID del client dell'app e il segreto del client sono parametri necessari per chiamare l'](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)API[ RevokeToken.

Nota: Il segreto del client è richiesto solo quando l'ID client contiene un segreto.

Sintassi della richiesta:

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

Esempio di comando AWS Command Line Interface (AWS CLI):

**Nota:**Sostituisci il token <value> con le informazioni del tuo token. Sostituisci l'id del client <value> con il tuo ID client. Sostituisci il segreto del client <value> con il segreto del tuo client app.

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

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia a riga di comando di AWS, assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Esempio di comando curl:

Nota: Sostituisci <region> con la tua Regione AWS. Sostituisci <refresh token> con le informazioni del tuo token. Sostituisci <client-id> con il tuo ID client.

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

Usare l'endpoint revoke per revocare i token di aggiornamento

L'endpoint /oauth2/revoke è disponibile dopo aver aggiunto un dominio al pool di utenti. Dopo che l'endpoint ha revocato i token, non puoi utilizzare i token revocati per accedere alle API autenticate dai token Amazon Cognito. Per informazioni sull'endpoint /oauth2/revoke, inclusi i parametri di richiesta, vedi Revoke endpoint.

Esempio 1: Revoca il token con un client di app senza segreti di app:

Nota: Sostituisci <region> con la tua Regione AWS. Sostituisci <refresh token> con le informazioni del token di aggiornamento. Sostituisci <client-id> con il tuo ID client.

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>

Esempio 2: Revoca il token con un app client con segreto di app:

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>

Per informazioni sulla configurazione di un'intestazione di autorizzazione, vedi Come risolvere gli errori "Impossibile verificare l'hash segreto per il client <client-id>" dal mio pool di utenti?

Errori degli endpoint

Per ulteriori informazioni sugli errori degli endpoint, vedi Revoca un endpoint e consulta le informazioni in Risposta all'errore di revoca.

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa