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à.
Gestisci i metodi di autenticazione in AWS SDK
Gli utenti dei pool di utenti di Amazon Cognito possono accedere con una varietà di opzioni o fattori di accesso iniziali. Per alcuni fattori, gli utenti possono seguire l'autenticazione a più fattori (MFA). Questi primi fattori includono nome utente e password, password monouso, passkey e autenticazione personalizzata. Per ulteriori informazioni, consulta Flusso di autenticazione. Se l'applicazione dispone di componenti dell'interfaccia utente integrati e importa un modulo AWS SDK, è necessario creare una logica applicativa per l'autenticazione. È necessario scegliere uno dei due metodi principali e, tra tale metodo, i meccanismi di autenticazione che si desidera implementare.
È possibile implementare l'autenticazione basata su client laddove l'applicazione o il client dichiari in anticipo il tipo di autenticazione. L'altra opzione è l'autenticazione basata sulla scelta, in cui l'app raccoglie un nome utente e richiede i tipi di autenticazione disponibili per gli utenti. Puoi implementare questi modelli insieme nella stessa applicazione o suddividerli tra i client dell'app, in base alle tue esigenze. Ogni metodo ha caratteristiche uniche, ad esempio l'autenticazione personalizzata in modalità client e l'autenticazione senza password in quella basata sulla scelta.
Nelle applicazioni personalizzate che eseguono l'autenticazione con l'implementazione AWS SDK dell'API dei pool di utenti, è necessario strutturare le richieste API in modo da allinearle alla configurazione del pool di utenti, alla configurazione del client dell'app e alle preferenze lato client. Una InitiateAuth sessione che inizia con un of inizia l'autenticazione basata sulla scelta. AuthFlow USER_AUTH Amazon Cognito risponde alla tua API proponendo un metodo di autenticazione preferito o un elenco di scelte. Una sessione che inizia con AuthFlow o CUSTOM_AUTH passa direttamente all'autenticazione personalizzata con trigger Lambda.
Alcuni metodi di autenticazione sono limitati a uno dei due tipi di flusso e alcuni metodi sono disponibili in entrambi.
Argomenti
Choice-based authentication
L'applicazione può richiedere i seguenti metodi di autenticazione nell'autenticazione basata sulla scelta. Dichiara queste opzioni nel PREFERRED_CHALLENGE parametro di InitiateAutho o AdminInitiateAuthnel parametro di o. ChallengeName RespondToAuthChallengeAdminRespondToAuthChallenge
Importante
Choice-based l'accesso ha due prerequisiti. Il client dell'app deve attivare il flusso di ALLOW_USER_AUTH autenticazione e i metodi senza password e passkey (EMAIL_OTP,SMS_OTP,WEB_AUTHN) richiedono un pool di utenti con il piano di funzionalità Essentials o Plus, poiché non sono disponibili nel livello Lite. PASSWORD(incluso SRP) è disponibile in tutti i piani di funzionalità. Se agli utenti non viene visualizzato un metodo basato sulla scelta, conferma sia il flusso tra app e client che il piano delle funzionalità prima di procedere con la risoluzione dei problemi.
Per esaminare queste opzioni nel loro contesto API, consulta in. ChallengeName RespondToAuthChallenge
Choice-based l'accesso presenta una sfida in risposta alla tua richiesta iniziale. Questa sfida verifica che l'opzione richiesta sia disponibile o fornisce un elenco di scelte disponibili. L'applicazione può mostrare queste scelte agli utenti, che quindi inseriscono le credenziali per il metodo di accesso preferito e procedono con l'autenticazione nelle risposte alla sfida.
Nel flusso di autenticazione sono disponibili le seguenti opzioni basate sulla scelta. Tutte le richieste di questo tipo richiedono che l'app raccolga prima un nome utente o lo recuperi da una cache.
-
Richiedi opzioni
USERNAMEsolo conAuthParametersof. Amazon Cognito restituisce unaSELECT_CHALLENGEsfida. Da lì, l'applicazione può richiedere all'utente di selezionare una sfida e restituire questa risposta al tuo pool di utenti. -
Richiedi una sfida preferita con
AuthParametersofPREFERRED_CHALLENGEe i parametri della tua sfida preferita, se presenti. Ad esempio, se richiedi unaPREFERRED_CHALLENGEdiPASSWORD_SRP, devi includere ancheSRP_A. Se l'utente, il pool di utenti e il client dell'app sono tutti configurati per la sfida preferita, Amazon Cognito risponde con la fase successiva di tale sfida, ad esempioPASSWORD_VERIFIERnelPASSWORD_SRPflusso o CodeDeliveryDetailsnei flussi and.EMAIL_OTPSMS_OTPSe la sfida preferita non è disponibile, Amazon Cognito risponde conSELECT_CHALLENGEun elenco di sfide disponibili. -
Effettua prima l'accesso degli utenti, quindi richiedi le opzioni di autenticazione in base alla loro scelta. Una GetUserAuthFactorsrichiesta con il token di accesso di un utente che ha effettuato l'accesso restituisce i fattori di autenticazione basati sulla scelta disponibili e le relative impostazioni MFA. Con questa opzione, un utente può accedere prima con nome utente e password, quindi attivare una diversa forma di autenticazione. Puoi anche utilizzare questa operazione per verificare le opzioni aggiuntive per un utente che ha effettuato l'accesso con una sfida preferita.
Per configurare il client dell'app per l'autenticazione basata sulla scelta, aggiungilo ALLOW_USER_AUTH ai flussi di autenticazione consentiti. È inoltre necessario scegliere i fattori basati sulla scelta che si desidera consentire nella configurazione del pool di utenti. Il processo seguente illustra come scegliere i fattori di autenticazione basati sulla scelta.
Client-based authentication
Client-based l'autenticazione supporta i seguenti flussi di autenticazione. Dichiara queste opzioni nel AuthFlow parametro InitiateAutho AdminInitiateAuth.
-
USER_PASSWORD_AUTHeADMIN_USER_PASSWORD_AUTHSign-in con password persistenti
Questo flusso di autenticazione è equivalente
PASSWORDall'autenticazione basata sulla scelta. -
USER_SRP_AUTHSign-in con password persistenti e payload sicuro
Questo flusso di autenticazione è equivalente all'
PASSWORD_SRPautenticazione basata sulla scelta. -
REFRESH_TOKEN_AUTHQuesto flusso di autenticazione è disponibile solo nell'autenticazione basata sul client.
-
CUSTOM_AUTHQuesto flusso di autenticazione è disponibile solo nell'autenticazione basata su client.
Con l'autenticazione basata su client, Amazon Cognito presuppone che tu abbia determinato in che modo l'utente desidera autenticarsi prima di iniziare i flussi di autenticazione. La logica di determinazione del fattore di accesso che un utente desidera fornire deve essere determinata con impostazioni predefinite o istruzioni personalizzate, quindi dichiarata nella prima richiesta al tuo pool di utenti. La InitiateAuth richiesta dichiara un accesso AuthFlow che corrisponde direttamente a una delle opzioni elencate, ad esempio. USER_SRP_AUTH Con questa dichiarazione, la richiesta include anche i parametri per iniziare l'autenticazione, ad esempio USERNAMESECRET_HASH, e. SRP_A Amazon Cognito potrebbe dare seguito a questa richiesta con ulteriori sfide, come l'SRP o PASSWORD_VERIFIER l'accesso tramite password con SOFTWARE_TOKEN_MFA TOTP MFA.
Per configurare il client dell'app per l'autenticazione basata su client, aggiungi qualsiasi flusso di autenticazione diverso ALLOW_USER_AUTH dai flussi di autenticazione consentiti. Alcuni esempi sono ALLOW_USER_PASSWORD_AUTHALLOW_CUSTOM_AUTH,ALLOW_REFRESH_TOKEN_AUTH. Per consentire i flussi di autenticazione basati sul client, non è richiesta alcuna configurazione aggiuntiva del pool di utenti.
Step-up autenticazione con il flusso USER_AUTH
Richiedete l'autenticazione avanzata nel USER_AUTH flusso esistente con le operazioni and. InitiateAuthRespondToAuthChallenge Non ci sono nuove operazioni API. Le operazioni lato server corrispondenti supportano gli stessi parametri AdminInitiateAuthe comportamenti di step-up e AdminInitiateAuth possono anche AdminRespondToAuthChallenge, facoltativamente, utilizzare un token di accesso. Questo flusso funziona sia quando un utente dispone di un token ID esistente sia quando un utente si autentica verso un livello target per la prima volta. Per ulteriori informazioni sul flusso, consulta. Un esempio di sessione di autenticazione
Per ulteriori informazioni sui livelli ACR e sui valori AMR, vedere. Livelli di autenticazione con attestazioni ACR e AMR
Nota
Step-up l'autenticazione richiede il piano di funzionalità Essentials o Plus.
Passate i parametri step-up nella AuthParameters mappa della vostra InitiateAuth (oAdminInitiateAuth) richiesta: la nuova TARGET_ACR_VALUES eMAX_AGE, insieme a quella esistenteUSERNAME, ACCESS_TOKEN e. PREFERRED_CHALLENGE Per la definizione e i vincoli di ogni parametro, consulta InitiateAuthe AdminInitiateAuthnell'API Reference dei pool di utenti di Amazon Cognito.
La tabella seguente descrive come Amazon Cognito risponde alle combinazioni di questi parametri.
| Parameters | Comportamento |
|---|---|
TARGET_ACR_VALUESeACCESS_TOKEN, con MAX_AGE soddisfazione |
Amazon Cognito consente all'utente di passare dai fattori correnti del token al livello di priorità soddisfacibile con la massima priorità. |
TARGET_ACR_VALUESeACCESS_TOKEN, con «non soddisfatto» MAX_AGE |
Amazon Cognito autentica l'utente da zero verso il livello target. |
TARGET_ACR_VALUESsenza ACCESS_TOKEN |
Amazon Cognito autentica l'utente da zero verso il livello target. |
| Nessuno dei due parametri | Il USER_AUTH flusso si comporta come se non fosse necessaria l'autenticazione avanzata. |
Tieni presente il seguente comportamento quando progetti un flusso di autenticazione graduale.
-
Step-up l'autenticazione è tutto o niente. Se il raggiungimento del livello obiettivo richiede più sfide, ad esempio una password e un TOTP per il livello 4, e l'utente fallisce qualsiasi sfida, il tentativo di avanzamento fallisce completamente. Amazon Cognito non emette token intermedi.
-
Se il token presentato soddisfa o supera già il livello richiesto, Amazon Cognito restituisce un errore invece di emettere un nuovo token. Ciò impedisce alle applicazioni di utilizzare l'autenticazione step-up come meccanismo di aggiornamento dei token.
-
L'utente deve già disporre dei fattori per soddisfare il livello richiesto. Se l'utente non ha configurato alcun fattore per soddisfare il livello obiettivo richiesto, Amazon Cognito restituisce un errore. Step-upl'autenticazione non richiede all'utente di impostare nuovi fattori.
-
L'MFA è un pavimento. Se le impostazioni MFA dell'utente o del pool di utenti richiedono l'autenticazione MFA, l'accesso iniziale applica e richiede la verifica MFA anche quando il livello di destinazione è inferiore e altrimenti non richiederebbe l'MFA. L'MFA richiesta dalla protezione dalle minacce (funzionalità di sicurezza avanzate) viene applicata anche all'accesso iniziale, anche quando il livello ACR di destinazione richiesto non richiederebbe altrimenti l'MFA.
TARGET_ACR_VALUESnon può sopprimere un prompt MFA richiesto. Al massimo, l'obiettivo può influenzare quale dei diversi fattori MFA abilitati richiede Amazon Cognito. Se una richiesta step-up si rivolge a un livello inferiore, ad esempio il livello 1, per un utente che deve utilizzare l'MFA, Amazon Cognito applica silenziosamente l'MFA richiesta. Migliora l'utente e non restituisce alcun errore.
La richiesta di autenticazione avanzata TARGET_ACR_VALUES richiede il piano di funzionalità Essentials o Plus. Per ulteriori informazioni, consulta Requisiti del piano di funzionalità.