

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

# Utilizzo delle caratteristiche di sicurezza dei pool di utenti di Amazon Cognito
<a name="managing-security"></a>

Potresti voler proteggere la tua applicazione dalle intrusioni di rete, dall'indovinazione delle password, dall'impersonificazione degli utenti e da iscrizioni e accessi malintenzionati. La configurazione delle funzionalità di sicurezza dei pool di utenti di Amazon Cognito può essere un componente chiave della tua architettura di sicurezza. La sicurezza della tua applicazione è *responsabilità del cliente («Sicurezza nel cloud»*), come descritto nel [Modello di responsabilità AWS condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/). Gli strumenti di questo capitolo contribuiscono a far sì che la progettazione della sicurezza delle applicazioni sia in linea con questi obiettivi.

Una decisione importante da prendere quando si configura il pool di utenti è se consentire la registrazione e l'accesso pubblici. Alcune opzioni relative ai pool di utenti, come i client riservati, la creazione e la conferma amministrativa degli utenti e i pool di utenti senza dominio, sono soggette in misura minore agli attacchi su Internet. Tuttavia, un caso d'uso comune sono i client pubblici che accettano l'iscrizione di chiunque su Internet e inviano tutte le operazioni direttamente al pool di utenti. In qualsiasi configurazione, ma soprattutto nel caso di queste configurazioni pubbliche, consigliamo di pianificare e implementare il pool di utenti tenendo conto delle funzionalità di sicurezza. Una sicurezza insufficiente può influire sulla AWS bolletta anche quando fonti indesiderate creano nuovi utenti attivi o tentano di sfruttare gli utenti esistenti.

La MFA e la protezione dalle minacce si applicano agli utenti [locali](cognito-terms.md#terms-localuser). IdPs Le terze parti sono responsabili del livello di sicurezza degli utenti [federati](cognito-terms.md#terms-federateduser).Funzionalità di sicurezza dei pool di utenti

**Autenticazione a più fattori (MFA)**  
Richiedi un codice che il tuo pool di utenti invii tramite e-mail (con il piano di funzionalità Essentials o Plus) o SMS o da un'app di autenticazione per confermare l'accesso al pool di utenti.

**Protezione dalle minacce**  
Monitora l'accesso per individuare gli indicatori di rischio e applica la MFA o blocca l'accesso. Aggiungi attestazioni e ambiti personalizzati per accedere ai token. Invia codici MFA tramite e-mail.

**AWS WAF web ACLs**  
Ispeziona il traffico in entrata verso gli [endpoint del tuo pool di utenti e l'API di autenticazione](authentication-flows-public-server-side.md#user-pools-API-operations) per individuare attività indesiderate a livello di rete e di applicazione.

**Sensibilità alle maiuscole**  
Impedisci la creazione di utenti il cui indirizzo e-mail o nome utente preferito sia identico a un altro utente, ad eccezione delle maiuscole e minuscole.

**Protezione da eliminazione**  
Impedite ai sistemi automatici di eliminare accidentalmente i vostri pool di utenti. Richiedi un'ulteriore conferma dell'eliminazione del pool di utenti in. Console di gestione AWS

**Errori di esistenza degli utenti**  
Evita la divulgazione di nomi utente e alias esistenti nel tuo pool di utenti. Restituisce un errore generico in risposta all'autenticazione non riuscita, indipendentemente dal fatto che il nome utente sia valido o meno.

**Topics**
+ [Aggiunta dell'autenticazione MFA a un bacino d'utenza](user-pool-settings-mfa.md)
+ [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md)
+ [Associa un ACL AWS WAF web a un pool di utenti](user-pool-waf.md)
+ [Distinzione tra maiuscole e minuscole del bacino d'utenza](user-pool-case-sensitivity.md)
+ [Protezione da eliminazione del bacino d'utenza](user-pool-settings-deletion-protection.md)
+ [Gestione delle risposte agli errori relativi all'esistenza degli utenti](cognito-user-pool-managing-errors.md)

# 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)

# Sicurezza avanzata con protezione dalle minacce
<a name="cognito-user-pool-settings-threat-protection"></a>

Dopo aver creato il pool di utenti, puoi accedere alla **protezione dalle minacce** nel menu di navigazione della console Amazon Cognito. Puoi attivare le funzionalità di protezione dalle minacce e personalizzare le azioni intraprese in risposta a diversi rischi. In alternativa, si può utilizzare la modalità di controllo per raccogliere i parametri sui rischi rilevati, senza applicare mitigazioni della sicurezza. In modalità di controllo, la protezione dalle minacce pubblica i parametri su Amazon. CloudWatch Puoi visualizzare le metriche dopo che Amazon Cognito ha generato il suo primo evento. Per informazioni, consulta [Visualizzazione delle metriche di protezione dalle minacce](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics).

La protezione dalle minacce, precedentemente denominata *funzionalità di sicurezza avanzate*, è un insieme di strumenti di monitoraggio delle attività indesiderate nel pool di utenti e strumenti di configurazione per arrestare automaticamente le attività potenzialmente dannose. La protezione dalle minacce offre diverse opzioni di configurazione per le operazioni di autenticazione standard e personalizzate. Ad esempio, potresti voler inviare una notifica a un utente con un accesso di autenticazione personalizzato sospetto, in cui hai impostato fattori di sicurezza aggiuntivi, ma bloccare un utente allo stesso livello di rischio con l'autenticazione di base tra nome utente e password.

La protezione dalle minacce è disponibile nel piano di funzionalità Plus. Per ulteriori informazioni, consulta [Piani di funzionalità del pool di utenti](cognito-sign-in-feature-plans.md).

Le seguenti opzioni del pool di utenti sono i componenti della protezione dalle minacce.

**Credenziali compromesse**  
Gli utenti riutilizzano le password per più account utente. La funzionalità credenziali compromesse di Amazon Cognito compila i dati di fughe pubbliche di nomi utente e password e confronta le credenziali degli utenti con gli elenchi di credenziali divulgate. Il rilevamento delle credenziali compromesse verifica inoltre la presenza di password facilmente indovinate. È possibile verificare la presenza di credenziali compromesse nei flussi di autenticazione username-and-password standard nei pool di utenti. Amazon Cognito non rileva credenziali compromesse nella password remota sicura (SRP) o nell'autenticazione personalizzata.  
Puoi scegliere le azioni dell'utente che richiedono la verifica della presenza di credenziali compromesse e l'azione che deve effettuare Amazon Cognito in risposta. Per gli eventi di accesso, registrazione e modifica della password, Amazon Cognito può scegliere tra le opzioni **Blocca l'accesso** o **Consenti l'accesso**. In entrambi i casi, Amazon Cognito genera un registro delle attività degli utenti in cui è possibile trovare ulteriori informazioni sull'evento.  
**Ulteriori informazioni**  
[Utilizzo del rilevamento di credenziali compromesse](cognito-user-pool-settings-compromised-credentials.md)

**Autenticazione adattiva**  
Amazon Cognito può esaminare le informazioni sulla posizione e il dispositivo delle richieste di accesso degli utenti e applicare una risposta automatica per proteggere gli account utente del pool di utenti da attività sospette. È possibile monitorare l'attività degli utenti e automatizzare le risposte ai livelli di rischio rilevati in termini di nome utente-password, SRP e autenticazione personalizzata.  
Quando attivi la protezione dalle minacce, Amazon Cognito assegna un punteggio di rischio all'attività degli utenti. Puoi assegnare una risposta automatica all'attività sospetta: puoi scegliere tra le opzioni **Richiedi MFA**, **Blocca l'accesso** o semplicemente registrare i dettagli dell'attività e il punteggio di rischio. Puoi anche inviare automaticamente messaggi e-mail che informano l'utente dell'attività sospetta in modo che possa reimpostare la password o eseguire altre azioni autogestite.  
**Ulteriori informazioni**  
[Utilizzo dell'autenticazione adattiva](cognito-user-pool-settings-adaptive-authentication.md)

**Elenco di indirizzi IP consentiti e elenchi di indirizzi IP**  
Con la protezione dalle minacce di Amazon Cognito in modalità **Full function**, puoi creare indirizzi IP **Always block e Always** **allow eccezioni**. A una sessione il cui indirizzo IP è nella lista delle eccezioni **Blocca sempre** non viene assegnato un livello di rischio tramite autenticazione adattiva e non può accedere al bacino d'utenza.  

**Cose da sapere sugli elenchi di indirizzi IP consentiti e bloccati**
+ È necessario esprimere **Always block** e **Always allow** in formato CIDR`192.0.2.0/24`, ad esempio una maschera a 24 bit o `192.0.2.252/32` un singolo indirizzo IP.
+  I dispositivi con indirizzi IP in un intervallo IP **Always block** non possono registrarsi o accedere con applicazioni di accesso gestite o basate su SDK, ma possono accedere con terze parti. IdPs 
+ Gli elenchi **Consenti sempre** **e blocca sempre** non influiscono sull'aggiornamento dei token.
+ Amazon Cognito non applica regole MFA di autenticazione adattiva ai dispositivi appartenenti a un intervallo IP **Always allow**, ma applica regole sulle credenziali compromesse.

**Esportazione dei log**  
La protezione dalle minacce registra i dettagli granulari delle richieste di autenticazione degli utenti nel pool di utenti. Questi registri contengono valutazioni delle minacce, informazioni sugli utenti e metadati delle sessioni come posizione e dispositivo. È possibile creare archivi esterni di questi registri per la conservazione e l'analisi. I pool di utenti di Amazon Cognito esportano i log di protezione dalle minacce su Amazon S3, Logs CloudWatch e Amazon Data Firehose. Per ulteriori informazioni, consulta [Visualizzazione ed esportazione della cronologia degli eventi degli utenti](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history).  
**Ulteriori informazioni**  
[Esportazione dei log delle attività degli utenti per la protezione dalle minacce](exporting-quotas-and-usage.md#exporting-quotas-and-usage-user-activity)

**Topics**
+ [Considerazioni e limitazioni per la protezione dalle minacce](#cognito-user-pool-threat-protection-considerations)
+ [Attivazione della protezione dalle minacce nei pool di utenti](#cognito-user-pool-threat-protection-activating)
+ [Concetti di applicazione della protezione dalle minacce](#cognito-user-pool-settings-threat-protection-threat-protection-enforcement)
+ [Protezione dalle minacce per l'autenticazione standard e l'autenticazione personalizzata](#cognito-user-pool-settings-threat-protection-threat-protection-types)
+ [Prerequisiti per la protezione dalle minacce](#cognito-user-pool-threat-protection-prerequisites)
+ [Impostazione della protezione dalle minacce](#cognito-user-pool-settings-configure-threat-protection)
+ [Utilizzo del rilevamento di credenziali compromesse](cognito-user-pool-settings-compromised-credentials.md)
+ [Utilizzo dell'autenticazione adattiva](cognito-user-pool-settings-adaptive-authentication.md)
+ [Raccolta di dati per la protezione dalle minacce nelle applicazioni](user-pool-settings-viewing-threat-protection-app.md)

## Considerazioni e limitazioni per la protezione dalle minacce
<a name="cognito-user-pool-threat-protection-considerations"></a>

**Le opzioni di protezione dalle minacce differiscono tra i flussi di autenticazione**  
Amazon Cognito supporta sia l'autenticazione adattiva che il rilevamento delle credenziali compromesse con i flussi di autenticazione e. `USER_PASSWORD_AUTH` `ADMIN_USER_PASSWORD_AUTH` Puoi abilitare solo l'autenticazione adattiva per. `USER_SRP_AUTH` Non è possibile utilizzare la protezione dalle minacce con l'accesso federato.

**Blocca sempre i contributi per richiedere quote IPs**  
Le richieste bloccate provenienti da indirizzi IP nella lista delle eccezioni **Blocca sempre** nel tuo baclno d'utenza, contribuiscono alle [quote tariffarie per le richieste](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#category_operations) dei tuoi bacini d'utenza.

**La protezione dalle minacce non applica limiti di velocità**  
Parte del traffico malevolo presenta la caratteristica di un elevato volume di richieste, come gli attacchi Distributed Denial of Service (DDoS). Le valutazioni di rischio che Amazon Cognito applica al traffico in entrata si basano sulle singole richieste e non tengono conto del volume delle richieste. Le richieste individuali relative a un evento ad alto volume potrebbero ricevere un punteggio di rischio e una risposta automatica per motivi a livello di applicazione che non sono correlati al loro ruolo in un attacco volumetrico. Per implementare difese contro gli attacchi volumetrici nei tuoi pool di utenti, aggiungi web. AWS WAF ACLs Per ulteriori informazioni, consulta [Associa un ACL AWS WAF web a un pool di utenti](user-pool-waf.md).

**La protezione dalle minacce non influisce sulle richieste M2M**  
Le credenziali concesse ai client sono destinate all'autorizzazione machine-to-machine (M2M) senza connessione agli account utente. La protezione dalle minacce monitora solo gli account utente e le password nel pool di utenti. Per implementare funzionalità di sicurezza nella tua attività M2M, prendi in considerazione le funzionalità di monitoraggio della frequenza delle AWS WAF richieste e dei contenuti. Per ulteriori informazioni, consulta [Associa un ACL AWS WAF web a un pool di utenti](user-pool-waf.md).

## Attivazione della protezione dalle minacce nei pool di utenti
<a name="cognito-user-pool-threat-protection-activating"></a>

------
#### [ Amazon Cognito user pools console ]

**Per attivare la protezione dalle minacce per un pool di utenti**

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

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. Se non l'hai già fatto, attiva il piano di funzionalità Plus dal menu **Impostazioni**.

1. Scegli il menu **Protezione dalle minacce** e seleziona **Attiva**.

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

------
#### [ API ]

Imposta il tuo piano di funzionalità su Plus in una richiesta [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)o [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API. Il seguente esempio parziale del corpo della richiesta imposta la protezione dalle minacce sulla modalità a funzionamento completo. Per una richiesta di esempio completa, vedi [Esempi](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#API_CreateUserPool_Examples).

```
"UserPoolAddOns": { 
      "AdvancedSecurityMode": "ENFORCED"
   }
```

------

La protezione dalle minacce è il termine collettivo per le funzionalità che monitorano le operazioni degli utenti alla ricerca di segnali di acquisizione dell'account e rispondono automaticamente alla sicurezza degli account utente interessati. È possibile applicare le impostazioni di protezione dalle minacce agli utenti quando accedono con flussi di autenticazione standard e personalizzati.

La protezione dalle minacce [genera registri](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history) che descrivono in dettaglio l'accesso, la disconnessione e altre attività degli utenti. È possibile esportare questi registri su un sistema di terze parti. Per ulteriori informazioni, consulta [Visualizzazione ed esportazione della cronologia degli eventi degli utenti](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history).

## Concetti di applicazione della protezione dalle minacce
<a name="cognito-user-pool-settings-threat-protection-threat-protection-enforcement"></a>

La protezione dalle minacce inizia in una modalità di *solo controllo* in cui il pool di utenti monitora l'attività degli utenti, assegna i livelli di rischio e genera registri. *Come best practice, esegui in modalità di solo controllo per due o più settimane prima di abilitare la modalità con funzionalità complete.* La modalità con funzionalità complete include una serie di reazioni automatiche alle attività rischiose rilevate e alle password compromesse. Con la modalità di solo controllo, puoi monitorare le valutazioni delle minacce eseguite da Amazon Cognito. Puoi anche [fornire un feedback per addestrare](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-feedback) la funzionalità a rilevare falsi positivi e negativi.

È possibile configurare l'applicazione della protezione dalle minacce a livello di pool di utenti per coprire tutti i client di app del pool di utenti e a livello di singoli client di app. Le configurazioni di protezione dalle minacce del client dell'app hanno la precedenza sulla configurazione del pool di utenti. Per configurare la protezione dalle minacce per un client di app, accedi alle impostazioni del client dell'**app dal menu App client** del tuo pool di utenti nella console Amazon Cognito. Qui puoi **utilizzare le impostazioni a livello di client** e configurare l'applicazione esclusivamente per il client dell'app.

Inoltre, è possibile configurare la protezione dalle minacce separatamente per i tipi di autenticazione standard e personalizzati.

## Protezione dalle minacce per l'autenticazione standard e l'autenticazione personalizzata
<a name="cognito-user-pool-settings-threat-protection-threat-protection-types"></a>

I modi in cui è possibile configurare la protezione dalle minacce dipendono dal tipo di autenticazione che si esegue nel pool di utenti e nei client delle app. Ciascuno dei seguenti tipi di autenticazione può avere una propria modalità di applicazione e risposte automatiche.

**Autenticazione standard**  
*L'autenticazione standard* prevede l'accesso, la disconnessione e la gestione delle password degli utenti con flussi nome utente-password e accesso gestito. La protezione dalle minacce di Amazon Cognito monitora le operazioni alla ricerca di indicatori di rischio quando accedono con accesso gestito o utilizzano i seguenti parametri API: `AuthFlow`    
**[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)**  
`USER_PASSWORD_AUTH`,. `USER_SRP_AUTH` La funzionalità delle credenziali compromesse non ha accesso alle password durante `USER_SRP_AUTH` l'accesso e non monitora né agisce sugli eventi con questo flusso.  
**[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow)**  
`ADMIN_USER_PASSWORD_AUTH`,. `USER_SRP_AUTH` La funzionalità delle credenziali compromesse non ha accesso alle password durante `USER_SRP_AUTH` l'accesso e non monitora né agisce sugli eventi con questo flusso.
**È possibile impostare la **modalità Enforcement** per l'autenticazione standard su **Audit only** o Full function.** Per disabilitare il monitoraggio delle minacce per l'autenticazione standard, imposta la protezione dalle minacce **su Nessuna applicazione**.

**Autenticazione personalizzata**  
*L'autenticazione personalizzata* è l'accesso dell'utente con trigger [Lambda di sfida personalizzati](user-pool-lambda-challenge.md). Non è possibile eseguire l'autenticazione personalizzata nell'accesso gestito. La protezione dalle minacce di Amazon Cognito monitora le operazioni alla ricerca di indicatori di rischio quando accedono con il `AuthFlow` parametro `CUSTOM_AUTH` API di e. `InitiateAuth` `AdminInitiateAuth`  
Puoi impostare la **modalità di imposizione** per l'autenticazione personalizzata su **Solo controllo**, **Funzione completa** o **Nessuna** imposizione. L'opzione **No enforcement** disabilita il monitoraggio delle minacce per l'autenticazione personalizzata senza influire sulle altre funzionalità di protezione dalle minacce.

## Prerequisiti per la protezione dalle minacce
<a name="cognito-user-pool-threat-protection-prerequisites"></a>

Prima di iniziare, avrai bisogno di:
+ Un bacino d'utenza con un client dell'app. Per ulteriori informazioni, consulta [Nozioni di base sui bacini d'utenza](getting-started-user-pools.md).
+ Imposta l'autenticazione a più fattori (MFA) su **Facoltativa** nella console Amazon Cognito per utilizzare la caratteristica di autenticazione adattiva basata sul rischio. Per ulteriori informazioni, consulta [Aggiunta dell'autenticazione MFA a un bacino d'utenza](user-pool-settings-mfa.md).
+ Se utilizzi l'indirizzo e-mail per le notifiche, passa alla [console Amazon SES](https://console.aws.amazon.com/ses/home) per configurare e verificare un indirizzo e-mail o un dominio da utilizzare con le notifiche e-mail. Per ulteriori informazioni su Amazon SES, consulta [Verifica delle identità in Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html).

## Impostazione della protezione dalle minacce
<a name="cognito-user-pool-settings-configure-threat-protection"></a>

Segui queste istruzioni per configurare la protezione dalle minacce del pool di utenti.

**Nota**  
Per configurare una diversa configurazione di protezione dalle minacce per un client di app nella console dei pool di utenti di Amazon Cognito, seleziona il client dell'app dal menu **App client** e scegli **Usa impostazioni a livello di client**.

------
#### [ Console di gestione AWS ]

**Per configurare la protezione dalle minacce per un pool di utenti**

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

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 **Protezione dalle minacce** e seleziona Attiva.**

1. Scegli il metodo di protezione dalle minacce che desideri configurare: **autenticazione standard e personalizzata**. È possibile impostare diverse modalità di applicazione per l'autenticazione personalizzata e standard, ma entrambe condividono la configurazione delle risposte automatiche in modalità **Full function**.

1. Seleziona **Edit (Modifica)**.

1. Scegli una **modalità di applicazione**. Per iniziare a rispondere immediatamente ai rischi rilevati, seleziona **Funzione completa** e configura le risposte automatiche per le credenziali compromesse e l'autenticazione adattiva. **Per raccogliere informazioni nei log a livello di utente e in accesso, seleziona Solo controllo. CloudWatch**

   Si consiglia di mantenere la protezione dalle minacce in modalità di controllo per due settimane prima di abilitare le azioni. Durante questo periodo, Amazon Cognito può conoscere i modelli di utilizzo degli utenti della tua app e puoi fornire feedback sugli eventi per modificare le risposte.

1. Se hai selezionato **Audit only** (Solo audit), scegli **Save changes** (Salva modifiche). Se hai selezionato **Full function** (Funzione completa):

   1. Seleziona se intendi intraprendere operazioni **personalizzate** o utilizzare le **impostazioni predefinite di Cognito** in risposta al sospetto di **credenziali compromesse**. Le **Impostazioni predefinite di Cognito** sono:

      1. Rilevamento di credenziali compromesse all'**accesso**, alla **registrazione** e in caso di **modifica della password**.

      1. Rispondi alla compromissione delle credenziali con l'operazione **Blocca accesso**.

   1. Se hai selezionato **Custom** (Personalizza) per le operazioni relative alle **Compromised credentials** (Credenziali compromesse), scegli le operazioni del bacino d'utenza che Amazon Cognito utilizzerà per il **Rilevamento di eventi** e le **Risposte alle credenziali compromesse** che vorresti che Amazon Cognito mettesse in atto. Puoi eseguire le operazioni **Block sign-in** (Blocca accesso) o **Allow sign-in** (Consenti accesso) nel caso in cui vi sia il sospetto che le credenziali siano state compromesse.

   1. Scegli come rispondere ai tentativi di accesso dannosi alla voce **Adaptive authentication** (Autenticazione adattiva). Seleziona se intendi intraprendere operazioni **personalizzate** o utilizzare le **impostazioni predefinite di Cognito** in risposta a sospette attività dannose. Selezionando le **Impostazioni di default di Cognito**, Amazon Cognito bloccherà l'accesso a tutti i livelli di rischio e non notificherà l'utente.

   1. Se hai selezionato **Custom** (Personalizza) per **Adaptive authentication** (Autenticazione adattiva), scegli le operazioni di **Automatic risk response** (Risposta automatica al rischio) che Amazon Cognito intraprenderà in risposta ai rischi rilevati in base al livello di gravità. Quando si assegna una risposta a un livello di rischio, non è possibile assegnare una risposta meno restrittiva a un livello di rischio più elevato. È possibile assegnare le seguenti risposte ai livelli di rischio:

      1. **Allow sign-in** (Consenti l'accesso): non intraprendere alcuna operazione preventiva.

      1. **Optional MFA** (MFA facoltativo): se l'utente ha configurato l'MFA, Amazon Cognito gli richiederà sempre di fornire un ulteriore fattore SMS o una password a tempo (TOTP) quando effettua l'accesso. Se l'utente non ha configurato MFA, può continuare ad accedere normalmente.

      1. **Require MFA** (MFA obbligatorio): se l'utente ha configurato MFA, Amazon Cognito gli richiederà sempre di fornire un fattore SMS aggiuntivo o un fattore TOTP al momento dell'accesso. Se l'utente non ha l'MFA configurato, Amazon Cognito richiederà di configurare l'MFA. Prima di richiedere automaticamente l'MFA per i tuoi utenti, configura un sistema nell'app che consenta di acquisire i numeri di telefono per l'MFA tramite SMS o di registrare app di autenticazione per l'MFA tramite TOTP.

      1. **Block sign-in** (Blocca l'accesso): impedisci all'utente di accedere.

      1. **Notify user** (Notifica l'utente): invia un'e-mail all'utente con informazioni sul rischio rilevato da Amazon Cognito e sulla risposta che hai messo in atto. È possibile personalizzare i modelli di messaggio e-mail per i messaggi inviati.

1. Se hai scelto **Notify user (Notifica l'utente)** nel passaggio precedente, puoi personalizzare le impostazioni di recapito e i modelli di messaggio e-mail per l'autenticazione adattiva.

   1. Alla voce **Email configuration** (Configurazione e-mail), scegli la **Regione SES**, l'**Indirizzo e-mail FROM**, il **Nome del mittente FROM** e l'**indirizzo e-mail REPLY-TO** da utilizzare con l'autenticazione adattiva. Per ulteriori informazioni sull'integrazione di messaggi e-mail per il bacino d'utenza con Amazon Simple Email Service, consulta [Impostazioni e-mail per i bacini d'utenza di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html).  
![\[Cronologia eventi dell'utente\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-advanced-security-ses-notification.png)

   1. Espandi **Email templates (Modelli e-mail)** per personalizzare le notifiche di autenticazione adattiva per i messaggi e-mail in versione HTML e in testo normale. Per ulteriori informazioni sui modelli di messaggio e-mail, consulta [Modelli dei messaggi](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-message-templates).

1. Espandi **le eccezioni degli indirizzi IP** per creare un elenco o intervalli di IPv6 indirizzi **sempre **consentiti** IPv4 o bloccati**, indipendentemente dalla valutazione del rischio di protezione dalle minacce. Specifica gli intervalli di indirizzi IP nella [notazione CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (ad esempio, 192.168.100.0/24).

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

------
#### [ API (user pool) ]

Per impostare la configurazione della protezione dalle minacce per un pool di utenti, invia una richiesta [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)API che includa un parametro, ma non un `UserPoolId` parametro. `ClientId` Di seguito è riportato un esempio di corpo della richiesta per un pool di utenti. Questa configurazione del rischio esegue una serie crescente di azioni in base alla gravità del rischio e avvisa gli utenti a tutti i livelli di rischio. Applica un blocco di credenziali compromesse alle operazioni di registrazione.

Per applicare questa configurazione, devi impostarla su `ENFORCED` in una richiesta API `AdvancedSecurityMode` o separata. [CreateUserPool[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) Per ulteriori informazioni sui modelli di segnaposto come `{username}` in questo esempio, consulta. [Configurazione MFA, autenticazione, verifica e messaggi di invito](cognito-user-pool-settings-message-customizations.md)

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_IF_CONFIGURED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.0/24","198.51.100.0/24" ],
      "SkippedIPRangeList": [ "203.0.113.0/24" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ API (app client) ]

Per impostare la configurazione di protezione dalle minacce per un client di app, invia una richiesta [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)API che includa un `UserPoolId` parametro e un `ClientId` parametro. Di seguito è riportato un esempio di corpo di richiesta per un client di app. Questa configurazione a rischio è più severa della configurazione del pool di utenti e blocca le voci ad alto rischio. Inoltre, applica blocchi di credenziali compromesse alle operazioni di registrazione, accesso e reimpostazione della password.

Per applicare questa configurazione, devi impostarla su in una richiesta API o separata. `AdvancedSecurityMode` `ENFORCED` [CreateUserPool[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) Per ulteriori informazioni sui modelli di segnaposto come `{username}` in questo esempio, consulta. [Configurazione MFA, autenticazione, verifica e messaggi di invito](cognito-user-pool-settings-message-customizations.md)

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "BLOCK",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "ClientId": "1example23456789",
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP", "SIGN_IN", "PASSWORD_CHANGE" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.1/32","192.0.2.2/32" ],
      "SkippedIPRangeList": [ "192.0.2.3/32","192.0.2.4/32" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

# Utilizzo del rilevamento di credenziali compromesse
<a name="cognito-user-pool-settings-compromised-credentials"></a>

Amazon Cognito è in grado di rilevare se il nome utente e la password di un utente sono stati compromessi. Questo può accadere quando gli utenti utilizzano le stesse credenziali su più di un sito oppure quando utilizzano password non sicure. Amazon Cognito verifica [gli utenti locali](cognito-terms.md#terms-localuser) che accedono con nome utente e password, con accesso gestito e con l'API Amazon Cognito.

Dal menu **Protezione dalle minacce** della console Amazon Cognito, puoi configurare le credenziali **compromesse**. Configura **Event detection** (Rilevamento di eventi) per scegliere gli eventi utente da monitorare per individuare le credenziali compromesse. Configura **Compromised credentials responses** (Risposte delle credenziali compromesse) per scegliere se consentire o bloccare l'utente se vengono rilevate credenziali compromesse. Amazon Cognito può controllare la presenza di credenziali compromesse durante gli accessi, le registrazioni e le modifiche delle password.

Quando scegli **Consenti l'accesso**, puoi esaminare Amazon CloudWatch Logs per monitorare le valutazioni effettuate da Amazon Cognito sugli eventi degli utenti. Per ulteriori informazioni, consulta [Visualizzazione delle metriche di protezione dalle minacce](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics). Quando si sceglie **Block sign-in** (Blocca l'accesso), Amazon Cognito impedisce l'accesso da parte degli utenti che utilizzano credenziali compromesse. Quando Amazon Cognito blocca l'accesso a un utente, imposta il parametro [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserType.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserType.html) dell'utente su `RESET_REQUIRED`. Un utente con uno stato `RESET_REQUIRED` deve modificare la password prima di poter accedere di nuovo.

Le credenziali compromesse possono controllare le password per le seguenti attività degli utenti.

**Registrazione**  
Il tuo pool di utenti controlla le password che gli utenti trasmettono [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)durante l'operazione e dalla pagina di registrazione dell'accesso gestito per individuare eventuali indicatori di compromissione.

**Accesso**  
Il tuo pool di utenti controlla le password che gli utenti inviano durante l'accesso basato su password per individuare eventuali indicatori di compromissione. Amazon Cognito può esaminare il `ADMIN_USER_PASSWORD_AUTH` flusso in entrata [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html), il `USER_PASSWORD_AUTH` flusso in [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)entrata e l'`PASSWORD`opzione del `USER_AUTH` flusso in entrambi.  
Al momento, Amazon Cognito non verifica la presenza di credenziali compromesse per operazioni di accesso con flusso Secure Remote Password (SRP). SRP invia una prova di password con hash durante l'accesso. Amazon Cognito non dispone dell'accesso alle password internamente, quindi può solo valutare una password passata dal client in testo normale.

**Reimpostazione della password**  
Il tuo pool di utenti verifica la presenza di indicatori di compromissione nelle operazioni che impostano nuove password utente con l'operazione [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)self-service di reimpostazione delle password. Il codice necessario per questa operazione viene generato da [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)e. [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)  
Le credenziali compromesse non controllano le password temporanee o permanenti impostate dall'amministratore con. [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) Tuttavia, con le password temporanee, il gruppo di utenti verifica le password in base alle risposte alla sfida in and. `NEW_PASSWORD_REQUIRED` [RespondToAuthChallenge[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)

Per aggiungere misure di protezione contro le credenziali compromesse al bacino d'utenza, consulta [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md).

# Utilizzo dell'autenticazione adattiva
<a name="cognito-user-pool-settings-adaptive-authentication"></a>

Con l'autenticazione adattiva, puoi configurare il bacino d'utenza in modo da bloccare i tentativi di accesso sospetti o aggiungere l'autenticazione tramite secondo fattore in risposta all'aumento del livello di rischio. Per ogni tentativo di accesso, Amazon Cognito genera un punteggio di rischio che indica la probabilità che la richiesta di accesso provenga da un'origine compromessa. Questo punteggio di rischio si basa sui fattori relativi al dispositivo e all'utente forniti dall'applicazione e su altri fattori che Amazon Cognito ricava dalla richiesta. Alcuni fattori che contribuiscono alla valutazione del rischio da parte di Amazon Cognito sono l'indirizzo IP, lo user agent e la distanza geografica da altri tentativi di accesso. L'autenticazione adattiva può attivare o richiedere l'autenticazione a più fattori (MFA) per un utente del pool di utenti quando Amazon Cognito rileva un rischio nella sessione di un utente che non ha ancora scelto un metodo MFA. Quando attivi l'autenticazione MFA, l'utente riceve sempre la richiesta di fornire o impostare un secondo fattore durante l'autenticazione, indipendentemente da come è stata configurata l'autenticazione adattiva. Dal punto di vista dell'utente, l'app offre le indicazioni per configurare l'autenticazione MFA e, facoltativamente, Amazon Cognito gli impedisce di accedere nuovamente fino a quando non configura un fattore aggiuntivo.

Amazon Cognito pubblica parametri relativi ai tentativi di accesso, ai relativi livelli di rischio e alle sfide fallite per Amazon. CloudWatch Per ulteriori informazioni, consulta [Visualizzazione delle metriche di protezione dalle minacce](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics).

Per aggiungere l'autenticazione adattiva al bacino d'utenza, consulta [Sicurezza avanzata con protezione dalle minacce](cognito-user-pool-settings-threat-protection.md).

**Topics**
+ [Panoramica dell'autenticazione adattiva](#security-cognito-user-pool-settings-adaptive-authentication-overview)
+ [Aggiunta di dati di dispositivo e sessione utente alle richieste API](#user-pool-settings-adaptive-authentication-device-fingerprint)
+ [Visualizzazione ed esportazione della cronologia degli eventi degli utenti](#user-pool-settings-adaptive-authentication-event-user-history)
+ [Fornitura del feedback sugli eventi](#user-pool-settings-adaptive-authentication-feedback)
+ [Invio di messaggi di notifica](#user-pool-settings-adaptive-authentication-messages)

## Panoramica dell'autenticazione adattiva
<a name="security-cognito-user-pool-settings-adaptive-authentication-overview"></a>

Dal menu **Protezione dalle minacce** nella console Amazon Cognito, puoi scegliere le impostazioni per l'autenticazione adattiva, incluse le azioni da intraprendere a diversi livelli di rischio e la personalizzazione dei messaggi di notifica agli utenti. Puoi assegnare una configurazione globale di protezione dalle minacce a tutti i client dell'app, ma applicare una configurazione a livello di client ai singoli client di app.

L'autenticazione adattiva di Amazon Cognito assegna uno dei seguenti livelli di rischio a ciascuna sessione utente: **Alto**, **Medio**, **Basso** o **Nessun rischio**.

Valuta con attenzione le opzioni disponibili quando modifichi il valore di **Enforcement method** (Metodo di applicazione) da **Audit-only** (Solo verifica) a **Full-function** (Funzione completa). Le risposte automatiche che applichi ai livelli di rischio influiscono sul livello di rischio che Amazon Cognito assegna alle sessioni utente successive che presentano le stesse caratteristiche. Ad esempio, dopo aver scelto di non intraprendere alcuna azione, o **Allow** (Consentire), le sessioni utente che Amazon Cognito inizialmente ha definito ad alto rischio, le successive sessioni simili vengono considerate da Amazon Cognito a basso rischio.


**Per ogni livello di rischio, puoi scegliere tra le seguenti opzioni:**  

|  Opzione  |  Azione  | 
| --- | --- | 
| Consenti | Gli utenti possono accedere senza un ulteriore fattore. | 
| MFA facoltativa | Gli utenti per i quali è configurata l'autenticazione con un secondo fattore, devono completare una seconda sfida per poter accedere. I secondi fattori disponibili sono la verifica tramite SMS e token di software TOTP. Gli utenti senza un secondo fattore configurato possono accedere con un solo set di credenziali. | 
| Richiedi MFA | Gli utenti per i quali è configurata l'autenticazione con un secondo fattore, devono completare una seconda sfida per poter accedere. Amazon Cognito blocca l'accesso agli utenti che non hanno un secondo fattore configurato. | 
| Blocco | Amazon Cognito blocca tutti i tentativi di accesso al livello di rischio designato. | 

**Nota**  
Non è necessario verificare i numeri di telefono da utilizzare per la ricezione di SMS come secondo fattore di autenticazione.

## Aggiunta di dati di dispositivo e sessione utente alle richieste API
<a name="user-pool-settings-adaptive-authentication-device-fingerprint"></a>

Puoi raccogliere e trasmettere informazioni sulla sessione dell'utente alla protezione dalle minacce di Amazon Cognito quando utilizzi l'API per registrarlo, farlo accedere e reimpostare la sua password. Queste informazioni includono l'indirizzo IP dell'utente e un identificatore univoco del dispositivo.

Potrebbe essere presente un dispositivo di rete intermedio tra gli utenti e Amazon Cognito, ad esempio un servizio proxy o un server applicazioni. Puoi raccogliere i dati contestuali degli utenti e passarli ad Amazon Cognito in modo che l'autenticazione adattiva calcoli il rischio in base alle caratteristiche dell'endpoint utente, anziché al server o al proxy. Se l'app lato client chiama direttamente le operazioni dell'API Amazon Cognito, l'autenticazione adattiva registra automaticamente l'indirizzo IP di origine. Tuttavia, non registra altre informazioni sul dispositivo, ad esempio `user-agent`, a meno che non venga acquisita anche un'impronta del dispositivo.

Genera questi dati con la libreria di raccolta dati contestuali di Amazon Cognito e inviali alla protezione dalle minacce di Amazon Cognito con [ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ContextDataType.html)i parametri and. [UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserContextDataType.html) La libreria di raccolta dei dati contestuali è inclusa in. AWS SDKs Per ulteriori informazioni, consulta [Integrazione dell'autenticazione e dell'autorizzazione di Amazon Cognito con app web e mobili](cognito-integrate-apps.md). Puoi inviarlo `ContextData` se disponi del piano di funzionalità Plus. Per ulteriori informazioni, consulta [Impostazione della protezione dalle minacce](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-configure-threat-protection).

Quando si chiamano le seguenti operazioni API autenticate di Amazon Cognito dal server applicazioni, viene passato l'IP del dispositivo dell'utente nel parametro `ContextData`. Inoltre, passa il nome e il percorso del server, nonché i dati relativi all'impronta del dispositivo.
+ [AdminInitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)
+ [AdminRespondToAuthChallenge ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)

Quando richiami operazioni API non autenticate di Amazon Cognito, puoi inviare una richiesta di protezione dalle minacce di Amazon `UserContextData` Cognito. Questi dati includono un'impronta del dispositivo nel parametro `EncodedData`. Puoi anche passare un parametro `IpAddress` in `UserContextData` se vengono soddisfatte le seguenti condizioni:
+ Il tuo pool di utenti è incluso nel piano di funzionalità Plus. Per ulteriori informazioni, consulta [Piani di funzionalità del pool di utenti](cognito-sign-in-feature-plans.md).
+ Il client dell'app ha un segreto del client. Per ulteriori informazioni, consulta [Impostazioni specifiche dell'applicazione con client di app](user-pool-settings-client-apps.md).
+ Hai attivato l'opzione **Accept additional user context data** (Accetta dati utente contestuali aggiuntivi) nel client dell'app. Per ulteriori informazioni, consulta [Accettazione di dati utente contestuali aggiuntivi (Console di gestione AWS)](#user-pool-settings-adaptive-authentication-accept-user-context-data).

L'app può popolare il parametro `UserContextData` con dati di impronte del dispositivo codificati e l'indirizzo IP del dispositivo dell'utente nelle seguenti operazioni API non autenticate di Amazon Cognito.
+ [InitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)
+ [RespondToAuthChallenge ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)
+ [SignUp ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)
+ [ConfirmSignUp ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)
+ [ForgotPassword ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)
+ [ConfirmForgotPassword ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)
+ [ResendConfirmationCode ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)

### Accettazione di dati utente contestuali aggiuntivi (Console di gestione AWS)
<a name="user-pool-settings-adaptive-authentication-accept-user-context-data"></a>

Il pool di utenti accetta un indirizzo IP nel parametro `UserContextData` dopo aver attivato la funzionalità **Accept additional user context data** (Accetta dati utente contestuali aggiuntivi). Non è necessario attivare questa funzionalità se:
+ I tuoi utenti accedono solo con operazioni API autenticate come [AdminInitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html), e tu usi il `ContextData` parametro.
+ Vuoi solo che le tue operazioni API non autenticate inviino un'impronta digitale del dispositivo, ma non un indirizzo IP, alla protezione dalle minacce di Amazon Cognito.

Aggiorna il client dell'app come indicato di seguito nella console Amazon Cognito per aggiungere il supporto per ulteriori dati utente contestuali.

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

1. Nel riquadro di navigazione, scegli **Manage your User Pools** (Gestisci i tuoi bacini d'utenza) e scegli i bacini d'utenza che intendi modificare.

1. **Scegli il menu App client.**

1. Scegli o crea un client per l'app. Per ulteriori informazioni, consulta [Configurazione di un client dell'app per un pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html).

1. Scegli **Edit** (Modifica) nel container **App client information** (Informazioni sul client dell'app).

1. Nell'area **Advanced authentication settings** (Impostazioni di autenticazione avanzate) per il client dell'app, scegli **Accept additional user context data** (Accetta dati utente contestuali aggiuntivi).

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

Per configurare il client dell'app in modo che accetti i dati contestuali dell'utente nell'API Amazon Cognito, imposta su `EnablePropagateAdditionalUserContextData` `true` in una richiesta [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)or [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html). Per informazioni su come utilizzare la protezione dalle minacce nella tua app web o mobile, consulta[Raccolta di dati per la protezione dalle minacce nelle applicazioni](user-pool-settings-viewing-threat-protection-app.md). Quando l'app chiama Amazon Cognito dal server, raccogli i dati di contesto degli utenti dal lato client. Di seguito è riportato un esempio che utilizza il metodo JavaScript `getData` SDK.

```
var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);
```

Quando progetti la tua app per utilizzare l'autenticazione adattiva, ti consigliamo di integrare l'ultimo SDK Amazon Cognito nell'app. L'ultima versione dell'SDK raccoglie informazioni di impronta digitale del dispositivo come ID, modello e fuso orario del dispositivo. Per ulteriori informazioni su Amazon Cognito SDKs, consulta [Installare un SDK per pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sdk-links.html). La protezione dalle minacce di Amazon Cognito salva e assegna un punteggio di rischio solo agli eventi inviati dall'app nel formato corretto. Se Amazon Cognito restituisce una risposta di errore, verifica che la richiesta includa un hash segreto valido e che il `IPaddress` parametro sia un indirizzo o valido IPv4 . IPv6 

**Risorse `ContextData` e `UserContextData`**
+ AWS Amplify SDK per Android: [GetUserContextData](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/mobileconnectors/cognitoidentityprovider/CognitoUserPool.java#L626)
+ AWS Amplify SDK per iOS: [userContextData](https://github.com/aws-amplify/aws-sdk-ios/blob/d3cd4fa0086b526f2f5c9c6c58880c9da7004c66/AWSCognitoIdentityProviderASF/AWSCognitoIdentityProviderASF.m#L21)
+ JavaScript[: amazon-cognito-advanced-security -data.min.js](https://amazon-cognito-assets.us-east-1.amazoncognito.com/amazon-cognito-advanced-security-data.min.js)

## Visualizzazione ed esportazione della cronologia degli eventi degli utenti
<a name="user-pool-settings-adaptive-authentication-event-user-history"></a>

Amazon Cognito genera un registro per ogni evento di autenticazione di un utente quando abiliti la protezione dalle minacce. Per impostazione predefinita, puoi visualizzare i log degli utenti nel menu **Utenti** nella console Amazon Cognito o con [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html)il funzionamento dell'API. Puoi anche esportare questi eventi su un sistema esterno come CloudWatch Logs, Amazon S3 o Amazon Data Firehose. La funzionalità di esportazione può rendere le informazioni di sicurezza sull'attività degli utenti nella tua applicazione più accessibili ai tuoi sistemi di analisi della sicurezza.

**Topics**
+ [Visualizzazione della cronologia degli eventi dell'utente ()Console di gestione AWS](#user-pool-settings-adaptive-authentication-event-user-history-console)
+ [Visualizzazione della cronologia degli eventi utente (API/CLI)](#user-pool-settings-adaptive-authentication-event-user-history-api-cli)
+ [Esportazione degli eventi di autenticazione degli utenti](#user-pool-settings-adaptive-authentication-event-user-history-exporting)

### Visualizzazione della cronologia degli eventi dell'utente ()Console di gestione AWS
<a name="user-pool-settings-adaptive-authentication-event-user-history-console"></a>

Per visualizzare la cronologia degli accessi di un utente, puoi scegliere l'utente dal menu **Utenti** nella console Amazon Cognito. Amazon Cognito mantiene la cronologia eventi dell'utente per due anni.

![\[Cronologia eventi dell'utente\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-advanced-security-event-history.png)


Ogni evento di accesso ha un ID evento. L'evento contiene anche dati di contesto corrispondenti, come la posizione, i dettagli del dispositivo e i risultati del rilevamento dei rischi.

Puoi anche correlare l'ID evento con il token emesso da Amazon Cognito nel momento in cui ha registrato l'evento. Gli ID e i token di accesso includono questo ID evento nel payload. Amazon Cognito mette inoltre in correlazione l'utilizzo del token di aggiornamento con l'ID evento originale. Puoi tenere traccia dell'ID evento originale risalendo fino all'ID dell'evento di accesso che ha avuto come esito il rilascio dei token di Amazon Cognito. Puoi tracciare l'utilizzo di un token all'interno del sistema di autenticazione fino a un determinato evento di autenticazione. Per ulteriori informazioni, consulta [Comprensione dei token web JSON del pool di utenti () JWTs](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

### Visualizzazione della cronologia degli eventi utente (API/CLI)
<a name="user-pool-settings-adaptive-authentication-event-user-history-api-cli"></a>

[Puoi interrogare la cronologia degli eventi degli utenti con l'operazione dell'API Amazon Cognito [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html)o con AWS Command Line Interface (AWS CLI) with admin-list-user-auth -events.](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-list-user-auth-events.html)

------
#### [ AdminListUserAuthEvents request ]

Il seguente corpo della richiesta `AdminListUserAuthEvents` restituisce il registro delle attività più recente per un utente.

```
{
  "UserPoolId": "us-west-2_EXAMPLE", 
  "Username": "myexampleuser", 
  "MaxResults": 1
}
```

------
#### [ admin-list-user-auth-events request ]

La seguente richiesta `admin-list-user-auth-events` restituisce il registro delle attività più recente per un utente.

```
aws cognito-idp admin-list-user-auth-events --max-results 1 --username myexampleuser --user-pool-id us-west-2_EXAMPLE
```

------
#### [ Response ]

Amazon Cognito restituisce lo stesso corpo di risposta JSON a entrambe le richieste. Di seguito è riportato un esempio di risposta per un evento di accesso gestito che non è risultato contenere fattori di rischio:

```
{
    "AuthEvents": [
        {
            "EventId": "[event ID]",
            "EventType": "SignIn",
            "CreationDate": "[Timestamp]",
            "EventResponse": "Pass",
            "EventRisk": {
                "RiskDecision": "NoRisk",
                "CompromisedCredentialsDetected": false
            },
            "ChallengeResponses": [
                {
                    "ChallengeName": "Password",
                    "ChallengeResponse": "Success"
                }
            ],
            "EventContextData": {
                "IpAddress": "192.168.2.1",
                "DeviceName": "Chrome 125, Windows 10",
                "Timezone": "-07:00",
                "City": "Bellevue",
                "Country": "United States"
            }
        }
    ],
    "NextToken": "[event ID]#[Timestamp]"
}
```

------

### Esportazione degli eventi di autenticazione degli utenti
<a name="user-pool-settings-adaptive-authentication-event-user-history-exporting"></a>

Configura il tuo pool di utenti per esportare gli eventi degli utenti dalla protezione dalle minacce a un sistema esterno. I sistemi esterni supportati (Amazon S3 CloudWatch , Logs e Amazon Data FireHose) potrebbero aggiungere costi alla AWS fattura per i dati inviati o recuperati. Per ulteriori informazioni, consulta [Esportazione dei log delle attività degli utenti per la protezione dalle minacce](exporting-quotas-and-usage.md#exporting-quotas-and-usage-user-activity).

------
#### [ Console di gestione AWS ]

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 Log streaming. Seleziona **Edit (Modifica)**.

1. In **Stato della registrazione**, seleziona la casella di controllo accanto a **Attiva l'esportazione del registro delle attività degli utenti**.

1. **In **Logging destination**, scegli il tipo di log con Servizio AWS cui vuoi gestire i log: **gruppo di CloudWatch log**, **flusso Amazon Data Firehose** o bucket S3.**

1. La tua selezione riempirà il selettore di risorse con il tipo di risorsa corrispondente. Seleziona un gruppo di log, uno stream o un bucket dall'elenco. Puoi anche selezionare il pulsante **Crea** Console di gestione AWS per accedere al servizio selezionato e creare una nuova risorsa.

1. Seleziona **Salva modifiche**.

------
#### [ API ]

Scegli un tipo di destinazione per i registri delle attività degli utenti.

Di seguito è riportato un esempio di corpo della `SetLogDeliveryConfiguration` richiesta che imposta un flusso Firehose come destinazione del registro.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "FirehoseConfiguration": {
            "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

Di seguito è riportato un esempio di corpo di `SetLogDeliveryConfiguration` richiesta che imposta un bucket Amazon S3 come destinazione del log.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "S3Configuration": { 
            "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

Di seguito è riportato un esempio di corpo della `SetLogDeliveryConfiguration` richiesta che imposta un gruppo di CloudWatch log come destinazione del log.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "CloudWatchLogsConfiguration": { 
            "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

## Fornitura del feedback sugli eventi
<a name="user-pool-settings-adaptive-authentication-feedback"></a>

Il feedback sugli eventi influisce in tempo reale sulla valutazione dei rischi e migliora l'algoritmo di valutazione dei rischi nel corso del tempo. Puoi fornire un feedback sulla validità dei tentativi di accesso tramite la console Amazon Cognito e le operazioni delle API. 

**Nota**  
Il tuo feedback sugli eventi influisce sul livello di rischio che Amazon Cognito assegna alle sessioni utente successive con le stesse caratteristiche.

Nella console Amazon Cognito, scegli un utente dal menu **Utenti** e seleziona **Fornisci feedback sull'evento**. Puoi controllare i dettagli dell'evento e quindi scegliere **Set as valid** (Imposta come valido) o **Set as invalid** (Imposta come non valido).

La console elenca la cronologia degli accessi nei dettagli utente nel menu **Utenti**. Se selezioni una voce, puoi contrassegnare l'evento come valido o non valido. Puoi anche fornire feedback tramite l'operazione [AdminUpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateAuthEventFeedback.html)API del pool di utenti e tramite il AWS CLI comando [admin-update-auth-event-feedback](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-auth-event-feedback.html). 

Quando nella console Amazon Cognito selezioni **Set as valid** (Imposta come valido) o nell'API fornisci il valore `valid` per `FeedbackValue`, indichi ad Amazon Cognito che la sessione utente che ha valutato con un certo livello di rischio è invece attendibile. Quando nella console Amazon Cognito selezioni **Set as invalid** (Imposta come non valido) o nell'API fornisci il valore `invalid` per `FeedbackValue`, indichi ad Amazon Cognito che la sessione utente non è attendibile o che non ha valutato un livello di rischio sufficientemente elevato.

## Invio di messaggi di notifica
<a name="user-pool-settings-adaptive-authentication-messages"></a>

Con la protezione dalle minacce, Amazon Cognito può avvisare gli utenti dei tentativi di accesso rischiosi. Amazon Cognito può anche chiedere agli utenti di selezionare un link per indicare se l'accesso è valido o non valido. Amazon Cognito utilizza questo feedback per migliorare l'accuratezza del rilevamento del rischio per il tuo bacino d'utenza 

**Nota**  
Amazon Cognito invia messaggi di notifica agli utenti solo quando la loro azione genera una risposta automatica al rischio: blocca l'accesso, consenti l'accesso, imposta la MFA su opzionale o richiedi l'autenticazione a più fattori. Ad alcune richieste potrebbe essere assegnato un livello di rischio, ma non generano risposte automatiche di autenticazione adattiva al rischio; per queste, il tuo pool di utenti non invia notifiche. Ad esempio, è possibile che vengano registrate password errate con una classificazione del rischio, ma la risposta di Amazon Cognito è di non riuscire ad accedere, non di applicare una regola di autenticazione adattiva.

Nella sezione **Automatic risk response** (Risposta automatica al rischio) scegli **Notify Users** (Notifica agli utenti) per i casi di basso, medio e alto rischio.

![\[Notifica agli utenti\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-adaptive-auth.png)


Amazon Cognito invia le notifiche e-mail agli utenti a prescindere dalla verifica dell'indirizzo e-mail.

Puoi personalizzare i messaggi e-mail di notifica e fornire i messaggi nelle versioni in formato di testo normale e in formato HTML. Per personalizzare le notifiche e-mail, apri i **modelli di posta elettronica** da **Adaptive authentication messages** nella configurazione di protezione dalle minacce. Per ulteriori informazioni sui modelli di e-mail, consulta [Modelli dei messaggi](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-message-templates).

# Raccolta di dati per la protezione dalle minacce nelle applicazioni
<a name="user-pool-settings-viewing-threat-protection-app"></a>

L'[autenticazione adattiva](cognito-user-pool-settings-adaptive-authentication.md) di Amazon Cognito valuta i livelli di rischio per il tentativo di acquisizione dell'account sulla base dei dettagli contestuali dei tentativi di accesso degli utenti. L'applicazione deve aggiungere *dati contestuali* alle richieste API in modo che la protezione dalle minacce di Amazon Cognito possa valutare più accuratamente il rischio. I dati contestuali sono informazioni quali indirizzo IP, agente del browser, informazioni sul dispositivo e intestazioni di richiesta che forniscono informazioni contestuali su come un utente si è connesso al tuo pool di utenti.

La responsabilità principale di un'applicazione che invia questo contesto ad Amazon Cognito è `EncodedData` un parametro nelle richieste di autenticazione ai pool di utenti. Per aggiungere questi dati alle tue richieste, puoi implementare Amazon Cognito con un SDK che genera automaticamente queste informazioni per te oppure puoi implementare un modulo per JavaScript iOS o Android che raccolga questi dati. Le applicazioni *solo client* che effettuano richieste dirette ad Amazon Cognito devono essere implementate. AWS Amplify SDKs Le applicazioni *client-server* che dispongono di un server intermedio o di un componente API devono implementare un modulo SDK separato.

Nei seguenti scenari, il front-end di autenticazione gestisce la raccolta dei dati contestuali degli utenti senza alcuna configurazione aggiuntiva:
+ L'accesso gestito raccoglie e invia automaticamente i dati contestuali per la protezione dalle minacce.
+ Tutte le AWS Amplify librerie dispongono di una raccolta di dati contestuali integrata nei metodi di autenticazione.

## Invio di dati contestuali utente in applicazioni solo client con Amplify
<a name="user-pool-settings-viewing-threat-protection-app-amplify"></a>

![\[Una panoramica della raccolta dei dati per la protezione dalle minacce in un'applicazione Amplify.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/user-pools-asf-amplify-data-collection.png)


 SDKs Amplify supporta i client mobili che si autenticano direttamente con Amazon Cognito. I clienti di questo tipo effettuano richieste API dirette alle operazioni API pubbliche di Amazon Cognito. Per impostazione predefinita, i client Amplify raccolgono automaticamente dati contestuali per la protezione dalle minacce.

Le applicazioni Amplify JavaScript with sono un'eccezione. Richiedono l'aggiunta di un [JavaScript modulo](#user-pool-settings-viewing-threat-protection-app-additional-resources-js) che raccolga i dati relativi al contesto dell'utente.

In genere, un'applicazione in questa configurazione utilizza operazioni API non autenticate come e. [InitiateAuth[RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) L'[UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserContextDataType.html)oggetto aiuta a valutare i rischi in modo più accurato per queste operazioni. SDKs Amplify aggiunge informazioni sul dispositivo e sulla sessione a `EncodedData` un parametro di. `UserContextData`

## Raccolta di dati contestuali in applicazioni client-server
<a name="user-pool-settings-viewing-threat-protection-app-server-side"></a>

Alcune applicazioni dispongono di un livello front-end che raccoglie i dati di autenticazione degli utenti e un livello di back-end dell'applicazione che invia le richieste di autenticazione ad Amazon Cognito. Si tratta di un'architettura comune nei server Web e nelle applicazioni supportate da microservizi. In queste applicazioni, è necessario importare una libreria pubblica di raccolta di dati contestuali.

![\[Una panoramica dell'autenticazione lato server con dati contestuali di protezione dalle minacce in. JavaScript\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/user-pools-asf-non-amplify-data-collection.png)


In genere, un server applicativo in questa configurazione utilizza operazioni API autenticate come e. [AdminInitiateAuth[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) L'[ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-ContextData)oggetto aiuta Amazon Cognito a valutare i rischi in modo più accurato per queste operazioni. I contenuti `ContextData` sono i dati codificati che il front-end ha passato al server e dettagli aggiuntivi derivanti dalla richiesta HTTP dell'utente al server. Questi dettagli contestuali aggiuntivi, come le intestazioni HTTP e l'indirizzo IP, forniscono al server delle applicazioni le caratteristiche dell'ambiente dell'utente.

Il server delle applicazioni potrebbe anche effettuare l'accesso con operazioni API non autenticate come e. [InitiateAuth[RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) L'[UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-UserContextData)oggetto consente l'analisi del rischio di protezione dalle minacce in queste operazioni. Le operazioni nelle librerie di raccolta dati di contesto pubblico disponibili aggiungono informazioni di sicurezza al `EncodedData` parametro nelle richieste di autenticazione. Inoltre, configura il tuo pool di utenti per accettare dati contestuali aggiuntivi e aggiungi l'IP di origine dell'utente al `IpAddress` parametro di`UserContextData`.

**Per aggiungere dati contestuali alle applicazioni client-server**

1. Nella tua applicazione front-end, raccogli dati contestuali codificati dal client con un [iOS, Android](#user-pool-settings-viewing-threat-protection-app-additional-resources) o un modulo. JavaScript 

1. Trasmetti i dati codificati e i dettagli della richiesta di autenticazione al tuo server delle applicazioni.

1. Nel server delle applicazioni, estrai l'indirizzo IP dell'utente, le intestazioni HTTP pertinenti, il nome del server richiesto e il percorso richiesto dalla richiesta HTTP. Inserisci questi valori nel [ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-ContextData)parametro della tua richiesta API ad Amazon Cognito.

1. Compila il `EncodedData` parametro of `ContextData` nella tua richiesta API con i dati codificati del dispositivo raccolti dal modulo SDK. Aggiungi questi dati contestuali alla richiesta di autenticazione.

## Librerie di dati contestuali per applicazioni client-server
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources"></a>

### JavaScript
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-js"></a>

Il `amazon-cognito-advanced-security-data.min.js` modulo raccoglie dati `EncodedData` che potete passare al vostro server delle applicazioni.

Aggiungi il `amazon-cognito-advanced-security-data.min.js` modulo alla tua JavaScript configurazione. Regione AWS Sostituiscilo `<region>` con uno dei seguenti:`us-east-1`,`us-east-2`,`us-west-2`,`eu-west-1`,`eu-west-2`, o`eu-central-1`.

```
<script src="https://amazon-cognito-assets.<region>.amazoncognito.com/amazon-cognito-advanced-security-data.min.js"></script>
```

Per generare un `encodedContextData` oggetto da utilizzare nel `EncodedData` parametro, aggiungete quanto segue all'origine JavaScript dell'applicazione:

```
var encodedContextData = AmazonCognitoAdvancedSecurityData.getData(_username, _userpoolId, _userPoolClientId);
```

### iOS/Swift
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-ios"></a>

Per generare dati contestuali, le applicazioni iOS possono integrare il [AWSCognitoIdentityProvidermodulo](https://github.com/aws-amplify/aws-sdk-ios/tree/main/AWSCognitoIdentityProviderASF) [Mobile SDK for iOS ASF](https://github.com/aws-amplify/aws-sdk-ios/tree/main).

Per raccogliere dati contestuali codificati per la protezione dalle minacce, aggiungi il seguente frammento all'applicazione:

```
import AWSCognitoIdentityProviderASF

let deviceId = getDeviceId()
let encodedContextData = AWSCognitoIdentityProviderASF.userContextData(
                            userPoolId, 
                            username: username, 
                            deviceId: deviceId, 
                            userPoolClientId: userPoolClientId)
                                
/**
 * Reuse DeviceId from keychain or generate one for the first time.
 */
func getDeviceId() -> String {
    let deviceIdKey = getKeyChainKey(namespace: userPoolId, key: "AWSCognitoAuthAsfDeviceId")
    
   if let existingDeviceId = self.keychain.string(forKey: deviceIdKey) {
        return existingDeviceId
    }

    let newDeviceId = UUID().uuidString
    self.keychain.setString(newDeviceId, forKey: deviceIdKey)
    return newDeviceId
}

/**
 * Get a namespaced keychain key given a namespace and key
 */    
func getKeyChainKey(namespace: String, key: String) -> String {
    return "\(namespace).\(key)"
}
```

### Android
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-android"></a>

Per generare dati contestuali, le applicazioni Android possono integrare il [aws-android-sdk-cognitoidentityprovidermodulo](https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-cognitoidentityprovider-asf) [Mobile SDK for](https://github.com/aws-amplify/aws-sdk-android/tree/main) Android -asf.

Per raccogliere dati contestuali codificati per la protezione dalle minacce, aggiungi il seguente frammento all'applicazione:

```
UserContextDataProvider provider = UserContextDataProvider.getInstance();
// context here is android application context.
String encodedContextData = provider.getEncodedContextData(context, username, userPoolId, userPoolClientId);
```

# Associa un ACL AWS WAF web a un pool di utenti
<a name="user-pool-waf"></a>

AWS WAF è un firewall per applicazioni Web. Con una AWS WAF lista di controllo degli accessi Web (Web ACL), puoi proteggere il tuo pool di utenti da richieste indesiderate all'interfaccia utente ospitata classica, all'accesso gestito e agli endpoint del servizio API Amazon Cognito. Una ACL Web offre un controllo granulare su tutte le richieste Web HTTPS a cui risponde il pool di utenti. *Per ulteriori informazioni sul AWS WAF web ACLs, consulta [Gestione e utilizzo di una lista di controllo degli accessi Web (Web ACL)](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html) nella Guida per gli sviluppatori.AWS WAF *

Quando hai un ACL AWS WAF Web associato a un pool di utenti, Amazon Cognito inoltra le intestazioni e i contenuti selezionati non riservati delle richieste degli utenti a. AWS WAF AWS WAF esamina il contenuto della richiesta, la confronta con le regole che hai specificato nell'ACL web e restituisce una risposta ad Amazon Cognito.

## Cose da sapere sul AWS WAF Web ACLs e Amazon Cognito
<a name="user-pool-waf-things-to-know"></a>
+ Non puoi configurare le regole Web ACL in modo che corrispondano alle informazioni di identificazione personale (PII) nelle richieste dei pool di utenti, ad esempio nomi utente, password, numeri di telefono o indirizzi e-mail. Questi dati non saranno disponibili per. AWS WAF Configura invece le regole ACL Web in modo che corrispondano ai dati della sessione nelle intestazioni, nel percorso e nel corpo, come gli indirizzi IP, gli agenti del browser e le operazioni API richieste.
+ Le condizioni delle regole Web ACL possono restituire solo risposte di blocco personalizzate alla **prima** richiesta degli utenti a una pagina di accesso gestita interattiva dall'utente. Quando le connessioni successive soddisfano una condizione di risposta di blocco personalizzata, restituiscono il codice di stato personalizzato, l'intestazione e le risposte di reindirizzamento, ma un messaggio di blocco predefinito.
+ Le richieste bloccate da AWS WAF non vengono conteggiate ai fini della quota di richiesta per nessun tipo di richiesta. Il AWS WAF gestore viene chiamato prima dei gestori di limitazione a livello di API.
+ Quando si crea una ACL Web, passa del tempo prima che l'ACL Web si propaghi completamente e sia disponibile per Amazon Cognito. Il tempo di propagazione può variare da pochi secondi a diversi minuti. AWS WAF restituisce a [https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html#API_AssociateWebACL_Errors](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html#API_AssociateWebACL_Errors)quando si tenta di associare un ACL Web prima che si sia completamente propagato.
+ È possibile associare un ACL Web a ciascun pool di utenti.
+ La richiesta potrebbe comportare un payload superiore ai limiti di quanto AWS WAF può controllare. Consulta [Gestione dei componenti di richieste sovradimensionate](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) nella *AWS WAF Developer Guide* per scoprire come configurare come AWS WAF gestire le richieste sovradimensionate da Amazon Cognito.
+ Non puoi associare un ACL Web che utilizza la [prevenzione dell'acquisizione di account AWS WAF Fraud Control (ATP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) a un pool di utenti Amazon Cognito. La funzionalità ATP fa parte del gruppo di regole gestite. `AWS-AWSManagedRulesATPRuleSet` Prima di associare un ACL Web a un pool di utenti, assicurati che non utilizzi questo gruppo di regole gestito.
+ 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](user-pool-settings-mfa-totp.md#totp-waf)

AWS WAF esamina le richieste ai seguenti endpoint.

**Accesso gestito e interfaccia utente classica ospitata**  
Richieste a tutti gli endpoint in [Endpoint del pool di utenti e riferimento all'accesso gestito](cognito-userpools-server-contract-reference.md).

**Operazioni API pubbliche**  
Richieste dalla tua app all'API Amazon Cognito che non utilizzano AWS credenziali per l'autorizzazione. Ciò include operazioni API come [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html), e [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html). [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) Le operazioni API incluse nell'ambito di AWS WAF non richiedono l'autenticazione con AWS credenziali. Non sono autenticate o sono autorizzate con una stringa di sessione o un token di accesso. Per ulteriori informazioni, consulta [Elenco delle operazioni API raggruppate per modello di autorizzazione](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth).

È possibile configurare le regole nell'ACL Web con operazioni di regole **Count** (Conteggio), **Allow** (Consenti), **Block** (Blocca), oppure che presentano un **CAPTCHA** in risposta a una richiesta che corrisponde a una regola. Per ulteriori informazioni, consulta [Regole personalizzate AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.html) nella *Guida per gli sviluppatori di AWS WAF *. A seconda dell'operazione della regola, è possibile personalizzare la risposta che Amazon Cognito restituisce agli utenti.

**Importante**  
Le opzioni per personalizzare la risposta all'errore dipendono dal modo in cui si effettua una richiesta API.  
È possibile personalizzare il codice di errore e il corpo di risposta delle richieste di accesso gestite. Puoi solo presentare un CAPTCHA che l'utente deve risolvere nell'accesso gestito.
Per le richieste effettuate con l'[API dei pool di utenti](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) di Amazon Cognito, puoi personalizzare il corpo della risposta di una richiesta che riceve una risposta **Blocca**. È inoltre possibile specificare un codice di errore personalizzato compreso tra 400 e 499.
Il AWS Command Line Interface (AWS CLI) e il AWS SDKs restituiscono un `ForbiddenException` errore alle richieste che producono una risposta **Block** o **CAPTCHA**.

## Associazione di una ACL Web al pool di utenti
<a name="user-pool-waf-setting-up"></a>

Per utilizzare un ACL Web nel tuo pool di utenti, il tuo principale AWS Identity and Access Management (IAM) deve disporre dei seguenti Amazon Cognito AWS WAF e delle autorizzazioni seguenti. *Per informazioni sulle AWS WAF autorizzazioni, consulta le autorizzazioni [AWS WAF API nella Guida per gli sviluppatori](https://docs.aws.amazon.com/waf/latest/developerguide/waf-api-permissions-ref.html).AWS WAF *

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowWebACLUserPool",
			"Effect": "Allow",
			"Action": [
				"cognito-idp:ListResourcesForWebACL",
				"cognito-idp:GetWebACLForResource",
				"cognito-idp:AssociateWebACL"
			],
			"Resource": [
				"arn:aws:cognito-idp:*:123456789012:userpool/*"
			]
		},
		{
			"Sid": "AllowWebACLUserPoolWAFv2",
			"Effect": "Allow",
			"Action": [
				"wafv2:ListResourcesForWebACL",
				"wafv2:AssociateWebACL",
				"wafv2:DisassociateWebACL",
				"wafv2:GetWebACLForResource"
			],
			"Resource": "arn:aws:wafv2:*:123456789012:*/webacl/*/*"
		},
		{
			"Sid": "DisassociateWebACL1",
			"Effect": "Allow",
			"Action": "wafv2:DisassociateWebACL",
			"Resource": "*"
		},
		{
			"Sid": "DisassociateWebACL2",
			"Effect": "Allow",
			"Action": [
				"cognito-idp:DisassociateWebACL"
			],
			"Resource": [
				"arn:aws:cognito-idp:*:123456789012:userpool/*"
			]
		}
	]
}
```

------

[Sebbene sia necessario concedere le autorizzazioni IAM, le azioni elencate riguardano solo le autorizzazioni e non corrispondono a nessuna operazione API.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html)

**Da attivare AWS WAF per il tuo pool di utenti e associare un ACL web**

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

1. Nel pannello di navigazione, scegli **User Pools** (Bacini d'utenza) e seleziona i bacini d'utenza che intendi modificare.

1. Scegli la **AWS WAF**scheda nella sezione **Sicurezza**.

1. Scegli **Modifica**.

1. Seleziona **Usa AWS WAF con il tuo pool di utenti**.  
![\[Schermata della AWS WAF finestra di dialogo con Use AWS WAF with your user pool selezionato.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/cup-WAF-console.png)

1. Scegliete un **ACL AWS WAF Web** già creato oppure scegliete **Crea ACL Web in AWS WAF** per crearne uno in una nuova AWS WAF sessione in. Console di gestione AWS

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

[Per associare a livello di codice un ACL Web al tuo pool di utenti in AWS Command Line Interface o in un SDK, utilizza ACL dell'API. AssociateWeb](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html) AWS WAF Amazon Cognito non dispone di un'operazione API distinta che associ una lista ACL Web.

## Test e registrazione web AWS WAF ACLs
<a name="user-pool-waf-evaluating-and-logging"></a>

Quando imposti un'azione della regola **su Count** nell'ACL web, AWS WAF aggiunge la richiesta a un conteggio di richieste che corrispondono alla regola. Per testare una ACL Web con il pool di utenti, impostare le operazioni delle regole su **Count** (Conteggio) e considerare il volume di richieste che corrispondono a ciascuna regola. Ad esempio, se una regola che desideri impostare sull'operazione **Block** (Blocca) corrisponde a un gran numero di richieste che si ritiene sia un normale traffico utente, potrebbe essere necessario riconfigurare la regola. *Per ulteriori informazioni, consulta [Testare e ottimizzare AWS WAF le protezioni](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-testing.html) nella Guida per gli AWS WAF sviluppatori.*

Puoi anche configurare AWS WAF per registrare le intestazioni delle richieste in un gruppo di log di Amazon CloudWatch Logs, un bucket Amazon Simple Storage Service (Amazon S3) o un Amazon Data Firehose. Puoi identificare le richieste Amazon Cognito effettuate con l'API dei pool di utenti tramite `x-amzn-cognito-client-id` e `x-amzn-cognito-operation-name`. Le richieste di accesso gestite includono solo l'intestazione. `x-amzn-cognito-client-id` Per ulteriori informazioni, consulta [Registrazione del traffico ACL Web](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html) nella *Guida per gli sviluppatori di AWS WAF *.

AWS WAF ACLs i web sono disponibili in tutti i [piani di funzionalità del pool di](cognito-sign-in-feature-plans.md) utenti. Le funzionalità di sicurezza AWS WAF completano la protezione dalle minacce di Amazon Cognito. È possibile attivare entrambe le caratteristiche in un pool di utenti. AWS WAF fattura separatamente per l'ispezione delle richieste del pool di utenti. Per ulteriori informazioni, consultare [AWS WAF Prezzi](https://aws.amazon.com/waf/pricing).

I dati della AWS WAF richiesta di registrazione sono soggetti a una fatturazione aggiuntiva da parte del servizio a cui vengono indirizzati i log. Per ulteriori informazioni, consulta [Prezzi per la registrazione delle informazioni sul traffico ACL web](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html#logging-pricing) nella *Guida per gli sviluppatori di AWS WAF *.

# Distinzione tra maiuscole e minuscole del bacino d'utenza
<a name="user-pool-case-sensitivity"></a>

Per impostazione predefinita, i pool di utenti di Amazon Cognito creati in non Console di gestione AWS fanno distinzione tra maiuscole e minuscole. Quando un bacino d'utenza è senza distinzione tra maiuscole e minuscole, *user@example.com* e *User@example.com* si riferiscono allo stesso utente. Quando i nomi utente in un pool di utenti sono senza distinzione tra maiuscole e minuscole, anche gli attributi `preferred_username` e `email` sono senza distinzione tra maiuscole e minuscole.

La distinzione tra maiuscole e minuscole non si applica solo agli input degli attributi, ma anche agli output. I valori degli attributi misti nei pool di utenti che non fanno distinzione tra maiuscole e minuscole vengono appiattiti in minuscolo nell'output di testo del pool di utenti. [Esempi di output testuale del pool di [utenti sono le risposte UserInfo](userinfo-endpoint.md), le risposte alle interrogazioni degli utenti come l'output di [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)e gli eventi di input nei trigger Lambda.](cognito-user-pools-working-with-lambda-triggers.md)

Per tenere conto delle impostazioni di sensibilità alle maiuscole e alle minuscole del bacino d'utenza, identifica gli utenti nel codice dell'app in base a un attributo utente alternativo. Dal momento che il caso di un attributo nome utente, nome utente preferito o indirizzo e-mail può variare a seconda dei profili utente, fai riferimento all'attributo `sub`. È inoltre possibile creare un attributo personalizzato immutabile nel bacino d'utenza e assegnare il proprio valore identificativo univoco all'attributo in ogni nuovo profilo utente. Quando crei per la prima volta un utente, puoi scrivere un valore in un attributo personalizzato immutabile.

**Nota**  
Indipendentemente dalle impostazioni di distinzione tra maiuscole e minuscole del bacino d'utenza, Amazon Cognito richiede che un utente federato di un provider di identità SAML oppure OIDC passi un'attestazione `NameId` o `sub` univoca e con distinzione tra maiuscole e minuscole. Per ulteriori informazioni sull'identificatore univoco, sulla distinzione tra maiuscole e minuscole e SAML, consulta. IdPs [Implementa l'accesso SAML avviato da SP](cognito-user-pools-SAML-session-initiation.md#cognito-user-pools-saml-idp-authentication)

Creazione di un bacino d'utenza con distinzione tra maiuscole e minuscole  
Se create risorse con le operazioni AWS Command Line Interface (AWS CLI) e API, ad esempio [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html), dovete impostare il parametro `CaseSensitive` Boolean su. `false` Questa impostazione crea un bacino d'utenza senza distinzione tra maiuscole e minuscole. Se non specifichi un valore, il `CaseSensitive` viene impostato di default su `true`. I pool di utenti che crei nella console Amazon Cognito non fanno distinzione tra maiuscole e minuscole. Per creare un pool di utenti con distinzione tra maiuscole e minuscole, devi utilizzare l'operazione. `CreateUserPool` Prima del 12 febbraio 2020, i bacini d'utenza sono stati impostati di default con distinzione tra maiuscole e minuscole, a prescindere dalla piattaforma.   
Nel menu di **accesso** di Console di gestione AWS and, nella `UsernameConfiguration` proprietà di [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolType.html#CognitoUserPools-Type-UserPoolType-UsernameConfiguration), puoi controllare le impostazioni relative alla distinzione tra maiuscole e minuscole per ogni pool di utenti del tuo account.

Migrazione a un nuovo bacino d'utenza  
A causa di potenziali conflitti tra i profili utente, non puoi modificare un bacino d'utenza Amazon Cognito da sensibille alle maiuscole e alle minuscole a insensibile alle maiuscole e alle minuscole. Invece, migra gli utenti in un nuovo bacino d'utenza. È necessario creare un codice di migrazione per risolvere i conflitti correlati ai casi. Questo codice deve restituire un nuovo utente univoco o rifiutare il tentativo di accesso quando rileva un conflitto. In un nuovo bacino d'utenza senza distinzione tra maiuscole e minuscole, assegna un [Trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md). La AWS Lambda funzione può creare utenti nel nuovo pool di utenti senza distinzione tra maiuscole e minuscole. Quando l'utente non riesce ad accedere con il bacino d'utenza senza distinzione tra maiuscole e minuscole, la funzione Lambda trova e duplica l'utente dal bacino d'utenza con distinzione tra maiuscole e minuscole. Puoi anche attivare un trigger [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)Lambda per la migrazione degli utenti sugli eventi. Amazon Cognito trasmette le informazioni sull'utente e i metadati degli eventi dall'azione di accesso o ripristino della password alla funzione Lambda. Puoi utilizzare i dati dell'evento per gestire conflitti tra nomi utente e indirizzi e-mail quando la funzione crea il nuovo utente nel pool di utenti senza distinzione tra maiuscole e minuscole. Questi conflitti sono tra nomi utente e indirizzi e-mail che sarebbero unici in un pool di utenti con distinzione tra maiuscole e minuscole, ma identici in un pool di utenti senza distinzione tra maiuscole e minuscole.   
Per ulteriori informazioni su come utilizzare un trigger Lambda di utenti di migrazione tra pool di utenti Amazon Cognito, [consulta Migrazione degli utenti ai pool di utenti di Amazon Cognito](https://aws.amazon.com/blogs/mobile/migrating-users-to-amazon-cognito-user-pools/) nel blog. AWS 

# Protezione da eliminazione del bacino d'utenza
<a name="user-pool-settings-deletion-protection"></a>

Per evitare che gli amministratori eliminino accidentalmente il pool di utenti, attiva la protezione dall'eliminazione. Con la protezione dalle eliminazioni attiva, è necessario confermare che si desidera eliminare il pool di utenti prima di eliminarlo. Quando si elimina un pool di utenti in Console di gestione AWS, è possibile disattivare contemporaneamente la protezione dall'eliminazione. Quando accetti la richiesta di disattivare la protezione dall'eliminazione e confermi l'intenzione di eliminare, come mostrato nell'immagine seguente, Amazon Cognito elimina il tuo pool di utenti.

![\[Una schermata Console di gestione AWS che mostra una richiesta di eliminazione di un pool di utenti con una richiesta inclusa per disattivare anche la protezione dall'eliminazione.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/amazon-cognito-delete-user-pool-deactivate-deletion-protection.png)


Se desideri eliminare un pool di utenti con una richiesta API Amazon Cognito, devi prima passare `DeletionProtection` a `Inactive` in una [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)richiesta. Se non disattivi la protezione dall'eliminazione, Amazon Cognito restituisce un errore `InvalidParameterException`. Dopo aver disattivato la protezione dall'eliminazione, puoi eliminare il pool di utenti in una [DeleteUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPool.html)richiesta.

Amazon Cognito attiva **Deletion protection** (Protezione dall’eliminazione) per impostazione predefinita quando crei un nuovo pool di utenti nella Console di gestione AWS. Quando crei un pool di utenti con l'API `CreateUserPool`, la protezione dall'eliminazione è inattiva per impostazione predefinita. Per utilizzare questa funzionalità nei pool di utenti creati con AWS CLI o con un AWS SDK, imposta il `DeletionProtection` parametro su. `True`

Puoi attivare o disattivare lo stato di protezione dall'eliminazione nel contenitore di **protezione dall'eliminazione** nel menu **Impostazioni** della console Amazon Cognito.

# Per configurare la protezione da eliminazione


1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). È possibile che ti vengano richieste le credenziali. AWS 

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 **Impostazioni** e vai alla scheda **Protezione dall'eliminazione**. Seleziona **Attiva** o **Disattiva**.

1. Conferma la tua scelta nella finestra di dialogo successiva.

# Gestione delle risposte agli errori relativi all'esistenza degli utenti
<a name="cognito-user-pool-managing-errors"></a>

Amazon Cognito supporta la personalizzazione delle risposte di errore restituite dai pool di utenti. Sono disponibili risposte di errore personalizzate per le operazioni di creazione e autenticazione utente, ripristino password e conferma.

Utilizza l'impostazione `PreventUserExistenceErrors` di un client di applicazioni di un bacino d'utenza per abilitare o disabilitare errori relativi all'esistenza degli utenti. Quando crei una nuova app, il client con l'API dei pool di utenti di Amazon Cognito `PreventUserExistenceErrors` è `LEGACY` o disabilitato per impostazione predefinita. Nella console Amazon Cognito, l'opzione **Previeni gli errori di esistenza degli utenti**, un'impostazione di `ENABLED` for, `PreventUserExistenceErrors` è selezionata per impostazione predefinita. Per aggiornare la `PreventUserExistenceErrors` configurazione, esegui una delle seguenti operazioni:
+ Modifica il valore `PreventUserExistenceErrors` tra `ENABLED` e `LEGACY` in una richiesta [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_UpdateUserPoolClient.html)API.
+ Modifica il client dell'app nella console Amazon Cognito e modifica lo stato di **Previeni gli errori di esistenza degli utenti** tra selezionato (`ENABLED`) e deselezionato (). `LEGACY`

Se questa proprietà ha un valore di`LEGACY`, il client dell'app restituisce una risposta di `UserNotFoundException` errore quando un utente tenta di accedere con un nome utente che non esiste nel tuo pool di utenti.

Quando questa proprietà ha un valore di`ENABLED`, il client dell'app non rivela l'inesistenza di un account utente nel pool di utenti con un `UserNotFoundException` errore. Una `PreventUserExistenceErrors` configurazione di `ENABLED` ha i seguenti effetti quando invii una richiesta per un nome utente che non esiste:
+ Amazon Cognito risponde con informazioni non specifiche alle richieste API laddove la sua risposta potrebbe altrimenti rivelare l'esistenza di un utente valido.
+ Amazon Cognito restituisce una risposta generica di errore di autenticazione alle richieste di password dimenticata e alle richieste di autenticazione con flussi di autenticazione ad *eccezione* dell'[autenticazione basata sulla scelta](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) (), ad esempio o. `USER_AUTH` `USER_SRP_AUTH` `CUSTOM_AUTH` La risposta di errore indica che il nome utente o la password non sono corretti.
+ Amazon Cognito risponde alle richieste di autenticazione basata sulla scelta con una selezione casuale tra i tipi di sfida consentiti per il pool di utenti. Il tuo pool di utenti potrebbe restituire una passkey, una password monouso o una password di verifica.
+ Il comportamento della conferma dell'account Amazon Cognito e del recupero della password APIs si alterna tra la restituzione di una risposta che indica che un codice è stato inviato a un supporto di consegna simulato e la restituzione di un errore. `InvalidParameterException`

Le seguenti informazioni descrivono in dettaglio i comportamenti delle operazioni del pool di utenti quando `PreventUserExistenceErrors` è impostato su. `ENABLED`

## Operazioni di autenticazione e creazione degli utenti
<a name="cognito-user-pool-managing-errors-user-auth"></a>

È possibile configurare le risposte di errore in termini di nome utente-password e autenticazione Secure Remote Password (SRP). Puoi anche personalizzare gli errori restituiti con un'autenticazione personalizzata. L'autenticazione basata sulla scelta non è influenzata dalla configurazione. `PreventUserExistenceErrors`Dettagli sulla divulgazione dell'esistenza degli utenti nei flussi di autenticazione

**Autenticazione basata sulla scelta**  
Nel flusso di `USER_AUTH` autenticazione basato sulla scelta, Amazon Cognito pone una sfida rispetto ai principali fattori di autenticazione disponibili, a seconda della configurazione del pool di utenti e degli attributi degli utenti. Questo flusso di autenticazione può restituire problemi relativi a password, password remota sicura (SRP), WebAuthn (passkey), password monouso (OTP) per SMS o e-mail. Con `PreventUserExistenceErrors` active, Amazon Cognito sfida gli utenti inesistenti a completare una o più delle forme di autenticazione disponibili. Se è `PreventUserExistenceErrors` inattivo, Amazon Cognito restituisce `UserNotFound` un'eccezione.

**Autenticazione con nome utente e password**  
I flussi `ADMIN_USER_PASSWORD_AUTH` di autenticazione e `USER_PASSWORD_AUTH` il `PASSWORD` flusso di `USER_AUTH` ritorno a `NotAuthorizedException` con il messaggio `Incorrect username or password` quando `PreventUserExistenceErrors` è attivo. Quando `PreventUserExistenceErrors` è inattivo, questi flussi ritornano`UserNotFoundException`.

**Autenticazione basata su password remota protetta (SRP)**  
Come procedura consigliata, implementa solo `PreventUserExistenceErrors` con `USER_SRP_AUTH` o con il `PASSWORD_SRP` flusso di pool di `USER_AUTH` utenti interni senza gli attributi di indirizzo e-mail, numero di telefono o [alias](user-pool-settings-attributes.md#user-pool-settings-aliases) del nome utente preferito. Gli utenti con attributi di alias potrebbero non essere soggetti alla soppressione dell'esistenza degli utenti nel flusso di autenticazione SRP. I flussi di autenticazione nome utente e password e la relativa `USER_AUTH` `PASSWORD` sfida eliminano `ADMIN_USER_PASSWORD_AUTH` completamente `USER_PASSWORD_AUTH` l'esistenza degli utenti dagli attributi degli alias.  
[Quando qualcuno tenta l'accesso SRP con un nome utente sconosciuto al client dell'app, Amazon Cognito restituisce una risposta simulata nel primo passaggio, come descritto nella RFC 5054.](https://tools.ietf.org/html/rfc5054#section-2.5.1.3) Amazon Cognito restituisce lo stesso codice e un ID utente interno in formato [UUID](cognito-terms.md#terms-uuid) per la stessa combinazione di nome utente e pool di utenti. Quando si invia una richiesta API `RespondToAuthChallenge` con verifica della password, Amazon Cognito restituisce un errore `NotAuthorizedException` generico quando il nome utente o la password non sono corretti. Per ulteriori informazioni sull'implementazione dell'autenticazione SRP, consulta. [Accedi con password persistenti e payload sicuro](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp)  
[Puoi simulare una risposta generica con l'autenticazione di nome utente e password se utilizzi attributi di alias basati sulla verifica e il nome utente immutabile non è formattato come UUID.](cognito-terms.md#terms-uuid)

**Sfida di autenticazione personalizzata Trigger Lambda**  
Amazon Cognito richiama la [sfida di autenticazione personalizzata che Lambda attiva](user-pool-lambda-challenge.md) quando gli utenti tentano di accedere con il flusso di `CUSTOM_AUTH` autenticazione, ma il loro nome utente non viene trovato. L'evento di input include un parametro booleano denominato `UserNotFound` con un valore per ogni utente inesistente. `true` Questo parametro viene visualizzato negli eventi di richiesta che il pool di utenti invia alle funzioni Lambda di creazione, definizione e verifica dell'autenticazione che costituiscono l'architettura di autenticazione personalizzata. Quando esamini questo indicatore nella logica della tua funzione Lambda, puoi simulare sfide di autenticazione personalizzate per un utente che non esiste.

**Trigger Lambda di pre-autenticazione**  
Amazon Cognito richiama il [trigger di pre-autenticazione](user-pool-lambda-pre-authentication.md) quando gli utenti tentano di accedere ma il loro nome utente non viene trovato. L'evento di input include un `UserNotFound` parametro con un valore pari a `true` per ogni utente inesistente.

L'elenco seguente descrive l'effetto della creazione `PreventUserExistenceErrors` di account utente.Dettagli sulla divulgazione dell'esistenza degli utenti nei flussi di creazione degli utenti

**SignUp**  
L'`SignUp`operazione ritorna sempre `UsernameExistsException` quando è già stato utilizzato un nome utente. Per evitare che Amazon Cognito restituisca un errore `UsernameExistsException` per indirizzi e-mail e numeri di telefono durante la registrazione di utenti nell'app, utilizza gli attributi alias basati sulla verifica. Per ulteriori informazioni sugli alias, consultare [Personalizzazione degli attributi di accesso](user-pool-settings-attributes.md#user-pool-settings-aliases).  
Per un esempio di come Amazon Cognito può impedire l'uso delle richieste API `SignUp` per scoprire gli utenti del pool di utenti in uso, consulta [Prevenzione degli errori `UsernameExistsException` relativi a indirizzi e-mail e numeri di telefono durante la registrazione](#cognito-user-pool-managing-errors-prevent-userexistence-errors).

**Utenti importati**  
Se `PreventUserExistenceErrors` è abilitato, durante l'autenticazione degli utenti importati viene restituito un errore `NotAuthorizedException` generico che indica che il nome utente o la password non erano corretti, anziché restituire `PasswordResetRequiredException`. Per ulteriori informazioni, consulta [Necessità degli utenti importati di ripristinare le password](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-password-reset).

**Trigger Lambda di migrazione utenti**  
Amazon Cognito restituirà una risposta simulata per gli utenti inesistenti quando il trigger Lambda imposta una risposta vuota nel contesto dell'evento originale. Per ulteriori informazioni, consulta [Importazione di utenti con un trigger Lambda per la migrazione di utenti](cognito-user-pools-import-using-lambda.md). 

### Prevenzione degli errori `UsernameExistsException` relativi a indirizzi e-mail e numeri di telefono durante la registrazione
<a name="cognito-user-pool-managing-errors-prevent-userexistence-errors"></a>

Nell'esempio seguente viene illustrato come impedire che indirizzi e-mail e numeri di telefono duplicati generino errori `UsernameExistsException` in risposta alle richieste API `SignUp`, durante la configurazione di attributi alias nel pool di utenti. È necessario aver creato il pool di utenti con indirizzo e-mail o numero di telefono come un attributo alias. Per ulteriori informazioni, consulta la sezione *Personalizzazione degli attributi di accesso* di [Attributi del pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases).

1. Jie esegue la registrazione per un nuovo nome utente e fornisce anche l'indirizzo e-mail `jie@example.com`. Amazon Cognito invia un codice all'indirizzo e-mail.

   ** AWS CLI Comando di esempio**

   ```
   aws cognito-idp sign-up --client-id 1234567890abcdef0 --username jie --password PASSWORD --user-attributes Name="email",Value="jie@example.com"
   ```

   **Esempio di risposta**

   ```
   {
       "UserConfirmed": false, 
       "UserSub": "<subId>", 
       "CodeDeliveryDetails": {
           "AttributeName": "email", 
           "Destination": "j****@e****", 
           "DeliveryMedium": "EMAIL"
       }
   }
   ```

1. Jie fornisce il codice inviato per confermare di essere il titolare dell'indirizzo email. Questo completa la registrazione come un utente.

   ** AWS CLI Comando di esempio**

   ```
   aws cognito-idp confirm-sign-up --client-id 1234567890abcdef0 --username=jie --confirmation-code xxxxxx
   ```

1. Shirley registra un nuovo account utente e fornisce l'indirizzo e-mail `jie@example.com`. Amazon Cognito non restituisce un errore `UsernameExistsException` e invia un codice di conferma all'indirizzo e-mail di Jie.

   ** AWS CLI Comando di esempio**

   ```
   aws cognito-idp sign-up --client-id 1234567890abcdef0 --username shirley --password PASSWORD --user-attributes Name="email",Value="jie@example.com"
   ```

   **Esempio di risposta**

   ```
   {
       "UserConfirmed": false, 
       "UserSub": "<new subId>", 
       "CodeDeliveryDetails": {
           "AttributeName": "email", 
           "Destination": "j****@e****", 
           "DeliveryMedium": "EMAIL"
       }
   }
   ```

1. In uno scenario diverso, Shirley è la titolare di `jie@example.com`. Shirley recupera il codice inviato da Amazon Cognito all'indirizzo e-mail di Jie e tenta di confermare l'account.

   ** AWS CLI Comando di esempio**

   ```
   aws cognito-idp confirm-sign-up --client-id 1234567890abcdef0 --username=shirley --confirmation-code xxxxxx
   ```

   **Esempio di risposta**

   ```
   An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.
   ```

Amazon Cognito non restituisce un errore alla richiesta `aws cognito-idp sign-up` di Shirley, nonostante `jie@example.com` sia stato assegnato a un utente esistente. Shirley deve dimostrare di essere titolare dell'indirizzo e-mail prima che Amazon Cognito restituisca una risposta di errore. In un pool di utenti con attributi alias, questo comportamento impedisce l'uso dell'API `SignUp` pubblica per verificare se esiste un utente con un determinato indirizzo e-mail o numero di telefono.

Questo comportamento è diverso dalla risposta restituita da Amazon Cognito alla richiesta `SignUp` con un nome utente esistente, come illustrato nell'esempio seguente. Sebbene Shirley apprenda da questa risposta che esiste già un utente con il nome utente `jie`, non viene informata di alcun indirizzo e-mail o numero di telefono associato all'utente.

**Comando della CLI di esempio**

```
aws cognito-idp sign-up --client-id 1example23456789 --username jie --password PASSWORD
      --user-attributes Name="email",Value="shirley@example.com"
```

**Esempio di risposta**

```
An error occurred (UsernameExistsException) when calling the SignUp operation: User already exists
```

## Operazioni di ripristino della password
<a name="cognito-user-pool-managing-errors-password-reset"></a>

Amazon Cognito restituisce le seguenti risposte alle operazioni di reimpostazione della password utente quando si evitano errori relativi all’esistenza dell'utente.

**ForgotPassword**  
Se un utente non viene trovato, è disattivato o non dispone di un meccanismo di consegna verificato per recuperare la password, Amazon Cognito restituisce `CodeDeliveryDetails` con un supporto di recapito simulato per un utente. Il supporto di recapito simulato è determinato dal formato del nome utente di input e dalle impostazioni di verifica del pool di utenti.

**ConfirmForgotPassword**  
Amazon Cognito restituisce l'errore `CodeMismatchException` per gli utenti che non esistono o sono disabilitati. Se non viene richiesto un codice quando si utilizza `ForgotPassword`, Amazon Cognito restituisce l'errore `ExpiredCodeException`.

## Operazioni di conferma
<a name="cognito-user-pool-managing-errors-confirmation"></a>

Amazon Cognito restituisce le seguenti risposte alle operazioni di conferma e verifica quando si evitano errori relativi all’esistenza dell'utente.

**ResendConfirmationCode**  
Amazon Cognito restituisce l'errore `CodeDeliveryDetails` per un utente disabilitato o uno che non esiste. Per un utente esistente, Amazon Cognito invia un codice di conferma all'indirizzo e-mail o al telefono dell'utente.

**ConfirmSignUp**  
 `ExpiredCodeException` restituisce se un codice è scaduto. Amazon Cognito restituisce `NotAuthorizedException` quando un utente non è autorizzato. Se il codice non corrisponde a quello previsto dal server, Amazon Cognito restituisce `CodeMismatchException`. 