

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à.

# Aggiunta dell'autenticazione MFA a un bacino d'utenza
<a name="user-pool-settings-mfa"></a>

La tecnologia MFA aggiunge un fattore di autenticazione «*qualcosa che possiedi*» al fattore iniziale «*qualcosa che conosci*», che in genere è un nome utente e una password. Puoi scegliere SMS, messaggi di posta elettronica o password monouso basate sul tempo (TOTP) come fattori aggiuntivi per accedere agli utenti che utilizzano le password come fattore di autenticazione principale.

L'autenticazione a più fattori (MFA) aumenta la sicurezza per [gli utenti locali dell'](cognito-terms.md#terms-localuser)applicazione. Nel caso di [utenti federati](cognito-terms.md#terms-federateduser), Amazon Cognito delega tutti i processi di autenticazione all'IdP e non offre loro fattori di autenticazione aggiuntivi.

**Nota**  
La prima volta che un nuovo utente accede alla tua app, Amazon Cognito emette token OAuth 2.0, anche se il tuo pool di utenti richiede l'autenticazione a più fattori. Il secondo fattore di autenticazione quando l'utente accede per la prima volta è la conferma del messaggio di verifica inviata da Amazon Cognito. Se il bacino d'utenza richiede MFA, Amazon Cognito richiede all'utente di registrare un ulteriore fattore di accesso da utilizzare per ogni tentativo di accesso dopo il primo.

Con l'autenticazione adattiva, puoi configurare il tuo pool di utenti in modo che richieda un fattore di autenticazione aggiuntivo in risposta a un aumento del livello di rischio. Per aggiungere l'autenticazione adattiva al bacino d'utenza, consulta [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md).

Quando imposti l'autenticazione MFA su `required` per un bacino d'utenza, tutti gli utenti devono completare l'MFA per accedere. Per accedere, ogni utente deve impostare almeno un fattore MFA. Quando è richiesta la MFA, è necessario includere la configurazione MFA nell'onboarding degli utenti in modo che il pool di utenti consenta loro di accedere.

L'accesso gestito richiede agli utenti di configurare l'MFA quando si imposta l'MFA come richiesto. Quando imposti l'autenticazione a più fattori come facoltativa nel tuo pool di utenti, l'accesso gestito non richiede alcuna richiesta agli utenti. Per utilizzare MFA opzionale, devi creare un'interfaccia nell'app che richiede agli utenti di scegliere se desiderano configurare MFA, quindi devi guidarli attraverso gli input dell'API per verificare il fattore di accesso aggiuntivo.

**Topics**
+ [Cose da sapere sull'MFA per pool di utenti](#user-pool-settings-mfa-prerequisites)
+ [Preferenze utente MFA](#user-pool-settings-mfa-preferences)
+ [Dettagli della logica MFA in fase di esecuzione dell'utente](#user-pool-settings-mfa-user-outcomes)
+ [Configurare un pool di utenti per l'autenticazione a più fattori](#user-pool-configuring-mfa)
+ [MFA per SMS e messaggi e-mail](user-pool-settings-mfa-sms-email-message.md)
+ [Autenticazione MFA con token di software TOTP](user-pool-settings-mfa-totp.md)

## Cose da sapere sull'MFA per pool di utenti
<a name="user-pool-settings-mfa-prerequisites"></a>

Prima di configurare l'MFA, valuta quanto segue:
+ Gli utenti possono disporre di MFA *o* accedere con fattori senza password, con un'eccezione: le passkey con verifica utente possono soddisfare i requisiti MFA se impostati nel pool di utenti. `FactorConfiguration` `MULTI_FACTOR_WITH_USER_VERIFICATION` `WebAuthnConfiguration`
  + Non è possibile impostare l'autenticazione a più fattori su richiesta nei pool di utenti che supportano password [monouso](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless).
  + Non puoi aggiungere `EMAIL_OTP` o `SMS_OTP` aggiungere `AllowedFirstAuthFactors` quando l'MFA è richiesta nel tuo pool di utenti. È possibile aggiungere `WEB_AUTHN` quando `FactorConfiguration` è impostato su. `MULTI_FACTOR_WITH_USER_VERIFICATION`
  + Le offerte `PASSWORD` e i fattori di [accesso basati sulla scelta](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) sono disponibili in tutti i client dell'app solo quando è richiesta l'autenticazione a più `PASSWORD_SRP` fattori nel pool di utenti. **Per ulteriori informazioni sui flussi nome utente e password, consulta [Accedi con password persistenti](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password) e [Accedi con password persistenti e payload sicuro](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp) nel capitolo Autenticazione di questa guida.**
  + Nei pool di utenti in cui l'autenticazione MFA è facoltativa, gli utenti che hanno configurato un fattore MFA possono accedere solo con flussi di autenticazione nome utente e password nell'accesso basato sulla scelta. [Questi utenti sono idonei a tutti i flussi di accesso basati su client.](authentication-flows-selection-sdk.md#authentication-flows-selection-client)

  La tabella seguente descrive l'effetto delle impostazioni MFA del pool di utenti e della configurazione utente dei fattori MFA sulla capacità degli utenti di accedere con fattori senza password.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/user-pool-settings-mfa.html)
+ Il metodo MFA preferito da un utente influenza i metodi che può utilizzare per recuperare la password. Gli utenti la cui MFA preferita è tramite messaggio di posta elettronica non possono ricevere un codice di reimpostazione della password tramite e-mail. Gli utenti la cui MFA preferita è tramite messaggio SMS non possono ricevere un codice di reimpostazione della password tramite SMS.

  Le impostazioni di [recupero della password](managing-users-passwords.md#user-pool-password-reset-and-recovery) devono fornire un'opzione alternativa quando gli utenti non sono idonei al metodo preferito di reimpostazione della password. Ad esempio, i meccanismi di ripristino potrebbero avere l'e-mail come priorità assoluta e la MFA e-mail potrebbe essere un'opzione nel tuo pool di utenti. In questo caso, aggiungi il ripristino dell'account tramite SMS come seconda opzione o utilizza le operazioni amministrative dell'API per reimpostare le password di tali utenti.

  Amazon Cognito risponde alle richieste di reimpostazione della password di utenti che non dispongono di un metodo di ripristino valido con una risposta di errore. `InvalidParameterException`

  Il corpo della richiesta di esempio [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#API_UpdateUserPool_Examples)illustra come gli utenti possono ricorrere al ripristino tramite messaggio SMS quando la reimpostazione della password dei messaggi e-mail non è disponibile. `AccountRecoverySetting`
+ Gli utenti non possono ricevere codici MFA e di reimpostazione della password allo stesso indirizzo e-mail o numero di telefono. Se utilizzano password monouso (OTPs) dai messaggi e-mail per MFA, devono utilizzare i messaggi SMS per il ripristino dell'account. Se utilizzano OTPs i messaggi SMS per la MFA, devono utilizzare i messaggi e-mail per il ripristino dell'account. Nei pool di utenti con MFA, gli utenti potrebbero non essere in grado di completare il ripristino self-service della password se dispongono di attributi per il proprio indirizzo e-mail ma non dispongono del numero di telefono o del numero di telefono ma non dell'indirizzo e-mail.

  Per evitare che gli utenti non possano reimpostare le proprie password nei pool di utenti con questa configurazione, imposta gli `phone_number` [attributi `email`](user-pool-settings-attributes.md) e come richiesto. In alternativa, puoi configurare processi che raccolgono e impostano sempre tali attributi quando gli utenti si registrano o quando gli amministratori creano profili utente. Quando gli utenti dispongono di entrambi gli attributi, Amazon Cognito invia automaticamente i codici di reimpostazione della password alla destinazione che non è il fattore MFA *dell'*utente.
+ Quando attivi la MFA nel tuo pool di utenti e scegli il **messaggio SMS o il messaggio** **e-mail** come secondo fattore, puoi inviare messaggi a un numero di telefono o a un attributo e-mail che non hai verificato in Amazon Cognito. Dopo che l'utente ha completato la MFA, Amazon Cognito imposta `phone_number_verified` l'attributo or su. `email_verified` `true`
+ Dopo cinque tentativi non riusciti di presentazione di un codice MFA, Amazon Cognito avvia il processo di blocco con timeout esponenziale descritto in [Comportamento di blocco in caso di tentativi di accesso non riusciti](authentication.md#authentication-flow-lockout-behavior).
+ Se il tuo account si trova nella sandbox SMS Regione AWS che contiene le risorse Amazon Simple Notification Service (Amazon SNS) per il tuo pool di utenti, devi verificare i numeri di telefono in Amazon SNS prima di poter inviare un messaggio SMS. Per ulteriori informazioni, consulta [Impostazioni dei messaggi SMS per i bacini d'utenza di Amazon Cognito](user-pool-sms-settings.md).
+ Per modificare lo stato MFA degli utenti in risposta agli eventi rilevati con protezione dalle minacce, attiva l'MFA e impostala come opzionale nella console del pool di utenti di Amazon Cognito. Per ulteriori informazioni, consulta [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md).
+ I messaggi e-mail e SMS richiedono che gli utenti abbiano rispettivamente gli attributi dell'indirizzo e-mail e del numero di telefono. È possibile impostare `email` o `phone_number` come attributi obbligatori nel proprio pool di utenti. In questo caso, gli utenti non possono completare la registrazione a meno che non forniscano un numero di telefono. Se non imposti questi attributi come obbligatori ma desideri eseguire la MFA per e-mail o SMS, richiedi agli utenti il loro indirizzo e-mail o numero di telefono al momento della registrazione. Come procedura ottimale, configurate il pool di utenti in modo che inviino automaticamente messaggi agli utenti per [verificare questi attributi](signing-up-users-in-your-app.md).

  Amazon Cognito considera verificato un numero di telefono o un indirizzo e-mail se un utente ha ricevuto con successo un codice temporaneo tramite SMS o messaggio e-mail e lo ha restituito in una richiesta [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)API. In alternativa, il tuo team può impostare numeri di telefono e contrassegnarli come verificati con un'applicazione amministrativa che esegue le richieste [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API.
+ Se hai impostato la MFA come obbligatoria e hai attivato più di un fattore di autenticazione, Amazon Cognito richiede ai nuovi utenti di selezionare un fattore di MFA che desiderano utilizzare. Gli utenti devono disporre di un numero di telefono per configurare la MFA dei messaggi SMS e di un indirizzo e-mail per configurare l'autenticazione MFA per i messaggi di posta elettronica. Se un utente non dispone dell'attributo definito per nessuna MFA basata su messaggi disponibile, Amazon Cognito richiede di configurare TOTP MFA. La richiesta di scegliere un fattore MFA `SELECT_MFA_TYPE` () e di impostare un fattore scelto `MFA_SETUP` () si presenta come risposta [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)alla sfida alle operazioni API [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html).

## Preferenze utente MFA
<a name="user-pool-settings-mfa-preferences"></a>

Gli utenti possono configurare più fattori MFA. Solo uno può essere attivo. Puoi scegliere la preferenza MFA effettiva per i tuoi utenti nelle impostazioni del pool di utenti o nei prompt degli utenti. Un pool di utenti richiede all'utente i codici MFA quando le impostazioni del pool di utenti e le relative impostazioni a livello utente soddisfano le seguenti condizioni:

1. L'MFA viene impostata su opzionale o obbligatoria nel pool di utenti.

1. L'utente ha un `phone_number` attributo `email` or valido oppure ha configurato un'app di autenticazione per TOTP.

1. È attivo almeno un fattore MFA.

1. Un fattore MFA è impostato come preferito.

### Impedire l'uso dello stesso fattore per l'accesso e l'MFA
<a name="user-pool-settings-mfa-preferences-same-factor"></a>

È possibile configurare il pool di utenti in modo da rendere un fattore di accesso l'unica opzione di accesso e MFA disponibile per alcuni o tutti gli utenti. Questo risultato può verificarsi quando il caso d'uso principale per l'accesso sono le password monouso per messaggi e-mail o SMS (). OTPs L'MFA preferita di un utente potrebbe avere lo stesso tipo di fattore di accesso nelle seguenti condizioni:
+ L'MFA è richiesta nel pool di utenti.
+ Email e SMS OTP sono disponibili opzioni di accesso e *MFA* nel pool di utenti.
+ L'utente accede con un messaggio di posta elettronica o SMS OTP.
+ Hanno un attributo di indirizzo e-mail ma nessun attributo di numero di telefono o un attributo di numero di telefono ma nessun attributo di indirizzo e-mail.

In questo scenario, l'utente può accedere con un'e-mail OTP e completare la MFA con un'e-mail OTP. Questa opzione annulla la funzione essenziale della MFA. Gli utenti che accedono con password monouso devono poter utilizzare metodi di consegna diversi per l'accesso rispetto alla MFA. Quando gli utenti hanno sia l'opzione SMS che quella e-mail, Amazon Cognito assegna automaticamente un fattore diverso. Ad esempio, quando un utente accede con l'e-mail OTP, la sua MFA preferita è SMS OTP.

Esegui i passaggi seguenti per affrontare l'autenticazione con lo stesso fattore quando il tuo pool di utenti supporta l'autenticazione OTP sia per l'accesso che per l'MFA.

1. Abilita l'OTP per e-mail e SMS come fattori di accesso.

1. Abilita l'OTP per e-mail e SMS come fattori MFA.

1. Raccogliere

### Impostazioni del pool di utenti e relativo effetto sulle opzioni MFA
<a name="user-pool-settings-mfa-preferences-things-to-know"></a>

La configurazione del pool di utenti influenza i metodi MFA che gli utenti possono scegliere. Di seguito sono riportate alcune impostazioni del pool di utenti che influiscono sulla capacità degli utenti di configurare l'MFA.
+ Nella configurazione dell'**autenticazione** a più fattori nel menu di **accesso** della console Amazon Cognito, puoi impostare l'autenticazione a più fattori su opzionale o obbligatoria oppure disattivarla. L'equivalente API di questa impostazione è il [MfaConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-MfaConfiguration)parametro di`CreateUserPool`, e. `UpdateUserPool` `SetUserPoolMfaConfig`

  Inoltre, nella configurazione dell'**autenticazione** a più fattori, l'impostazione dei metodi **MFA** determina i fattori MFA che gli utenti possono configurare. L'equivalente API di questa impostazione è l'operazione. [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html) 
+ Nel menu di **accesso**, in **Recupero dell'account utente**, puoi configurare il modo in cui il tuo pool di utenti invia messaggi agli utenti che dimenticano la password. Il metodo MFA di un utente non può avere lo stesso metodo di consegna MFA del pool di utenti per i codici con password dimenticata. Il parametro API per il metodo di consegna della password dimenticata è il parametro and. [AccountRecoverySetting](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AccountRecoverySetting)`CreateUserPool``UpdateUserPool`

  Ad esempio, gli utenti non possono configurare l'MFA e-mail quando l'opzione di ripristino è Solo **e-mail**. Questo perché non è possibile abilitare l'MFA e-mail e impostare l'opzione di ripristino su **Email only** nello stesso pool di utenti. Se imposti questa opzione su **Invia e-mail se disponibile, altrimenti SMS,** l'e-mail è l'opzione di ripristino prioritaria, ma il tuo pool di utenti può ricorrere al messaggio SMS quando un utente non è idoneo per il ripristino dei messaggi e-mail. In questo scenario, gli utenti possono impostare l'MFA e-mail come preferenza e possono ricevere un messaggio SMS solo quando tentano di reimpostare la password.
+ Se si imposta un solo metodo MFA come disponibile, non è necessario gestire le preferenze MFA dell'utente.
+ Una configurazione SMS attiva rende automaticamente i messaggi SMS un metodo MFA disponibile nel pool di utenti.

  Una [configurazione e-mail](user-pool-email.md) attiva con le tue risorse Amazon SES in un pool di utenti e il piano di funzionalità Essentials o Plus rendono automaticamente i messaggi e-mail un metodo MFA disponibile nel tuo pool di utenti.
+ Quando si imposta l'MFA su obbligatorio in un pool di utenti, gli utenti non possono abilitare o disabilitare alcun metodo MFA. È possibile impostare solo un metodo preferito.
+ Quando si imposta l'MFA su opzionale in un pool di utenti, l'accesso gestito non richiede agli utenti di configurare l'MFA, ma richiede agli utenti un codice MFA quando hanno un metodo di MFA preferito.
+ Quando attivi [la protezione dalle minacce](cognito-user-pool-settings-threat-protection.md) e configuri le risposte di autenticazione adattiva in modalità con funzionalità complete, l'MFA deve essere opzionale nel tuo pool di utenti. Una delle opzioni di risposta con l'autenticazione adattiva consiste nel richiedere l'autenticazione MFA per un utente il cui tentativo di accesso viene valutato in modo da contenere un livello di rischio.

  L'impostazione **Attributi richiesti** nel menu di **registrazione** della console determina se gli utenti devono fornire un indirizzo e-mail o un numero di telefono per registrarsi all'applicazione. I messaggi e-mail e SMS diventano fattori MFA idonei quando un utente dispone dell'attributo corrispondente. Il parametro [Schema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema) di `CreateUserPool` imposta gli attributi come richiesto.
+ Quando imposti l'autenticazione a più fattori su richiesta in un pool di utenti e un utente accede con accesso gestito, Amazon Cognito gli chiede di selezionare un metodo MFA tra i metodi disponibili per il tuo pool di utenti. L'accesso gestito gestisce la raccolta di un indirizzo e-mail o di un numero di telefono e la configurazione di TOTP. Il diagramma che segue illustra la logica alla base delle opzioni che Amazon Cognito presenta agli utenti.

### Configurazione delle preferenze MFA per gli utenti
<a name="user-pool-settings-mfa-preferences-configure"></a>

È possibile configurare le preferenze MFA per gli utenti in un modello self-service con autorizzazione tramite token di accesso o in un modello gestito dall'amministratore con operazioni API amministrative. Queste operazioni abilitano o disabilitano i metodi MFA e impostano uno dei diversi metodi come opzione preferita. Dopo che l'utente ha impostato una preferenza MFA, Amazon Cognito gli chiede al momento dell'accesso di fornire un codice dal metodo di MFA preferito. Gli utenti che non hanno impostato una preferenza ricevono la richiesta di scegliere un metodo preferito in una sfida. `SELECT_MFA_TYPE`
+ In un modello self-service utente o in un'applicazione pubblica [SetUserMfaPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html), autorizzata con un token di accesso dell'utente registrato, imposta la configurazione MFA.
+ In un'applicazione gestita dall'amministratore o riservata, autorizzata con AWS credenziali amministrative [AdminSetUserPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html), imposta la configurazione MFA.

Puoi anche impostare le preferenze MFA degli utenti dal menu **Utenti** della console Amazon Cognito. Per ulteriori informazioni sui modelli di autenticazione pubblici e riservati nell'API dei pool di utenti di Amazon Cognito, consulta. [Comprendere l'API, l'OIDC e l'autenticazione delle pagine di accesso gestite](authentication-flows-public-server-side.md#user-pools-API-operations)

## Dettagli della logica MFA in fase di esecuzione dell'utente
<a name="user-pool-settings-mfa-user-outcomes"></a>

Per determinare i passaggi da eseguire quando gli utenti accedono, il pool di utenti valuta le preferenze MFA degli utenti, gli attributi [utente, l'](user-pool-settings-attributes.md)impostazione MFA [del pool di utenti, le](#user-pool-configuring-mfa) azioni di protezione dalle [minacce](cognito-user-pool-settings-adaptive-authentication.md) [e](managing-users-passwords.md#user-pool-password-reset-and-recovery) le impostazioni di ripristino dell'account self-service. Quindi accede agli utenti, richiede loro di scegliere un metodo di MFA, richiede loro di configurare un metodo MFA o richiede loro di utilizzare la MFA. Per configurare un metodo MFA, gli utenti devono fornire un [indirizzo e-mail o un numero di telefono o](user-pool-settings-mfa-sms-email-message.md) [registrare un autenticatore TOTP](user-pool-settings-mfa-totp.md#totp-mfa-set-up-api). Possono anche configurare le opzioni MFA e [registrare in anticipo un'opzione preferita](#user-pool-settings-mfa-preferences-configure). Il diagramma seguente elenca gli effetti dettagliati della configurazione del pool di utenti sui tentativi di accesso immediatamente dopo la registrazione iniziale.

La logica illustrata qui si applica alle applicazioni basate su SDK e all'[accesso gestito](cognito-user-pools-managed-login.md), ma è meno visibile nell'accesso gestito. Quando risolvi i problemi relativi alla MFA, procedi a ritroso dai risultati degli utenti alle configurazioni del profilo utente e del pool di utenti che hanno contribuito alla decisione.

![\[Un diagramma del processo decisionale dei pool di utenti di Amazon Cognito per la selezione dell'MFA dell'utente finale.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-mfa-decision-tree.png)


L'elenco seguente corrisponde alla numerazione nel diagramma della logica decisionale e descrive ogni fase in dettaglio. A ![\[checkmark\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png) indica l'avvenuta autenticazione e la conclusione del flusso. A ![\[error\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/error.png) indica un'autenticazione non riuscita.

1. Un utente presenta il proprio nome utente o nome utente e password nella schermata di accesso. Se non presenta credenziali valide, la sua richiesta di accesso viene rifiutata. 

1. Se riescono ad autenticare nome utente e password, stabilisci se l'autenticazione MFA è obbligatoria, facoltativa o disattivata. Se è disattivata, il nome utente e la password corretti garantiscono una corretta autenticazione. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Se l'autenticazione MFA è facoltativa, determina se l'utente ha precedentemente configurato un autenticatore TOTP. Se hanno impostato TOTP, richiedi TOTP MFA. Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Determina se la funzionalità di autenticazione adattiva della protezione dalle minacce ha richiesto all'utente di configurare la MFA. Se non ha assegnato l'MFA, l'utente ha effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

1. Se l'MFA è richiesta o l'autenticazione adattiva ha assegnato l'MFA, determina se l'utente ha impostato un fattore MFA come abilitato e preferito. Se lo hanno fatto, richiedi l'MFA con quel fattore. Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

1. Se l'utente non ha impostato una preferenza MFA, determina se l'utente ha registrato un autenticatore TOTP.

   1. Se l'utente ha registrato un autenticatore TOTP, determina se TOTP MFA è disponibile nel pool di utenti (TOTP MFA può essere disabilitato dopo che gli utenti hanno precedentemente configurato gli autenticatori).

   1. Determina se nel pool di utenti è disponibile anche l'MFA per messaggi di posta elettronica o SMS.

   1.  Se non sono disponibili né MFA per e-mail né SMS, richiedi all'utente l'MFA TOTP. Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Se l'MFA tramite e-mail o SMS è disponibile, stabilisci se l'utente dispone dell'attributo `email` o `phone_number` corrispondente. In tal caso, hanno a disposizione qualsiasi attributo che non sia il metodo principale per il ripristino degli account in modalità self-service e sia abilitato per l'MFA.

   1. Segnala all'utente una `SELECT_MFA_TYPE` sfida con `MFAS_CAN_SELECT` opzioni che includono TOTP e i fattori MFA disponibili per SMS o e-mail.

   1.  Richiedi all'utente il fattore che ha selezionato in risposta alla sfida. `SELECT_MFA_TYPE` Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

1. Se l'utente non ha registrato un autenticatore TOTP o se lo ha ma l'MFA TOTP è attualmente disabilitato, determina se l'utente dispone di un attributo or. `email` `phone_number`

1.  Se l'utente ha solo un indirizzo e-mail o solo un numero di telefono, stabilisci se tale attributo è anche il metodo implementato dal pool di utenti per inviare messaggi di ripristino dell'account per la reimpostazione della password. Se vero, non possono completare l'accesso con la MFA richiesta e Amazon Cognito restituisce un errore. Per attivare l'accesso per questo utente, devi aggiungere un attributo non di ripristino o registrare un autenticatore TOTP per lui. ![\[alt text not found\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/error.png)

   1. Se è disponibile un indirizzo e-mail o un numero di telefono non ripristinabile, stabilisci se il fattore MFA e-mail o SMS corrispondente è abilitato.

   1. Se hanno un attributo di indirizzo e-mail non ripristinabile e l'MFA e-mail è abilitata, richiedi loro una richiesta. `EMAIL_OTP` Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Se hanno un attributo di numero di telefono non ripristinabile e l'autenticazione MFA SMS è abilitata, inviagli un messaggio di sfida. `SMS_MFA` Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Se non hanno un attributo idoneo per un fattore MFA e-mail o SMS abilitato, stabilisci se TOTP MFA è abilitato. Se la MFA TOTP è disabilitata, non possono completare l'accesso con la MFA richiesta e Amazon Cognito restituisce un errore. Per attivare l'accesso per questo utente, devi aggiungere un attributo non di ripristino o registrare un autenticatore TOTP per lui. ![\[alt text not found\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/error.png)
**Nota**  
Questo passaggio è già stato valutato come **No** se l'utente dispone di un autenticatore TOTP ma l'MFA TOTP è disabilitato.

   1. Se la MFA TOTP è abilitata, presenta all'utente `MFA_SETUP` una sfida tra `SOFTWARE_TOKEN_MFA` le opzioni. `MFAS_CAN_SETUP` Per completare questa sfida, devi registrare separatamente un autenticatore TOTP per l'utente e con cui rispondere. `"ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]", "SESSION": "[Session ID from VerifySoftwareToken]}"`

   1. Dopo che l'utente ha risposto alla `MFA_SETUP` sfida con il token di sessione contenuto in una [VerifySoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html)richiesta, richiedigli una sfida. `SOFTWARE_TOKEN_MFA` Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

1. Se l'utente dispone sia di un indirizzo e-mail che di un numero di telefono, determina quale attributo, se presente, è il metodo principale per i messaggi di ripristino dell'account per la reimpostazione della password.

   1. Se il ripristino self-service dell'account è disabilitato, entrambi gli attributi possono essere utilizzati per l'MFA. Determina se uno o entrambi i fattori MFA e-mail e SMS sono abilitati.

   1. Se entrambi gli attributi sono abilitati come fattore MFA, richiedi all'utente una `SELECT_MFA_TYPE` sfida con `MFAS_CAN_SELECT` le opzioni e. `SMS_MFA` `EMAIL_OTP`

   1. Richiedete loro il fattore che scelgono in risposta alla sfida. `SELECT_MFA_TYPE` Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

   1. Se solo un attributo è un fattore MFA idoneo, proponi loro una sfida per il fattore rimanente. Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

      Questo risultato si verifica nei seguenti scenari.

      1. Se dispongono di `phone_number` attributi `email` e, l'MFA per SMS ed e-mail sono abilitati e il metodo principale di ripristino dell'account è tramite e-mail o messaggio SMS.

      1. Se dispongono `email` di `phone_number` attributi, è abilitato solo l'MFA SMS o l'MFA e-mail e il ripristino self-service dell'account è disabilitato.

1. Se l'utente non ha registrato un autenticatore TOTP e non ha né l'`phone_number`attributo `email` nor, richiedigli una sfida. `MFA_SETUP` L'elenco `MFAS_CAN_SETUP` include tutti i fattori MFA abilitati nel pool di utenti che non sono l'opzione principale di ripristino dell'account. Possono rispondere a questa sfida con la posta elettronica o `ChallengeResponses` l'MFA TOTP. Per configurare SMS MFA, aggiungi separatamente un attributo di numero di telefono e riavvia l'autenticazione.

   Per TOTP MFA, rispondi con. `"ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]", "SESSION": "[Session ID from VerifySoftwareToken]"}`

   Per la MFA via e-mail, rispondi con. `"ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]", "email": "[user's email address]"}`

   1. Chiedi loro di indicare il fattore che scelgono in risposta alla `SELECT_MFA_TYPE` sfida. Se rispondono con successo alla sfida MFA, hanno effettuato l'accesso. ![\[Green circular icon with a checkmark symbol inside.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/checkmark.png)

## Configurare un pool di utenti per l'autenticazione a più fattori
<a name="user-pool-configuring-mfa"></a>

Puoi configurare l'MFA nella console Amazon Cognito o con il funzionamento [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html)dell'API e i metodi SDK.

**Come configurare l'autenticazione MFA nella console Amazon Cognito**

1. Accedi alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Scegli **User Pools** (Pool di utenti).

1. Scegli un bacino d'utenza esistente dall'elenco o [creane uno nuovo](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. **Scegli il menu di accesso.** **Individua **l'autenticazione a più fattori** e scegli Modifica.**

1. Scegli il metodo di **applicazione dell'MFA** che desideri utilizzare con il bacino d'utenza.  
![\[Uno screenshot della console Amazon Cognito con opzioni MFA.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-mfa.png)

   1. **Richiedi MFA**. Tutti gli utenti del tuo pool di utenti devono accedere con un codice SMS, e-mail o password monouso (TOTP) aggiuntivo come fattore di autenticazione aggiuntivo.

   1. **MFA opzionale**. Puoi offrire ai tuoi utenti la possibilità di registrare un fattore di accesso aggiuntivo, ma consentire comunque agli utenti che non hanno configurato l'MFA di accedere. Scegli questa opzione se utilizzi l'autenticazione adattiva. Per ulteriori informazioni sull'autenticazione adattiva, consulta [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md).

   1. **Nessuna MFA**. Gli utenti non possono registrare un ulteriore fattore di accesso.

1. Scegli i **metodi MFA** da supportare nell'app. Puoi impostare messaggi di **posta elettronica, messaggi** **SMS** o app di **autenticazione che generano TOTP come secondo fattore**.

1. Se utilizzi gli SMS come secondo fattore e non disponi di un ruolo IAM configurato per l'utilizzo con Amazon Simple Notification Service (Amazon SNS) per gli SMS, puoi crearne uno nella console. **Nel menu **Metodi di autenticazione** per il tuo pool di utenti, individua **gli SMS** e scegli Modifica.** Puoi anche utilizzare un ruolo esistente che consente ad Amazon Cognito di inviare messaggi SMS agli utenti per tuo conto. Per ulteriori informazioni, consulta [IAM Roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) (Ruoli IAM).

   Se utilizzi i messaggi e-mail come secondo fattore e non hai configurato un'identità di origine da utilizzare con Amazon Simple Email Service (Amazon SES) per i messaggi e-mail, creane una nella console. Devi scegliere l'opzione **Invia e-mail con SES**. Nel menu **Metodi di autenticazione** per il tuo pool di utenti, individua **Email** e scegli **Modifica**. Seleziona un **indirizzo email FROM** dalle identità verificate disponibili nell'elenco. Se scegli un dominio verificato, ad esempio`example.com`, devi anche configurare un **nome mittente FROM** nel dominio verificato, ad esempio. `admin-noreply@example.com`

1. Scegli **Save changes** (Salva modifiche).

# MFA per SMS e messaggi e-mail
<a name="user-pool-settings-mfa-sms-email-message"></a>

I messaggi MFA via SMS ed e-mail confermano che gli utenti hanno accesso a una destinazione dei messaggi prima di poter accedere. Confermano di avere accesso non solo a una password, ma anche ai messaggi SMS o alla casella di posta elettronica dell'utente originale. Amazon Cognito richiede agli utenti di fornire un codice breve che il pool di utenti ha inviato dopo aver fornito correttamente un nome utente e una password.

La MFA per SMS e messaggi e-mail non richiede alcuna configurazione aggiuntiva dopo che l'utente ha aggiunto un indirizzo e-mail o un numero di telefono al proprio profilo. Amazon Cognito può inviare messaggi a indirizzi e-mail e numeri di telefono non verificati. Quando un utente completa la prima MFA, Amazon Cognito contrassegna il proprio indirizzo e-mail o numero di telefono come verificato.

L'autenticazione MFA inizia quando un utente con MFA inserisce nome utente e password nell'applicazione. L'applicazione invia questi parametri iniziali in un metodo SDK che richiama una richiesta o API. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) La risposta `ChallengeParameters` nell'API include un `CODE_DELIVERY_DESTINATION` valore che indica dove è stato inviato il codice di autorizzazione. Nell'applicazione, visualizza un modulo che richiede all'utente di controllare il proprio telefono e include un elemento di input per il codice. Quando inserisce il codice, invialo in una richiesta API di risposta alla sfida per completare la procedura di accesso.

Dopo che un utente con MFA accede con nome utente e password nelle pagine di [accesso gestite](cognito-user-pools-managed-login.md), gli viene richiesto automaticamente il codice MFA.

I pool di utenti inviano messaggi SMS per MFA e altre notifiche Amazon Cognito con le risorse Amazon Simple Notification Service (Amazon SNS) presenti nelle tue. Account AWS Allo stesso modo, i pool di utenti inviano messaggi e-mail con le risorse Amazon Simple Email Service (Amazon SES) presenti nel tuo account. Questi servizi collegati comportano costi propri sulla AWS fattura per la consegna dei messaggi. Inoltre, prevedono requisiti aggiuntivi per l'invio di messaggi a volumi di produzione. Per ulteriori informazioni, consulta i seguenti collegamenti:
+ [Impostazioni dei messaggi SMS per i bacini d'utenza di Amazon Cognito](user-pool-sms-settings.md)
+ [Prezzi SMS a livello mondiale](https://aws.amazon.com/sns/sms-pricing/)
+ [Impostazioni e-mail per i bacini d'utenza di Amazon Cognito](user-pool-email.md)
+ [Prezzi di Amazon SES](https://aws.amazon.com/ses/pricing)

## Considerazioni sull'MFA per SMS e messaggi di posta elettronica
<a name="user-pool-settings-mfa-sms-email-message-considerations"></a>
+ Per consentire agli utenti di accedere con l'MFA e-mail, il pool di utenti deve disporre delle seguenti opzioni di configurazione:

  1. Hai il piano di funzionalità Plus o Essentials nel tuo pool di utenti. Per ulteriori informazioni, consulta [Piani di funzionalità del pool di utenti](cognito-sign-in-feature-plans.md).

  1. Il tuo pool di utenti invia messaggi e-mail con le tue risorse Amazon SES. Per ulteriori informazioni, consulta [Configurazione e-mail di Amazon SES](user-pool-email.md#user-pool-email-developer).
+ Il codice MFA è valido per la **durata della sessione del flusso di autenticazione** impostata per il client dell'app.

  Imposta la durata di una sessione del flusso di autenticazione nella console Amazon Cognito nel menu **App client** quando **modifichi** il client dell'app. È possibile impostare la durata della sessione del flusso di autenticazione anche all'interno della richiesta API `CreateUserPoolClient` o `UpdateUserPoolClient`. Per ulteriori informazioni, consulta [Un esempio di sessione di autenticazione](authentication.md#amazon-cognito-user-pools-authentication-flow).
+ Quando un utente fornisce correttamente un codice da un messaggio SMS o e-mail inviato da Amazon Cognito a un numero di telefono o indirizzo e-mail non verificato, Amazon Cognito contrassegna l'attributo corrispondente come verificato.
+ Affinché un utente possa apportare una modifica self-service al valore di un numero di telefono o di un indirizzo e-mail associato alla MFA, deve accedere e autorizzare la richiesta con un token di accesso. Se non riescono ad accedere al loro attuale numero di telefono o indirizzo e-mail, non possono accedere. Il team deve modificare questi valori con AWS le credenziali di amministratore nelle richieste [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API.
+ Dopo aver [configurato gli SMS](user-pool-sms-settings.md) nel tuo pool di utenti, non puoi disabilitare i messaggi SMS come fattore MFA disponibile.

# Autenticazione MFA con token di software TOTP
<a name="user-pool-settings-mfa-totp"></a>

Quando configuri l'autenticazione MFA con token di software TOTP nel pool di utenti, l'utente accede con nome utente e password, quindi utilizza un TOTP per completare l'autenticazione. Dopo che l'utente imposta e verifica nome utente e password, può attivare un token software TOTP per l'autenticazione MFA. Se la tua app utilizza l'accesso gestito di Amazon Cognito per accedere agli utenti, l'utente invia nome utente e password, quindi invia la password TOTP in una pagina di accesso aggiuntiva.

Puoi attivare l'autenticazione MFA con TOTP per il bacino d'utenza nella console Amazon Cognito oppure utilizzando le operazioni API di Amazon Cognito. A livello di pool di utenti, puoi chiamare [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html)per configurare l'MFA e abilitare TOTP MFA.

**Nota**  
Se l'autenticazione MFA con token software TOTP non è attivata per il bacino d'utenza, Amazon Cognito non può usare i token per associare o verificare gli utenti. In questo caso, gli utenti ricevono un'eccezione `SoftwareTokenMFANotFoundException` con la descrizione `Software Token MFA has not been enabled by the userPool`. Se in seguito disattivi l'autenticazione MFA tramite token software per il bacino d'utenza, gli utenti che hanno precedentemente associato e verificato un token TOTP possono continuare a utilizzarlo per l'MFA.

La configurazione del metodo TOTP per gli utenti è un processo in più fasi in cui l'utente riceve un codice segreto che convalida immettendo una password monouso. Quindi, puoi abilitare l'MFA con TOTP per l'utente o impostare la password TOTP come metodo preferito di MFA per l'utente.

Quando configuri il tuo pool di utenti per richiedere la MFA TOTP e gli utenti si iscrivono alla tua app nell'accesso gestito, Amazon Cognito automatizza il processo utente. Amazon Cognito richiede all'utente di scegliere un metodo di autenticazione MFA, visualizza un codice QR per configurare l'app Authenticator e verifica la registrazione MFA. Nei pool di utenti in cui si è consentito agli utenti di scegliere tra l'autenticazione MFA con SMS e con token di software TOTP, Amazon Cognito consente all'utente di scegliere uno dei metodi disponibili.

**Importante**  
Quando hai un ACL AWS WAF web associato a un pool di utenti e una regola nell'ACL web presenta un CAPTCHA, ciò può causare un errore irreversibile nella registrazione TOTP con accesso gestito. Per creare una regola che abbia un'azione CAPTCHA e non influisca sul TOTP dell'accesso gestito, consulta. [Configurazione dell'ACL AWS WAF Web per l'accesso gestito TOTP MFA](#totp-waf) Per ulteriori informazioni sul AWS WAF web ACLs e Amazon Cognito, consulta. [Associa un ACL AWS WAF web a un pool di utenti](user-pool-waf.md)

Per implementare TOTP MFA in un'interfaccia utente personalizzata con AWS un SDK e l'API dei pool di utenti di [Amazon Cognito](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html), consulta. [Configurazione dell'MFA TOTP per un utente](#totp-mfa-set-up-api)

Per aggiungere l'autenticazione MFA al bacino d'utenza, consulta [Aggiunta dell'autenticazione MFA a un bacino d'utenza](user-pool-settings-mfa.md).

**Considerazioni e limitazioni riguardo all'MFA con TOTP**

1. Amazon Cognito supporta l'MFA con token software tramite un'app di autenticazione che genera i codici TOTP. Amazon Cognito non supporta l'MFA basata su hardware.

1. Quando il tuo bacino d'utenza richiede una TOTP per un utente che non l'ha configurata, l'utente riceve un token di accesso monuso che la tua app può utilizzare per attivare l'MFA con TOTP per l'utente. I tentativi di accesso successivi non riescono finché l'utente non registra un ulteriore fattore di accesso con TOTP.
   + Un utente che si iscrive al tuo pool di utenti con l'operazione `SignUp` API o tramite accesso gestito riceve token monouso quando completa la registrazione.
   + Dopo aver creato un utente e aver impostato la password iniziale, Amazon Cognito emette token monouso dall'accesso gestito all'utente. Se imposti una password permanente per l'utente, Amazon Cognito emette token monouso quando l'utente accede per la prima volta.
   + Amazon Cognito non rilascia token monouso a un utente creato dall'amministratore che accede con le operazioni o API. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Dopo che l'utente ha impostato correttamente la password iniziale o che tu hai impostato una password permanente per l'utente, Amazon Cognito richiede immediatamente all'utente di configurare l'MFA.

1. Se un utente in un pool di utenti che richiede l'autenticazione a più fattori ha già ricevuto un token di accesso monouso ma non ha configurato TOTP MFA, l'utente non può accedere con l'accesso gestito finché non ha configurato l'MFA. Invece del token di accesso, puoi utilizzare il valore di `session` risposta di una `MFA_SETUP` sfida o contenuto in una richiesta. [InitiateAuth[AdminInitiateAuth[AssociateSoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)

1. Se gli utenti hanno impostato la TOTP, possono utilizzarla per l'MFA anche se in seguito la disattivi per il bacino d'utenza.

1. Amazon Cognito accetta solo app TOTPs di autenticazione che generano codici con la funzione HMAC-Hash. SHA1 I codici generati con l'hashing SHA-256 restituiscono un errore `Code mismatch`.

## Configurazione dell'MFA TOTP per un utente
<a name="totp-mfa-set-up-api"></a>

Quando un utente accede per la prima volta, l'app utilizza il token di accesso monouso per generare la chiave privata TOTP e presentarla all'utente in formato testo o codice QR. L'utente configura la propria app di autenticazione e fornisce un TOTP per i successivi tentativi di accesso. L'app o l'accesso gestito presentano il TOTP ad Amazon Cognito nelle risposte alle sfide MFA.

In alcune circostanze, l'accesso gestito richiede ai nuovi utenti di configurare un autenticatore TOTP. Per ulteriori informazioni, consulta. [Dettagli della logica MFA in fase di esecuzione dell'utente](user-pool-settings-mfa.md#user-pool-settings-mfa-user-outcomes)

**Topics**
+ [Associazione del token di software TOTP](#user-pool-settings-mfa-totp-associate-token)
+ [Verifica del token TOTP](#user-pool-settings-mfa-totp-verification)
+ [Accesso usando l'MFA con TOTP](#user-pool-settings-mfa-totp-sign-in)
+ [Rimozione del token TOTP](#user-pool-settings-mfa-totp-remove)

### Associazione del token di software TOTP
<a name="user-pool-settings-mfa-totp-associate-token"></a>

Per associare il token TOTP, invia al tuo utente un codice segreto che deve convalidare con una password monouso. Per l'associazione del token sono necessari tre passaggi.

1. Quando l'utente sceglie il token software TOTP MFA, chiama [AssociateSoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html)per restituire un codice chiave segreto condiviso generato univoco per l'account utente. Puoi autorizzare AssociateSoftwareToken con un token di accesso o una stringa di sessione. 

1. La tua app presenta all'utente la chiave privata o un codice QR generato dalla chiave privata. L'utente deve inserire la chiave in un'app che genera TOTP come Google Authenticator, scansionando il codice QR generato dall'applicazione dalla chiave privata o inserendo manualmente la chiave.

1. L'utente inserisce la chiave o scansiona il codice QR in un'app di autenticazione come Google Authenticator che inizia a generare codici.

### Verifica del token TOTP
<a name="user-pool-settings-mfa-totp-verification"></a>

Poi, verifica del token TOTP. Richiedi codici di esempio dal tuo utente e forniscili al servizio Amazon Cognito per confermare che l'utente sta generando correttamente i codici TOTP, come indicato di seguito.

1. L'app richiede all'utente un codice per dimostrare di aver configurato correttamente l'app di autenticazione.

1. L'app di autenticazione dell'utente mostra una password temporanea. L'app di autenticazione crea la password in base alla chiave segreta che hai fornito all'utente.

1. L'utente inserisce la password temporanea. La tua app passa la password temporanea ad Amazon Cognito in una Richiesta API `[VerifySoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html)`.

1.  Amazon Cognito ha mantenuto la chiave segreta associata all'utente, genera una TOTP e la confronta con quella fornita dall'utente. Se corrispondono,`VerifySoftwareToken` restituisce una risposta `SUCCESS`.

1. Amazon Cognito associa il fattore TOTP all'utente.

1. Se l'operazione `VerifySoftwareToken` restituisce una risposta `ERROR`, assicurati che il segnale di clock dell'utente sia corretto e che l'utente non abbia superato il numero massimo di tentativi. Amazon Cognito accetta token TOTP entro 30 secondi prima o dopo il tentativo, per tenere conto del minore sfasamento del segnal di clock. Una volta risolto il problema, riprova l'operazione. VerifySoftwareToken 

### Accesso usando l'MFA con TOTP
<a name="user-pool-settings-mfa-totp-sign-in"></a>

A questo punto, l'utente accede con la password una tantum a tempo. Il procedimento è riportato di seguito.

1. L'utente inserisce il nome utente e la password per accedere all'app client.

1. Viene invocata la richiesta dell'MFA con TOTP e l'app chiede all'utente di immettere una password temporanea.

1. L'utente ottiene la password temporanea da un'app per la generazione di password TOTP associata.

1. L'utente inserisce il codice TOTP nell'app client. L'app notifica al servizio Amazon Cognito di verificarlo. Per ogni accesso, [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)deve essere chiamato per ottenere una risposta alla nuova sfida di autenticazione TOTP.

1. Se il token è verificato da Amazon Cognito, l'accesso viene completato correttamente e l'utente procede nel flusso di autenticazione. 

### Rimozione del token TOTP
<a name="user-pool-settings-mfa-totp-remove"></a>

Infine, l'app dovrebbe consentire all'utente di disattivare la configurazione TOTP. Al momento non puoi eliminare il token di software TOTP di un utente. Per sostituire il token di software dell'utente, associa e verifica un nuovo token di software. Per disattivare TOTP MFA per un utente, chiama [SetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html)per modificare il tuo utente in modo che non utilizzi MFA o solo SMS MFA.

1. Crea un'interfaccia nell'app per gli utenti che desiderano reimpostare MFA. Richiedi a un utente in questa interfaccia di inserire la password.

1. Se Amazon Cognito restituisce una sfida MFA TOTP, aggiorna la preferenza MFA dell'utente con. [SetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html)

1. Nell'app, comunica all'utente che MFA è stata disattivata e chiedi di effettuare nuovamente l'accesso.

## Configurazione dell'ACL AWS WAF Web per l'accesso gestito TOTP MFA
<a name="totp-waf"></a>

Quando hai un ACL AWS WAF web associato a un pool di utenti e una regola nell'ACL web presenta un CAPTCHA, ciò può causare un errore irreversibile nella registrazione TOTP con accesso gestito. AWS WAF Le regole CAPTCHA hanno questo effetto *solo* sull'MFA TOTP nell'accesso gestito e nella classica interfaccia utente ospitata. L'autenticazione MFA con SMS rimane invariata.

Amazon Cognito visualizza il seguente errore quando la regola CAPTCHA non consente a un utente di completare la configurazione dell'autenticazione MFA con token di software TOTP. 

Request not allowed due to WAF captcha (Richiesta non consentita a causa di un'azione CAPTCHA WAF).

Questo errore si verifica quando viene AWS WAF richiesto un CAPTCHA in risposta alle [AssociateSoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html)richieste [VerifySoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html)API effettuate in background dal pool di utenti. Per creare una regola che abbia un'azione CAPTCHA e non influisca sul TOTP nelle pagine di accesso gestite, escludi i valori di `x-amzn-cognito-operation-name` intestazione di `AssociateSoftwareToken` e `VerifySoftwareToken` dall'azione CAPTCHA nella regola.

La schermata seguente mostra una AWS WAF regola di esempio che applica un'azione CAPTCHA a tutte le richieste che non hanno un valore di intestazione pari a o. `x-amzn-cognito-operation-name` `AssociateSoftwareToken` `VerifySoftwareToken`

![\[Uno screenshot di una AWS WAF regola che applica un'azione CAPTCHA a tutte le richieste che non hanno un valore di intestazione pari a o. x-amzn-cognito-operation-name AssociateSoftwareToken VerifySoftwareToken\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-WAF-rule-TOTP.png)


Per ulteriori informazioni sul AWS WAF web ACLs e Amazon Cognito, consulta. [Associa un ACL AWS WAF web a un pool di utenti](user-pool-waf.md)