

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiorna i token
<a name="amazon-cognito-user-pools-using-the-refresh-token"></a>

Puoi utilizzare il token di aggiornamento per recuperare nuovi ID e token di accesso. Di default, il token di aggiornamento scade 30 giorni dopo l'accesso dell'utente dell'app al bacino d'utenza. Quando crei un'applicazione per il bacino d'utenza, puoi impostare la scadenza del token di aggiornamento dell'applicazione su qualsiasi valore compreso tra 60 minuti e 10 anni. 

## Ottenere nuovi token di accesso e identità con un token di aggiornamento
<a name="amazon-cognito-user-pools-using-the-refresh-token_initiate-token"></a>

Amazon Cognito emette token di aggiornamento in risposta a un'autenticazione riuscita con il flusso di codice di autorizzazione all'accesso gestito e con operazioni API o metodi SDK. Il token di aggiornamento restituisce nuovi ID e token di accesso e, facoltativamente, un nuovo token di aggiornamento. È possibile utilizzare i token di aggiornamento nei seguenti modi.

**GetTokensFromRefreshToken**  
L'operazione [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)API emette nuovi ID e token di accesso da un token di aggiornamento valido. Ottieni anche un nuovo token di aggiornamento se hai abilitato la rotazione dei token di aggiornamento.

**InitiateAuth e AdminitiateAuth**  
Le operazioni [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)o [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API includono il flusso di `REFRESH_TOKEN_AUTH` autenticazione. In questo flusso, si passa un token di aggiornamento e si ottengono nuovi ID e token di accesso. Non puoi autenticarti con client interni `REFRESH_TOKEN_AUTH` all'app con rotazione dei token di [aggiornamento abilitata](#using-the-refresh-token-rotation).

**OAuth endpoint del token**  
L'[endpoint del token](token-endpoint.md) nei pool di utenti con un [dominio](cognito-user-pools-assign-domain.md) ha un tipo di `refresh_token` concessione che emette un nuovo ID, un nuovo accesso e, facoltativamente (con [rotazione del token di aggiornamento), token](#using-the-refresh-token-rotation) di aggiornamento da un token di aggiornamento valido.

## Aggiorna la rotazione dei token
<a name="using-the-refresh-token-rotation"></a>

Puoi facoltativamente configurare la rotazione dei token di aggiornamento nel client dell'app. Con la rotazione dei token di aggiornamento, il client può invalidare il token di aggiornamento originale ed emettere un nuovo token di aggiornamento ad ogni aggiornamento del token. *Quando questa impostazione è abilitata, ogni richiesta riuscita in tutte le forme di aggiornamento del token restituisce un nuovo ID, accesso e token di aggiornamento.* Quando questa impostazione è disabilitata, le richieste di aggiornamento dei token restituiscono solo nuovi token di accesso e ID e il token di aggiornamento originale rimane valido. Il nuovo token di aggiornamento è valido per la durata residua del token di aggiornamento originale. Puoi configurare [i client dell'app](user-pool-settings-client-apps.md) per ruotare i token di aggiornamento o per trasferire il token di aggiornamento originale. Per consentire nuovi tentativi per un breve periodo, puoi anche configurare un periodo di prova per il token di aggiornamento originale fino a 60 secondi.

**Cose da sapere sulla rotazione dei token di aggiornamento**
+ Dopo aver abilitato la rotazione dei token di aggiornamento, vengono aggiunte nuove attestazioni nei token web JSON dal tuo pool di utenti. Le attestazioni `origin_jti` e `jti` vengono aggiunte ai token di accesso e ID. Queste affermazioni aumentano le dimensioni di. JWTs
+ La rotazione dei token di aggiornamento non è compatibile con il flusso `REFRESH_TOKEN_AUTH` di autenticazione. Per implementare la rotazione dei token di aggiornamento, devi disabilitare questo flusso di autenticazione nel client dell'app e progettare l'applicazione per inviare richieste di aggiornamento dei token con l'operazione [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)API o il metodo SDK equivalente.
+ Con la rotazione dei token di aggiornamento inattiva, puoi completare le richieste di aggiornamento dei token con o. `GetTokensFromRefreshToken` `REFRESH_TOKEN_AUTH`
+ Quando [la memorizzazione del dispositivo](amazon-cognito-user-pools-device-tracking.md) è attiva nel tuo pool di utenti, devi fornire la chiave del dispositivo nelle richieste. `GetTokensFromRefreshToken` Se l'utente non dispone di una chiave del dispositivo confermata che l'applicazione invia nella richiesta di autenticazione iniziale, Amazon Cognito ne emette una nuova. Per aggiornare i token in questa configurazione, devi fornire una chiave del dispositivo, indipendentemente dal fatto che tu ne abbia specificata una `AuthParameters` o ne abbia ricevuta una nuova nella risposta di autenticazione.
+ Puoi passare `ClientMetadata` al trigger Lambda prima della generazione del token nella tua `GetTokensFromRefreshToken` richiesta. Questi dati, che vengono passati all'evento di input per il trigger, forniscono un contesto aggiuntivo che puoi utilizzare nella logica personalizzata della tua funzione Lambda.

Come best practice di sicurezza, abilita la rotazione dei token di aggiornamento sui client dell'app.

------
#### [ Enable refresh token rotation (console) ]

La procedura seguente attiva o disattiva la rotazione dei token di aggiornamento per il client dell'app. Questa procedura richiede un client di app esistente. Per ulteriori informazioni sulla creazione di un client per app, consulta[Impostazioni specifiche dell'applicazione con client di app](user-pool-settings-client-apps.md).

**Per abilitare la rotazione dei token di aggiornamento**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Se richiesto, inserisci le tue AWS credenziali.

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Vai al menu **App client** e seleziona un client di app esistente.

1. Seleziona **Modifica** nella sezione **Informazioni sul client dell'app** della pagina.

1. In **Configurazioni di sicurezza avanzate**, individua l'**opzione Abilita la rotazione del token di aggiornamento**.

1. Per abilitare la rotazione, seleziona la casella di controllo. Per disabilitare la rotazione, deseleziona la casella di controllo.

1. In **Periodo di grazia di rotazione del token di aggiornamento**, inserisci il numero di secondi, fino a 60, che desideri impostare come ritardo prima della revoca del token di aggiornamento ruotato verso l'esterno.

------
#### [ Enable refresh token rotation (API) ]

Configura la rotazione del token di aggiornamento in una richiesta o API. [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html) Il seguente corpo parziale della richiesta attiva la rotazione del token di aggiornamento e imposta il periodo di grazia su dieci secondi.

```
"RefreshTokenRotation" : {
   "Feature" : "ENABLED,
   "RetryGracePeriodSeconds" : 10
}
```

------

## Aggiornamento dell'API e dei token SDK
<a name="using-the-refresh-token-api"></a>

Esistono due modi per utilizzare il token di aggiornamento per ottenere un nuovo ID e accedere ai token con l'API dei pool di utenti, a seconda che la rotazione dei token di aggiornamento sia attiva. Nei client dell'app con rotazione del token di aggiornamento attiva, utilizza l'operazione API. [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html) Nei client di app senza rotazione del token di aggiornamento, utilizza il `REFRESH_TOKEN_AUTH` flusso delle operazioni [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)o dell'[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API.

**Nota**  
Gli utenti possono autenticarsi con pool di utenti nell'[accesso gestito](cognito-user-pools-managed-login.md) o nelle applicazioni personalizzate con cui crei AWS SDKs e nelle operazioni API di Amazon Cognito. Il `REFRESH_TOKEN_AUTH` flusso e `GetTokensFromRefreshToken` possono entrambi completare l'aggiornamento del token per gli utenti con accesso gestito. L'aggiornamento dei token nelle applicazioni personalizzate non influisce sulle sessioni di accesso gestite. Queste sessioni sono impostate in un cookie del browser e sono valide per un'ora. La `GetTokensFromRefreshToken` risposta emette nuovi ID, accessi e, facoltativamente, token di aggiornamento, ma non rinnova il cookie della sessione di accesso gestita.  
`REFRESH_TOKEN_AUTH`non è disponibile nei client di app con la rotazione dei token di aggiornamento abilitata.

------
#### [ GetTokensFromRefreshToken ]

[GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)restituisce nuovi ID, token di accesso e aggiornamento da una richiesta autorizzata con un token di aggiornamento. Di seguito è riportato un esempio di corpo della richiesta per. `GetTokensFromRefreshToken` Puoi inviare i metadati del client ai trigger Lambda nelle richieste di questa operazione.

```
{
    "RefreshToken": "{{eyJjd123abcEXAMPLE}}",
    "ClientId": "{{1example23456789}}",
    "ClientSecret": "{{myappclientsecret123abc}}",
    "ClientMetadata": { 
      "{{MyMetadataKey}}" : "{{MyMetadataValue}}" 
   },
}
```

------
#### [ AdminInitiateAuth/InitiateAuth ]

Per utilizzare il token di aggiornamento quando la rotazione del token di aggiornamento è inattiva, utilizza le operazioni o API. [AdminInitiateAuth[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) Invia `REFRESH_TOKEN_AUTH` per il parametro `AuthFlow`. Nella proprietà `AuthParameters` di `AuthFlow`, passa il token di aggiornamento dell'utente come valore di `"REFRESH_TOKEN"`. Amazon Cognito restituisce ID e token di accesso nuovi dopo che la richiesta API ha superato tutte le sfide.

Di seguito è riportato un esempio di corpo di richiesta per un aggiornamento del token con l'API or. `InitiateAuth` `AdminInitiateAuth`

```
{
    "AuthFlow": "REFRESH_TOKEN_AUTH",
    "ClientId": "{{1example23456789}}",
    "UserPoolId": "{{us-west-2_EXAMPLE}}",
    "AuthParameters": {
        "REFRESH_TOKEN": "{{eyJjd123abcEXAMPLE}}",
        "SECRET_HASH": "{{kT5acwCVrbD6JexhW3EQwnRSe6fLuPTRkEQ50athqv8=}}"
    }
}
```

------

## OAuth aggiornamento del token
<a name="using-the-refresh-token-oauth"></a>

Puoi anche inviare token di aggiornamento a [Endpoint Token](token-endpoint.md) in un pool di utenti in cui hai configurato un dominio. Nel corpo della richiesta, includi un valore `grant_type` di `refresh_token` e un valore `refresh_token` del token di aggiornamento dell'utente.

Le richieste all'endpoint del token sono disponibili nei client dell'app con rotazione dei token di aggiornamento attiva e in quelli in cui è inattiva. Quando la rotazione del token di aggiornamento è attiva, l'endpoint del token restituisce un nuovo token di aggiornamento.

Di seguito è riportato un esempio di richiesta con un token di aggiornamento.

```
POST /oauth2/token HTTP/1.1
Host: {{auth.example.com}}
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{ZGpjOTh1M2ppZWRtaTI4M2V1OTI4OmFiY2RlZjAxMjM0NTY3ODkw}}
Content-Length: **

client_id={{1example23456789}}&grant_type=refresh_token&refresh_token={{eyJjd123abcEXAMPLE}}
```

## Revoca dei token di aggiornamento
<a name="amazon-cognito-identity-user-pools-revoking-all-tokens-for-user"></a>

È possibile revocare i token di aggiornamento che appartengono a un utente. Per ulteriori informazioni sulla revoca dei token, consulta [Fine delle sessioni utente con revoca del token](token-revocation.md). 

**Nota**  
La revoca del token di aggiornamento comporta la revoca di tutti i token ID e di accesso emessi da Amazon Cognito a seguito delle richieste di aggiornamento con tale token.

Per disconnettere gli utenti da tutte le sessioni di accesso correnti, revoca tutti i loro token con le nostre richieste API. [GlobalSignOut[AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) Dopo che l'utente viene disconnesso, si verifica quanto segue.
+ Il token di aggiornamento dell'utente non può ottenere nuovi token per l'utente.
+ Il token di accesso dell'utente non può effettuare richieste API autorizzate dal token.
+ L'utente deve effettuare nuovamente l'autenticazione per ottenere nuovi token. Poiché i cookie della sessione di accesso gestita non scadono automaticamente, l'utente può riautenticarsi con un cookie di sessione, senza richiedere ulteriori credenziali. Dopo aver disconnesso gli utenti con accesso gestito, reindirizzali al[Endpoint Logout](logout-endpoint.md), dove Amazon Cognito cancella il cookie di sessione.

Con i token di aggiornamento, puoi mantenere le sessioni degli utenti nella tua app a lungo. Nel tempo, i tuoi utenti potrebbero voler annullare l'autorizzazione di alcune applicazioni a cui sono rimasti connessi con i loro token di aggiornamento. Per disconnettere un utente da una singola sessione, revoca il token di aggiornamento. Quando l'utente desidera disconnettersi da tutte le sessioni autenticate, genera una richiesta API. [GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) La tua app può presentare all'utente una scelta come **Esci da tutti i dispositivi**. `GlobalSignOut` accetta un token di accesso valido, inalterato, non scaduto e non revocato, di un utente. Poiché questa API è autorizzata dal token, un utente non può utilizzarla per avviare la disconnessione di un altro utente.

Tuttavia, puoi generare una richiesta [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)API che autorizzi con le tue AWS credenziali per disconnettere qualsiasi utente da tutti i suoi dispositivi. L'applicazione di amministrazione deve richiamare questa operazione API con le credenziali AWS dello sviluppatore e passare l'ID del pool di utenti e il nome utente dell'utente come parametri. L'API `AdminUserGlobalSignOut` è in grado di disconnettere qualsiasi utente nel bacino d'utenza.

Per ulteriori informazioni sulle richieste che è possibile autorizzare con AWS credenziali o con il token di accesso di un utente, vedere. [Elenco delle operazioni API raggruppate per modello di autorizzazione](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth)