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à.
Gestione della scadenza e della memorizzazione nella cache dei token del pool di utenti
L'app deve completare una delle seguenti richieste ogni volta che desideri ottenere un nuovo token web JSON (JWT).
-
Richiesta di una concessione
di credenziali client o codici di autorizzazione dall'Endpoint Token. -
Richiedi una concessione implicita dalle tue pagine di accesso gestite.
-
Autentica un utente locale in una richiesta API Amazon Cognito come. InitiateAuth
Puoi configurare il pool di utenti in modo da impostare la scadenza dei token entro un valore definito in minuti, ore o giorni. Per garantire le prestazioni e la disponibilità della tua app, utilizza i token Amazon Cognito per circa il 75% della durata del token e solo dopo recupera nuovi token. Una soluzione di caching creata per l'app mantiene disponibili i token e impedisce ad Amazon Cognito di rifiutare le richieste quando la frequenza delle richieste è troppo alta. Un'app lato client deve archiviare i token in una cache di memoria. Un'app lato server può aggiungere un meccanismo di caching crittografato per archiviare i token.
Quando il tuo pool di utenti genera un volume elevato di utenti o machine-to-machine attività, potresti incontrare i limiti imposti da Amazon Cognito sul numero di richieste di token che puoi effettuare. Per ridurre il numero di richieste inviate agli endpoint Amazon Cognito, è possibile archiviare e riutilizzare in modo sicuro i dati di autenticazione o implementare backoff esponenziale e nuovi tentativi.
I dati di autenticazione provengono da due classi di endpoint. Gli endpoint Amazon Cognito OAuth2.0 includono l'endpoint token, che gestisce le credenziali dei client e le richieste di codice di autorizzazione all'accesso gestito. Gli endpoint del servizio rispondono a richieste API come InitiateAuth
e RespondToAuthChallenge
. Ogni tipo di richiesta è caratterizzato da un limite specifico. Per ulteriori informazioni sui limiti, consulta Quote in Amazon Cognito.
Memorizzazione nella cache dei token di machine-to-machine accesso con Amazon API Gateway
Con la memorizzazione nella cache dei token di API Gateway, la tua app può scalare in risposta a eventi superiori alla quota di frequenza di richiesta predefinita degli endpoint Amazon OAuth Cognito.

Puoi memorizzare nella cache i token di accesso in modo che l'app richieda un nuovo token di accesso solo se un token memorizzato nella cache è scaduto. In caso contrario, l'endpoint di caching restituisce un token dalla cache. Ciò evita una chiamata aggiuntiva a un endpoint dell'API Amazon Cognito. Quando si utilizza Gateway Amazon API come proxy per l'Endpoint Token, l'API risponde alla maggior parte delle richieste che altrimenti contribuirebbero alla quota di richieste, evitando richieste non riuscite risultanti dalla limitazione della frequenza.
La seguente soluzione basata su Gateway API offre un'implementazione a bassa latenza, a bassa presenza di codice/senza codice del caching dei token. Gli API Gateway APIs sono crittografati in transito e, facoltativamente, a riposo. Una cache API Gateway è ideale per la concessione di credenziali client OAuth 2.0, un tipo di concessione
In questa soluzione, definisci una cache nell'API per archiviare un token di accesso separato per ogni combinazione di OAuth ambiti e client dell'app che desideri richiedere nell'app. Quando l'app effettua una richiesta corrispondente alla chiave della cache, l'API risponde con un token di accesso emesso da Amazon Cognito alla prima richiesta corrispondente alla chiave della cache. Alla scadenza della chiave, l'API inoltra la richiesta all'endpoint del token e memorizza nella cache un nuovo token di accesso.
Nota
La durata della chiave della cache deve essere inferiore alla durata del token di accesso del client dell'app.
La chiave cache è una combinazione degli OAuth ambiti richiesti nel scope
parametro nel corpo della richiesta e nell'Authorization
intestazione della richiesta. L'intestazione Authorization
contiene l'ID del client dell'app e il segreto client. Non è necessario implementare una logica aggiuntiva nell'app per implementare questa soluzione. È solo necessario aggiornare la configurazione per modificare il percorso dell'endpoint del token del pool di utenti.
Puoi anche implementare la memorizzazione nella cache dei token con ElastiCache (Redis OSS). Per un controllo granulare con le policy AWS Identity and Access Management (IAM), valuta l'ipotesi di utilizzare una cache Amazon DynamoDB.
Nota
Il caching in Gateway API è soggetto a costi aggiuntivi. Per maggiori dettagli, consulta la pagina relativa ai prezzi.
Per configurare un proxy di caching con Gateway API
-
Apri la Console Gateway API
e crea una REST API. -
In Resources (Risorse), crea un metodo POST.
-
In Integration type (Tipo di integrazione), scegli HTTP.
-
Seleziona Use HTTP proxy integration (Utilizza integrazione proxy HTTP).
-
In Endpoint URL (URL endpoint), immetti un URL nel formato
https://
.<your user pool domain>
/oauth2/token
-
-
In Resources (Risorse), configura la chiave della cache.
-
In Method request (Richiesta metodo), modifica la richiesta del metodo POST.
-
Imposta il parametro
scope
e l'intestazioneAuthorization
come chiave di caching.-
Aggiungi una stringa di query in URL query string parameters (Parametri della stringa di query URL) e scegli Caching per la stringa
scope
. -
Aggiungi un'intestazione in HTTP request headers (Intestazioni di richiesta HTTP) e scegli Caching per l'intestazione
Authorization
.
-
-
-
In Stages (Fasi), configura il caching.
-
Scegliete lo stage che desiderate modificare e scegliete Modifica da Stage Details.
-
In Impostazioni aggiuntive, Impostazioni cache, attiva l'opzione cache Provision API.
-
Scegli un valore in Cache capacity (Capacità cache). Una maggiore capacità di cache migliora le prestazioni ma comporta costi aggiuntivi.
-
Deseleziona la casella di controllo Richiedi autorizzazione. Seleziona Continua.
-
API Gateway applica le policy di cache ai metodi GET solo a livello di fase. È necessario applicare un'eccezione alla politica della cache al metodo POST.
Espandi la fase che hai configurato e seleziona il
POST
metodo. Per creare le impostazioni della cache per il metodo, scegliete Create override. -
Attiva l'opzione Abilita la cache del metodo.
-
Inserisci una cache time-to-live (TTL) di 3600 secondi. Seleziona Salva.
-
-
In Stages (Fasi), annota il valore visualizzato in Invoke URL (Richiama URL).
-
Aggiorna la tua app per le richieste di token POST in base al valore di Invoke URL (Richiama URL) della tua API anziché in base all'endpoint
/oauth2/token
del pool di utenti.