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à.
Autenticazione con pool di utenti Amazon Cognito
Amazon Cognito include diversi metodi per autenticare gli utenti. Gli utenti possono accedere con password e WebAuthn passkey. Amazon Cognito può inviare loro una password monouso tramite e-mail o SMS. Puoi implementare funzioni Lambda che orchestrano la tua sequenza di sfide e risposte. Si tratta di flussi di autenticazione. Nei flussi di autenticazione, gli utenti forniscono un segreto e Amazon Cognito lo verifica, quindi emette token web JSON (JWT) per l'elaborazione delle applicazioni con le librerie OIDC. In questo capitolo, parleremo di come configurare i pool di utenti e i client di app per vari flussi di autenticazione in vari ambienti applicativi. Scoprirai le opzioni per l'uso delle pagine di accesso ospitate di Managed Login e per creare la tua logica e il tuo front-end in un AWS SDK.
Tutti i pool di utenti, a prescindere che si disponga di un dominio, possono autenticare gli utenti nell'API dei pool di utenti. Se aggiungi un dominio al pool di utenti, puoi utilizzare gli endpoint del pool di utenti. L'API dei pool di utenti supporta una vasta gamma di modelli di autorizzazione e flussi di richiesta per le richieste API.
Per verificare l'identità degli utenti, Amazon Cognito supporta flussi di autenticazione che includono tipi di sfida oltre a password come password e passkey monouso per e-mail e SMS.
Argomenti
Implementa flussi di autenticazione
Che tu stia implementando l'accesso gestito o un front-end per applicazioni personalizzato con un AWS SDK per l'autenticazione, devi configurare il client dell'app per i tipi di autenticazione che desideri implementare. Le seguenti informazioni descrivono la configurazione dei flussi di autenticazione nei client dell'app e nell'applicazione.
Cose da sapere sull'autenticazione con pool di utenti
Considera le seguenti informazioni nella progettazione del tuo modello di autenticazione con i pool di utenti di Amazon Cognito.
- Flussi di autenticazione nell'accesso gestito e nell'interfaccia utente ospitata
-
Accesso gestito dal pool di utentiL'accesso gestito offre più opzioni di autenticazione rispetto alla classica interfaccia utente ospitata. Ad esempio, gli utenti possono eseguire l'autenticazione senza password e con password solo nell'accesso gestito.
- Flussi di autenticazione personalizzati disponibili solo nell'autenticazione SDK AWS
-
Non puoi eseguire flussi di autenticazione personalizzati o autenticazione personalizzata con trigger Lambda, con l'accesso gestito o la classica interfaccia utente ospitata. L'autenticazione personalizzata è disponibile nell'autenticazione con AWS SDK.
- Accesso gestito per l'accesso con provider di identità esterno (IdP)
-
Non puoi far accedere gli utenti tramite terze parti IdPs nell'autenticazione con AWS gli SDK. È necessario implementare l'accesso gestito o la classica interfaccia utente ospitata, reindirizzare IdPs e quindi elaborare l'oggetto di autenticazione risultante con le librerie OIDC nell'applicazione. Per ulteriori informazioni sull'accesso gestito, vedere. Accesso gestito dal pool di utenti
- Effetto di autenticazione senza password su altre funzionalità utente
-
L'attivazione dell'accesso senza password con password o passkey monouso nel pool di utenti e nel client dell'app ha un effetto sulla creazione e sulla migrazione degli utenti. Quando l'accesso senza password è attivo:
-
Gli amministratori possono creare utenti senza password. Il modello di messaggio di invito predefinito cambia e non include più il segnaposto della
{###}password. Per ulteriori informazioni, consulta Creazione di account utente come amministratore. -
Per SDK-based SignUp le operazioni, agli utenti non è richiesto di fornire una password al momento della registrazione. L'accesso gestito e l'interfaccia utente ospitata richiedono una password nella pagina di registrazione, anche se è consentita l'autenticazione senza password. Per ulteriori informazioni, consulta Registrazione e conferma degli account utente.
-
Gli utenti importati da un file CSV possono accedere immediatamente con opzioni senza password, senza reimpostare la password, se i loro attributi includono un indirizzo email o un numero di telefono per un'opzione di accesso senza password disponibile. Per ulteriori informazioni, consulta Importazione di utenti nel bacino d'utenza da un file CSV.
-
L'autenticazione senza password non richiama il trigger Lambda per la migrazione degli utenti. Trigger Lambda di migrazione utenti
-
Gli utenti che accedono con un primo fattore OTP (Onetime Password) non possono aggiungere un fattore di autenticazione a più fattori (MFA) alla loro sessione. Le chiavi di accesso con verifica utente possono soddisfare i requisiti MFA se configurate con.
MULTI_FACTOR_WITH_USER_VERIFICATION
-
- Gli URL delle passkey relying party non possono essere presenti nell'elenco pubblico dei suffissi
-
Puoi utilizzare i nomi di dominio di tua proprietà, ad esempio
www.example.com, come ID del relying party (RP) nella configurazione della tua passkey. Questa configurazione è pensata per supportare applicazioni personalizzate eseguite su domini di tua proprietà. L'elenco pubblico dei suffissi, o PSL, contiene domini protetti di alto livello. Amazon Cognito restituisce un errore quando tenti di impostare l'URL RP su un dominio sul PSL.
Argomenti
Durata del flusso della sessione di autenticazione
A seconda delle caratteristiche del tuo pool di utenti, puoi finire per rispondere a diverse sfide RespondToAuthChallenge prima che l'app recuperi i token da Amazon Cognito. InitiateAuth Amazon Cognito include una stringa di sessione nella risposta a ciascuna richiesta. Per combinare le richieste API in un flusso di autenticazione, includere la stringa di sessione della risposta alla richiesta precedente in ogni richiesta successiva. Per impostazione predefinita, gli utenti hanno a disposizione tre minuti per completare ogni verifica prima della scadenza della stringa della sessione. Per modificare questo periodo, modificare il client dell'app Authentication flow session duration (Durata della sessione del flusso di autenticazione). La procedura seguente descrive come modificare questa impostazione nella configurazione del client dell'app.
Nota
Le impostazioni Durata della sessione del flusso di autenticazione si applicano all'autenticazione con l'API dei pool di utenti Amazon Cognito. L'accesso gestito imposta la durata della sessione a 3 minuti per l'autenticazione a più fattori e a 8 minuti per i codici di reimpostazione della password.
Per ulteriori informazioni sui client di app, consulta Impostazioni specifiche dell'applicazione con client di app.
Comportamento di blocco in caso di tentativi di accesso non riusciti
Dopo cinque tentativi di accesso falliti con la password di un utente, indipendentemente dal fatto che siano richiesti con operazioni non autenticate o IAM-authorized tramite API, Amazon Cognito blocca l'utente per un secondo. La durata del blocco quindi raddoppia dopo ogni ulteriore tentativo non riuscito, fino a un massimo di circa 15 minuti.
I tentativi effettuati durante un periodo di blocco generano un'eccezione Password attempts exceeded e non influiscono sulla durata dei periodi di blocco successivi. Per un numero cumulativo di tentativi di accesso non riusciti n, ad esclusione delle eccezioni Password attempts exceeded, Amazon Cognito blocca l'utente per 2^(n-5) secondi. Per ripristinare lo stato iniziale n=0 del blocco, l'utente deve effettuare un accesso riuscito dopo la scadenza del periodo di blocco oppure non deve iniziare alcun tentativo di accesso per 15 minuti consecutivi in qualsiasi momento dopo il blocco. Questo comportamento è soggetto a modifiche. Questo comportamento non si applica alle sfide personalizzate a meno che non eseguano anche l'autenticazione basata su password.
Un esempio di sessione di autenticazione
Il diagramma e la guida dettagliata seguenti illustrano uno scenario tipico in cui un utente accede a un'applicazione. L'applicazione di esempio presenta a un utente diverse opzioni di accesso. Ne selezionano una inserendo le proprie credenziali, forniscono un fattore di autenticazione aggiuntivo e accedono.
Immagina un'applicazione con una pagina di accesso in cui gli utenti possono accedere con nome utente e password, richiedere un codice monouso in un messaggio e-mail o scegliere un'opzione di impronta digitale.
-
Sign-in prompt: L'applicazione mostra una schermata iniziale con un pulsante di accesso.
-
Richiedi l'accesso: l'utente seleziona Accedi. Da un cookie o da una cache, l'applicazione recupera il nome utente o richiede di inserirlo.
-
Opzioni di richiesta: l'applicazione richiede le opzioni di accesso dell'utente con una richiesta
InitiateAuthAPI con ilUSER_AUTHflusso, richiedendo i metodi di accesso disponibili per l'utente. -
Opzioni di accesso all'invio: Amazon Cognito risponde con,, e.
PASSWORDEMAIL_OTPWEB_AUTHNLa risposta include un identificatore di sessione da riprodurre nella risposta successiva. -
Opzioni di visualizzazione: l'applicazione mostra gli elementi dell'interfaccia utente per consentire all'utente di inserire nome utente e password, ottenere un codice monouso o scansionare l'impronta digitale.
-
Scegli option/Enter le credenziali: l'utente inserisce nome utente e password.
-
Avvia l'autenticazione: l'applicazione fornisce le informazioni di accesso dell'utente con una richiesta
RespondToAuthChallengeAPI che conferma l'accesso con nome utente e password e fornisce il nome utente e la password. -
Convalida le credenziali: Amazon Cognito conferma le credenziali dell'utente.
-
Sfida aggiuntiva: l'utente dispone di un'autenticazione a più fattori configurata con un'app di autenticazione. Amazon Cognito risponde a una sfida.
SOFTWARE_TOKEN_MFA -
Richiesta di richiesta: la tua applicazione visualizza un modulo che richiede una password monouso (TOTP) basata sul tempo dall'app di autenticazione dell'utente.
-
Risposta alla sfida: l'utente invia il TOTP.
-
Risposta alla contestazione: in un'altra
RespondToAuthChallengerichiesta, l'applicazione fornisce il TOTP dell'utente. -
Convalida la risposta alla sfida: Amazon Cognito conferma il codice dell'utente e determina che il pool di utenti è configurato in modo da non inviare ulteriori sfide all'utente corrente.
-
Token di emissione: Amazon Cognito restituisce ID, accesso e aggiornamento dei token web JSON (JWT). L'autenticazione iniziale dell'utente è completa.
-
Archivia token: l'applicazione memorizza nella cache i token dell'utente in modo che possa fare riferimento ai dati dell'utente, autorizzare l'accesso alle risorse e aggiornare i token quando scadono.
-
Rendering di contenuti autorizzati: l'applicazione determina l'accesso dell'utente alle risorse in base alla sua identità e ai suoi ruoli e fornisce il contenuto dell'applicazione.
-
Accesso ai contenuti: l'utente ha effettuato l'accesso e inizia a utilizzare l'applicazione.
-
Richiesta di contenuti con token scaduto: successivamente, l'utente richiede una risorsa che richiede l'autorizzazione. Il token memorizzato nella cache dell'utente è scaduto.
-
Token di aggiornamento: l'applicazione effettua una
InitiateAuthrichiesta con il token di aggiornamento salvato dall'utente. -
Token di emissione: Amazon Cognito restituisce un nuovo ID e accede ai JWT. La sessione dell'utente viene aggiornata in modo sicuro senza ulteriori richieste di credenziali.
Puoi utilizzare i AWS Lambda trigger per personalizzare il modo in cui gli utenti si autenticano. Questi trigger generano e verificano le proprie richieste come parte del flusso di autenticazione.
Inoltre puoi utilizzare il flusso di autenticazione amministratore per server back-end protetti. Puoi utilizzare il flusso di autenticazione della migrazione degli utenti per rendere possibile la migrazione degli utenti senza che gli utenti debbano reimpostare le proprie password.