

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestione degli utenti nel tuo bacino d'utenza
<a name="managing-users"></a>

Dopo che hai creato un pool di utenti, puoi creare, confermare e gestire gli account utente. Con i gruppi di bacini d'utenza di Amazon Cognito, è possibile gestire gli utenti e il loro accesso alle risorse mappando i ruoli IAM ai gruppi.

La gestione degli utenti nel pool di utenti di Amazon Cognito implica una varietà di opzioni di configurazione e attività amministrative. I pool di utenti possono scalare fino a milioni di utenti. Un elenco utenti di queste dimensioni richiede strumenti amministrativi altrettanto scalabili e ripetibili. Potresti voler creare molti profili utente, gestire gli utenti inattivi, produrre report di governance e conformità o configurare strumenti self-service dove gli utenti svolgono la maggior parte del lavoro. Dopo aver creato un pool di utenti, puoi controllare il modo in cui gli utenti si iscrivono e confermano i propri account, inclusa la richiesta di verifica dell'e-mail o del numero di telefono. Gli amministratori possono anche creare direttamente account utente e personalizzare i messaggi di benvenuto e i requisiti relativi alle password.

I pool di utenti dispongono di gruppi di utenti, in cui è possibile gestire l'accesso alle risorse in base all'appartenenza di un utente al gruppo. Puoi assegnare ruoli IAM a questi gruppi per gestire l'accesso Servizi AWS con pool di identità. L'appartenenza al gruppo degli utenti è presente sia nell'ID che nei token di accesso. Con queste informazioni, puoi prendere decisioni sul controllo degli accessi in fase di esecuzione nella tua applicazione o con un motore di policy come Amazon Verified Permissions.

I pool di utenti hanno spesso molti utenti. Ti ritroverai spesso a cercare e aggiornare gli account utente. La console e l'API di Amazon Cognito supportano l'interrogazione degli utenti in base ad attributi standard come nome utente, e-mail e numero di telefono. Gli amministratori possono anche reimpostare le password, disabilitare gli account e visualizzare la cronologia degli eventi degli utenti.

Per la migrazione dei dati utente esistenti, Amazon Cognito offre la possibilità di importare gli utenti da un file CSV e di utilizzare un trigger [Lambda](user-pool-lambda-migrate-user.md) per migrare automaticamente gli utenti al primo accesso. Queste opzioni supportano le transizioni degli utenti da altre directory utente al tuo pool di utenti.

È possibile utilizzare le funzionalità di gestione degli utenti nei pool di utenti per avere un controllo preciso sul ciclo di vita degli utenti e sull'esperienza di autenticazione. La combinazione di registrazione self-service, account creati dall'amministratore, gruppi e strumenti di migrazione rende i pool di utenti di Amazon Cognito una directory utente flessibile.

**Topics**
+ [Configurazione delle policy per la creazione degli utenti](user-pool-settings-admin-create-user-policy.md)
+ [Registrazione e conferma degli account utente](signing-up-users-in-your-app.md)
+ [Creazione di account utente come amministratore](how-to-create-user-accounts.md)
+ [Aggiunta di gruppi a un bacino d'utenza](cognito-user-pools-user-groups.md)
+ [Gestione e ricerca degli account utente](how-to-manage-user-accounts.md)
+ [Password, ripristino dell'account e politiche relative alle password](managing-users-passwords.md)
+ [Importazione di utenti in un bacino d'utenza](cognito-user-pools-import-users.md)
+ [Utilizzo degli attributi utente](user-pool-settings-attributes.md)

# Configurazione delle policy per la creazione degli utenti
<a name="user-pool-settings-admin-create-user-policy"></a>

Il pool di utenti può consentire agli utenti di registrarsi oppure puoi crearli come amministratore. Puoi anche controllare in che misura il processo di verifica e conferma dopo la registrazione è affidato agli utenti. Ad esempio, potresti voler esaminare le iscrizioni e accettarle sulla base di un processo di convalida esterno. Questa configurazione, o *policy utente creata dall'amministratore*, imposta inoltre il periodo di tempo prima che un utente non possa più confermare il proprio account.

Amazon Cognito può soddisfare le esigenze dei clienti pubblici come piattaforma CIAM (Customer Identity and Access Management) per il software. Un pool di utenti che accetta la registrazione e dispone di un client per l'app, con o senza accesso gestito, crea un profilo utente per chiunque su Internet conosca l'ID client dell'app, individuabile pubblicamente, e richieda di registrarsi. Un profilo utente registrato può ricevere token di accesso e di identità e può accedere alle risorse che hai autorizzato per l'app. Prima di attivare l'iscrizione nel pool di utenti, esamina le opzioni e assicurati che la configurazione sia conforme ai tuoi standard di sicurezza. Imposta **Abilita la registrazione self-service** e `AllowAdminCreateUserOnly`, come descritto nelle seguenti procedure, con attenzione.

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

Il menu di **registrazione** del tuo pool di utenti contiene alcune impostazioni per la registrazione e la creazione amministrativa degli utenti nel tuo pool di utenti.

**Configurazione dell'esperienza di registrazione**

1. In **Verifica e conferma assistite da Cognito**, scegli se **Consentire a Cognito di inviare automaticamente messaggi per la verifica e la conferma**. Con questa impostazione abilitata, Amazon Cognito invia un'e-mail o un messaggio SMS ai nuovi utenti con un codice da presentare al pool di utenti. Ciò conferma la proprietà dell'indirizzo e-mail o del numero di telefono, impostando l'attributo equivalente come verificato e confermando l'account utente per l'accesso. Gli **Attributi da verificare** scelti determinano i metodi di consegna e le destinazioni dei messaggi di verifica.

1. **Verifica delle modifiche degli attributi** non è importante quando si creano utenti, ma è relativa alla verifica degli attributi. Puoi consentire agli utenti che hanno modificato ma non ancora verificato i propri [attributi di accesso](user-pool-settings-attributes.md#user-pool-settings-aliases.title) di continuare ad accedere con il nuovo valore dell'attributo o con quello originale. Per ulteriori informazioni, consulta [Verifica in caso di modifica dell'e-mail o del numero di telefono da parte dell'utente](signing-up-users-in-your-app.md#verifying-when-users-change-their-email-or-phone-number).

1. **Attributi obbligatori** mostra gli attributi a cui è necessario fornire un valore prima che un utente possa registrarsi o creare un utente. È possibile impostare gli attributi obbligatori solo quando si crea un pool di utenti.

1. Gli **Attributi personalizzati** sono importanti per il processo di creazione e registrazione degli utenti perché puoi impostare un valore per gli attributi personalizzati *non modificabili* solo quando crei un utente per la prima volta. Per ulteriori informazioni sugli attributi personalizzati, consulta [Attributi personalizzati](user-pool-settings-attributes.md#user-pool-settings-custom-attributes).

1. In **Iscrizione self-service** seleziona **Abilita la registrazione self-service** se desideri che gli utenti siano in grado di generare un nuovo account con l'API `SignUp` [non autenticata](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html#user-pool-apis-auth-unauth). Se disabiliti l'autoregistrazione, puoi creare nuovi utenti solo come amministratore, nella console Amazon Cognito o [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)con richieste API. **In un pool di utenti in cui l'autoregistrazione è inattiva, le richieste [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API vengono restituite `NotAuthorizedException` e l'accesso gestito non mostra il link di registrazione.**

Per i pool di utenti in cui intendi creare utenti come amministratore, puoi configurare la durata delle relative password temporanee nell'impostazione del menu **Metodi di autenticazione** in Le **password temporanee impostate dagli** amministratori scadono in.

Un altro elemento importante della creazione di utenti come amministratore è il messaggio di invito. Quando crei un nuovo utente, Amazon Cognito invia un messaggio con un link alla tua app in modo che l'utente possa accedere per la prima volta. **Personalizza questo modello di messaggio nel menu **Metodi di autenticazione** in Modelli di messaggi.**

Puoi configurare [client di app riservati](user-pool-settings-client-apps.md#user-pool-settings-client-app-client-types.title), in genere applicazioni Web, con un segreto del client che impedisce l'iscrizione senza il segreto del client dell'app. Come best practice consigliata in materia di sicurezza, non distribuire i segreti dei client delle app in client di app pubbliche, in genere app per dispositivi mobili. Puoi creare client di app con segreti client nel menu **App client** della console Amazon Cognito.

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

Puoi impostare a livello di codice i parametri per la creazione di utenti in un pool di utenti 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.

L'[AdminCreateUserConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AdminCreateUserConfig)elemento imposta i valori per le seguenti proprietà di un pool di utenti.

1. Abilitazione dell'iscrizione self-service

1. Il messaggio di invito che invii ai nuovi utenti creati dall'amministratore

L'esempio seguente, quando viene aggiunto al corpo completo della richiesta API, imposta un pool di utenti con l'iscrizione self-service inattiva e un'e-mail di invito di base.

```
"AdminCreateUserConfig": { 
      "AllowAdminCreateUserOnly": true,
      "InviteMessageTemplate": { 
         "EmailMessage": "Your username is {username} and temporary password is {####}.",
         "EmailSubject": "Welcome to ExampleApp",
         "SMSMessage": "Your username is {username} and temporary password is {####}."
      }
   }
```

I seguenti parametri aggiuntivi di 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 regolano la creazione di nuovi utenti.

[AutoVerifiedAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AutoVerifiedAttributes)  
Gli attributi, gli indirizzi e-mail o i numeri di telefono a cui desideri [inviare automaticamente un messaggio](user-pool-settings-email-phone-verification.md#user-pool-settings-email-phone-verification.title) quando registri un nuovo utente.

[Policy](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Policies)  
La [policy delle password](managing-users-passwords.md#user-pool-settings-policies.title) del pool di utenti.

[Schema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema)  
Gli [attributi personalizzati](user-pool-settings-attributes.md#user-pool-settings-custom-attributes.title) del pool di utenti. Sono importanti per il processo di creazione e registrazione degli utenti perché puoi impostare un valore per gli attributi personalizzati *non modificabili* solo quando crei un utente per la prima volta.  
Questo parametro imposta anche gli attributi richiesti per il pool di utenti. Il testo seguente, quando viene inserito nell'elemento `Schema` di un corpo di una richiesta API completa, imposta l'attributo `email`come richiesto.  

```
{
            "Name": "email",
            "Required": true
}
```

------

# Registrazione e conferma degli account utente
<a name="signing-up-users-in-your-app"></a>

Gli account utente vengono aggiunti al bacino d'utenza in uno dei seguenti modi:
+ L'utente effettua la registrazione nell'app client del tuo bacino d'utenza. Può trattarsi di un'app per dispositivi mobili o Web.
+ Puoi importare l'account utente nel tuo bacino d'utenza. Per ulteriori informazioni, consulta [Importazione di utenti nel bacino d'utenza da un file CSV](cognito-user-pools-using-import-tool.md).
+ Puoi creare l'account utente all'interno del bacino d'utenza e invitare l'utente a effettuare l'accesso. Per ulteriori informazioni, consulta [Creazione di account utente come amministratore](how-to-create-user-accounts.md).

Gli utenti che effettuano la registrazione devono essere confermati prima di poter eseguire l'accesso. Gli utenti importati e creati sono già confermati, ma devono creare la propria password quando effettuano l'accesso per la prima volta. Le sezioni seguenti spiegano il processo di conferma e la verifica tramite e-mail o telefono.

**Password al momento dell'iscrizione**  
Amazon Cognito richiede le password di tutti gli utenti al momento della registrazione, ad eccezione delle seguenti condizioni. Se *tutte* queste condizioni sono soddisfatte, puoi omettere le password nelle operazioni di registrazione.

1. L'[accesso senza password](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) è attivo nel pool di utenti e nel client dell'app.

1. La tua applicazione è personalizzata con moduli di autenticazione in un SDK. AWS L'accesso gestito e l'interfaccia utente ospitata richiedono sempre delle password.

1. Gli utenti forniscono valori di attributo per i metodi di accesso senza password, ad esempio e-mail o SMS, password monouso (), consentiti dall'utente. OTPs Ad esempio, se consenti l'accesso tramite e-mail e telefono OTP, gli utenti possono fornire un numero di telefono o un indirizzo e-mail, ma se consenti solo l'accesso tramite e-mail, devono fornire un indirizzo e-mail.

1. Il pool di utenti [verifica automaticamente](#allowing-users-to-sign-up-and-confirm-themselves) gli attributi che gli utenti possono utilizzare con l'accesso senza password.

1. [Per ogni [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)richiesta specifica, l'utente non fornisce un valore per il parametro Password.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Password)

## Panoramica sulla conferma dell'account utente
<a name="signup-confirmation-verification-overview"></a>

Il seguente diagramma illustra il processo di conferma:

![\[Quando gli utenti inseriscono il codice di conferma, verificano automaticamente l'e-mail o il telefono.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/amazon-cognito-sign-in-confirm-user.png)


Un account utente può avere differenti stati:

**Registrato (non confermato)**  
L'utente si è registrato correttamente, ma non può effettuare l'accesso fino a quando l'account utente non viene confermato. In questo stato l'utente è abilitato ma non confermato.  
I nuovi utenti che effettuano la registrazione iniziano da questo stato.

**Confermato**  
L'account utente viene confermato e l'utente può effettuare l'accesso. Quando un utente inserisce un codice o segue un link e-mail per confermare il proprio account utente, tale e-mail o numero di telefono viene verificato automaticamente. Il codice o il link è valido 24 ore.  
Se l'account utente è stato confermato dall'amministratore o da un trigger Lambda di pre-registrazione, potrebbe non esserci un'e-mail verificata o un numero di telefono associato all'account.

**Reimpostazione della password obbligatoria**  
L'account utente viene confermato, ma l'utente deve richiedere un codice e reimpostare la password prima di poter effettuare l'accesso.  
Gli account utente importati da un amministratore o uno sviluppatore iniziano da questo stato.

**Modifica forzata della password**  
L'account utente viene verificato e l'utente può accedere utilizzando una password temporanea che dovrà modificare al primo accesso con un nuovo valore prima di fare qualsiasi altra operazione.  
Gli account utente creati da un amministratore o uno sviluppatore iniziano da questo stato.

**Disabilitato**  
Prima di poter eliminare un account utente, è necessario disabilitare l'accesso per quest'ultimo.

**Altre risorse**
+ [Rilevamento e correzione degli account utente inattivi con Amazon Cognito](https://aws.amazon.com/blogs/security/detecting-and-remediating-inactive-user-accounts-with-amazon-cognito/)

## Verifica delle informazioni di contatto al momento della registrazione
<a name="allowing-users-to-sign-up-and-confirm-themselves"></a>

Quando nuovi utenti effettuano la registrazione nella tua app, è probabile che tu voglia che forniscano almeno un metodo di contatto. Ad esempio, con le informazioni di contatto degli utenti, puoi:
+ Inviare una password temporanea quando un utente sceglie di reimpostare la propria password.
+ Avvisare gli utenti quando le loro informazioni personali o finanziarie vengono aggiornate.
+ Inviare messaggi promozionali, ad esempio offerte speciali o sconti.
+ Inviare riepiloghi sugli account o promemoria di fatturazione.

Per i casi d'uso come questi, è importante inviare messaggi a una destinazione verificata. Diversamente potresti inviare i tuoi messaggi a indirizzi e-mail o numeri di telefono non validi non digitati correttamente. Ancora peggio, potresti inviare informazioni riservate a destinatari scaltri che fingono di essere tuoi utenti.

Per essere certo di inviare i messaggi solo alle persone corrette, configura il tuo bacino d'utenza Amazon Cognito in modo che gli utenti debbano fornire le informazioni seguenti al momento della registrazione:

1. Un indirizzo e-mail o numero di telefono.

1. Un codice di verifica che Amazon Cognito invia all'indirizzo e-mail o al numero di telefono. Se sono trascorse 24 ore e il codice o il link dell'utente non è più valido, chiama l'operatore dell'[ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API per generare e inviare un nuovo codice o collegamento.

Fornendo il codice di verifica, un utente dimostra di avere accesso alla mailbox o al telefono che ha ricevuto il codice. Dopo che l'utente ha fornito il codice, Amazon Cognito aggiorna le informazioni relative all'utente nel bacino d'utenza nel seguente modo:
+ Impostando lo stato dell'utente su `CONFIRMED`.
+ Aggiornando gli attributi dell'utente per indicare che l'indirizzo e-mail o il numero di telefono sono verificati.

Per visualizzare queste informazioni, puoi utilizzare la console Amazon Cognito. In alternativa, puoi utilizzare l'operazione `AdminGetUser` API AWS CLI, il `admin-get-user` comando con o un'azione corrispondente in uno dei AWS SDKs.

Se un utente dispone di un metodo di contatto verificato, Amazon Cognito gli invia automaticamente un messaggio quando richiede un ripristino della password.

### Altre azioni che confermano e verificano gli attributi dell'utente
<a name="allowing-users-to-sign-up-and-confirm-themselves-other-actions"></a>

La seguente attività dell'utente verifica gli attributi dell'utente. Non è necessario impostare questi attributi per la verifica automatica: le azioni elencate li contrassegnano come verificati in tutti i casi.

**Indirizzo e-mail**  

1. Completamento con successo dell'[autenticazione senza password](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) con una password monouso (OTP) via e-mail.

1. Completamento con successo [dell'autenticazione a più fattori (MFA](user-pool-settings-mfa.md)) con un'e-mail OTP.

**Numero di telefono**  

1. Completamento con successo dell'[autenticazione senza password](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) con un SMS OTP.

1. Completamento con successo della [MFA](user-pool-settings-mfa.md) con un SMS OTP.

### Per configurare il bacino d'utenza per richiedere la verifica di e-mail o telefono
<a name="verification-configure"></a>

Quando verifichi gli indirizzi e-mail e i numeri di telefono degli utenti, assicurati di poter contattare questi ultimi. Completa i seguenti passaggi Console di gestione AWS per configurare il tuo pool di utenti in modo che gli utenti confermino i loro indirizzi e-mail o numeri di telefono.

**Nota**  
Se non disponi ancora di un pool di utenti nel tuo account, consulta [Nozioni di base sui bacini d'utenza](getting-started-user-pools.md).

**Per configurare il bacino d'utenza**

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

1. Dal riquadro di navigazione, scegli **User Pools (Bacini d'utenza)**. 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 **registrazione** e individua la **verifica degli attributi e la conferma dell'account utente**. Scegli **Modifica**.

1. In **Verifica e conferma assistita da Cognito**, se desideri, scegli **Consenti a Cognito di inviare automaticamente messaggi per la verifica e la conferma**. Con questa impostazione abilitata, Amazon Cognito invia messaggi agli attributi di contatto utente selezionati quando un utente si iscrive o quando crei un profilo utente. Per verificare gli attributi e confermare i profili utente per l'accesso, Amazon Cognito invia un codice o un link nei messaggi agli utenti. Gli utenti devono quindi inserire il codice nell'interfaccia utente in modo che l'app possa confermarli in una richiesta API `ConfirmSignUp` o `AdminConfirmSignUp`.
**Nota**  
Puoi anche disabilitare la **verifica e conferma assistita da Cognito** e utilizzare azioni API autenticate o trigger Lambda per verificare gli attributi e confermare gli utenti.  
Scegliendo questa opzione, Amazon Cognito non invia alcun codice di verifica quando gli utenti effettuano la registrazione. Scegli questa opzione se utilizzi un flusso di autenticazione personalizzato che verifica almeno un metodo di contatto senza usare i codici di verifica di Amazon Cognito. Ad esempio, è possibile utilizzare un trigger Lambda di pre-registrazione che verifica automaticamente gli indirizzi e-mail che appartengono a un determinato dominio.  
Se non vengono verificate le informazioni di contatto degli utenti, in alcuni casi essi potrebbero non essere in grado di utilizzare l'app. Si noti che tutti gli utenti necessitano di informazioni di contatto verificate per:  
**Reimpostare la password utente** — Quando un utente effettua un'operazione nell'app che chiama l'operazione API `ForgotPassword`, Amazon Cognito invia una password temporanea all'indirizzo e-mail o al numero di telefono dell'utente. Amazon Cognito invia questa password solo se l'utente ha almeno un metodo di contatto verificato.
**Accesso tramite indirizzo e-mail o numero di telefono come alias** — Configurando il bacino d'utenza per consentire questi alias, un utente sarà in grado di accedere con un alias solo se è verificato. Per ulteriori informazioni, consulta [Personalizzazione degli attributi di accesso](user-pool-settings-attributes.md#user-pool-settings-aliases).

1. Scegli gli **attributi da verificare**:  
**Invia un messaggio SMS, verifica il numero di telefono**  
Amazon Cognito invia un codice di verifica tramite messaggio SMS all'accesso dell'utente. Scegli questa opzione se in genere comunichi con gli utenti tramite SMS. Ad esempio, si vorranno utilizzare numeri di telefono verificati se si inviano notifiche di consegna, conferme di appuntamenti o avvisi. I numeri di telefono dell'utente saranno l'attributo verificato al momento della conferma degli account; è necessario intraprendere ulteriori azioni per verificare e comunicare con gli indirizzi e-mail dell'utente.  
**Invia messaggio e-mail, verifica l'indirizzo email**  
Amazon Cognito invia un codice di verifica tramite messaggio SMS all'accesso dell'utente. Scegliere questa opzione se in genere si comunica con gli utenti tramite e-mail. Ad esempio, si vorranno utilizzare indirizzi e-mail verificati se si inviano estratti conto, riepiloghi di ordini o offerte speciali. Gli indirizzi e-mail dell'utente saranno l'attributo verificato al momento della conferma degli account; è necessario intraprendere ulteriori azioni per verificare e comunicare con gli indirizzi e-mail dell'utente.  
**Invia messaggio SMS se il numero di telefono è disponibile, altrimenti invia un messaggio e-mail**  
Scegliere questa opzione se non si necessita che tutti gli utenti dispongano del medesimo metodo di contatto verificato. In questo caso, la pagina di registrazione nell'app potrebbe richiedere agli utenti di verificare solo il metodo di contatto preferito. Quando Amazon Cognito un codice di verifica, lo invia al metodo di contatto fornito nella richiesta `SignUp` dall'app. Se un utente fornisce sia un indirizzo e-mail che un numero di telefono e l'app offre entrambi i metodi di contatto nella richiesta `SignUp`, Amazon Cognito invierà il codice di verifica solo al numero di telefono.  
Se occorre che gli utenti verifichino sia un indirizzo e-mail che un numero di telefono, scegliere questa opzione. Amazon Cognito verifica un metodo di contatto quando l'utente effettua la registrazione e l'app deve verificare l'altro metodo di contatto dopo che l'utente ha effettuato l'accesso. Per ulteriori informazioni, consulta [Se si richiede agli utenti di confermare sia gli indirizzi e-mail che i numeri di telefono](#verification-email-plus-phone).

1. Scegli **Salva modifiche**.

### Flusso di autenticazione con verifica di e-mail o telefono
<a name="verification-flow"></a>

Se il bacino d'utenza richiede agli utenti di verificare le proprie informazioni di contatto, l'app deve facilitare il seguente flusso quando un utente effettua la registrazione:

1. Un utente si iscrive alla tua app inserendo un nome utente, un numero di telefono, un indirizzo and/or email e possibilmente altri attributi.

1. Il servizio Amazon Cognito riceve la richiesta di registrazione dall'app. Dopo aver verificato che la richiesta contenga tutti gli attributi necessari per la registrazione, il servizio completa il processo di registrazione e invia un codice di conferma al telefono (tramite SMS) o all'indirizzo e-mail dell'utente. Il codice è valido per 24 ore.

1. Il servizio informa l'app che la registrazione è stata completata e che l'account utente è in attesa di conferma. La risposta contiene informazioni su dove è stato inviato il codice di conferma. A questo punto l'account utente è in stato non confermato e l'indirizzo e-mail e il numero di telefono dell'utente non sono verificati.

1. L'app è ora in grado di richiedere all'utente di inserire il codice di conferma. Non è necessario che l'utente inserisca il codice immediatamente. Tuttavia, l'utente non sarà in grado di effettuare l'accesso fino a quando non avrà inserito il codice di conferma.

1. L'utente inserisce il codice di conferma nell'app.

1. L'app chiama [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) per inviare il codice al servizio Amazon Cognito, il quale verifica il codice e, se è corretto, imposta l'account utente sullo stato confermato. Dopo aver confermato correttamente l'account utente, il servizio Amazon Cognito contrassegna automaticamente l'attributo utilizzato per la conferma (indirizzo e-mail o numero di telefono) come verificato. A meno che il valore di questo attributo non venga modificato, l'utente non dovrà verificarlo nuovamente.

1. A questo punto l'account utente è in stato confermato e l'utente può effettuare l'accesso.

### Se si richiede agli utenti di confermare sia gli indirizzi e-mail che i numeri di telefono
<a name="verification-email-plus-phone"></a>

Amazon Cognito verifica solo uno dei metodi di contatto quando un utente effettua la registrazione. Nei casi in cui Amazon Cognito deve scegliere tra la verifica di un indirizzo e-mail o di un numero di telefono, sceglie di verificare il numero di telefono inviando un codice di verifica tramite SMS. Ad esempio, se configuri il tuo bacino d'utenza per consentire agli utenti di verificare gli indirizzi e-mail o i numeri di telefono e se la tua app fornisce entrambi questi attributi al momento della registrazione, Amazon Cognito verifica solo il numero di telefono. Dopo che un utente ha verificato il proprio numero di telefono, Amazon Cognito imposta lo stato dell'utente su `CONFIRMED` e all'utente sarà consentito accedere all'app.

Dopo che l'utente ha effettuato l'accesso, la tua app può fornire l'opzione di verifica del metodo di contatto che non è stato verificato durante la registrazione. Per verificare il secondo metodo, la tua app chiama l'operazione API `VerifyUserAttribute`. Tieni presente che questa operazione richiede un parametro `AccessToken` e che Amazon Cognito fornisce solo i token di accesso agli utenti autenticati. Pertanto, puoi verificare il secondo metodo di contatto solo dopo che l'utente ha effettuato l'accesso.

Se hai bisogno che i tuoi utenti verifichino sia gli indirizzi e-mail che i numeri di telefono, effettua quanto segue:

1. Configurare il bacino d'utenza per consentire agli utenti di verificare l'indirizzo e-mail o il numero di telefono.

1. Nel flusso di registrazione dell'app, richiedere agli utenti di fornire un indirizzo e-mail e un numero di telefono. Chiamare l'operazione API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html) e fornire l'indirizzo e-mail e il numero di telefono per il parametro `UserAttributes`. A questo punto, Amazon Cognito invia un codice di verifica al telefono dell'utente.

1. Nell'interfaccia dell'app, presentare una pagina di conferma in cui l'utente possa immettere il codice di verifica. Confermare l'utente chiamando l'operazione API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html). A questo punto, lo stato dell'utente è `CONFIRMED` e il suo numero di telefono verificato, ma non lo è l'indirizzo e-mail.

1. Presentare la pagina di accesso e autenticare l'utente chiamando l'operazione API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html). Dopo che l'utente è stato autenticato, Amazon Cognito restituisce un token di accesso all'app.

1. Chiama l'operazione API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html). Specificare i seguenti parametri nella richiesta.
   + `AccessToken`: il token di accesso restituito da Amazon Cognito quando l'utente ha effettuato l'accesso.
   + `AttributeName`: specifica `"email"` come valore dell'attributo.

   Amazon Cognito invia un codice di verifica all'indirizzo e-mail dell'utente.

1. Presentare una pagina di conferma in cui l'utente possa immettere il codice di verifica. Quando l'utente invia il codice, chiamare l'operazione API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html). Specificare i seguenti parametri nella richiesta.
   + `AccessToken`: il token di accesso restituito da Amazon Cognito quando l'utente ha effettuato l'accesso.
   + `AttributeName`: specifica `"email"` come valore dell'attributo.
   + `Code`: il codice di verifica fornito dall'utente.

   A questo punto, l'indirizzo e-mail è verificato.

## Permettere agli utenti di registrarsi ma confermarli come un amministratore del pool di utenti
<a name="signing-up-users-in-your-app-and-confirming-them-as-admin"></a>

Potrebbe essere necessario impedire al pool di utenti di inviare automaticamente messaggi di verifica nel pool di utenti, ma consentire comunque a chiunque di registrarsi per un account. Questo modello lascia spazio, ad esempio, alla revisione umana delle nuove richieste di registrazione e alla convalida ed elaborazione batch delle registrazioni. Puoi confermare nuovi account utente nella console Amazon Cognito o con l'operazione API autenticata tramite IAM. [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) Puoi confermare gli account utente come un amministratore a prescindere che il pool di utenti invii o meno messaggi di verifica.

Con questa tecnica, puoi solo confermare l'iscrizione self-service di un utente. Per confermare un utente creato come amministratore, crea una richiesta [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API con set to. `Permanent` `True`

1. Un utente si iscrive alla tua app inserendo un nome utente, un numero di telefono, un indirizzo and/or email e possibilmente altri attributi.

1. Il servizio Amazon Cognito riceve la richiesta di registrazione dall'app. Dopo aver verificato che la richiesta contenga tutti gli attributi necessari per la registrazione, il servizio completa il processo di registrazione e indica all'app che la registrazione è stata completata ed è in attesa di conferma. A questo punto l'account utente è in stato non confermato. L'utente non può effettuare l'accesso fino a quando l'account non è confermato.

1. Conferma l'account dell'utente. È necessario accedere Console di gestione AWS o firmare la richiesta API con AWS le credenziali per confermare l'account. 

   1. **Per confermare un utente nella console Amazon Cognito, accedi al menu **Utenti**, scegli l'utente che desideri confermare e dal menu **Azioni** seleziona Conferma.**

   1. Per confermare un utente nell' AWS API o nella CLI, crea una richiesta [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)API o [admin-confirm-sign-up](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-confirm-sign-up.html)in. AWS CLI

1. A questo punto l'account utente è in stato confermato e l'utente può effettuare l'accesso.

## Calcolo dei valori SecretHash
<a name="cognito-user-pools-computing-secret-hash"></a>

Assegnare un segreto del cliente al client dell'app riservata come una best practice. Quando si assegna un segreto del client al client dell'app, le richieste API del pool di utenti di Amazon Cognito devono includere un hash che includa il segreto del client nel corpo della richiesta. Per convalidare la conoscenza del segreto del client per le operazioni API nei seguenti elenchi, concatenare il segreto del client con l'ID del client dell'app e il nome dell'utente, quindi codificare in base64 tale stringa.

Quando l'app concede l'accesso agli utenti a un client con un hash segreto, puoi utilizzare il valore di qualsiasi attributo di accesso al pool di utenti come elemento nome utente dell'hash segreto. Quando l'app richiede nuovi token in un'operazione di autenticazione con `REFRESH_TOKEN_AUTH`, il valore dell'elemento nome utente dipende dagli attributi di accesso. Se il pool di utenti non ha `username` come attributo di accesso, imposta il valore hash segreto del valore nome utente della richiesta `sub` dell'utente dal token di accesso o token ID. Quando `username` è un attributo di accesso, imposta il valore hash segreto del nome utente dalla richiesta `username`.

I seguenti pool di utenti di Amazon Cognito APIs accettano un valore hash segreto del client in un parametro. `SecretHash`
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)

Inoltre, quanto segue APIs accetta un valore hash client-secret in un `SECRET_HASH` parametro, nei parametri di autenticazione o in una risposta alla sfida.


| Operazione API | Parametro principale per SECRET\$1HASH | 
| --- |--- |
| InitiateAuth | AuthParameters | 
| AdminInitiateAuth | AuthParameters | 
| RespondToAuthChallenge | ChallengeResponses | 
| AdminRespondToAuthChallenge | ChallengeResponses | 

Il valore hash del segreto è un codice di autenticazione dei messaggi mediante algoritmi hash con chiave (HMAC) codificato in Base64 e calcolato utilizzando la chiave segreta del client di un pool di utenti e nome utente, oltre all'ID client nel messaggio. Il seguente pseudocodice mostra come viene calcolato questo valore. In questo pseudocodice, `+` indica la concatenazione, `HMAC_SHA256` rappresenta una funzione che produce un valore HMAC utilizzando Hmac e `Base64` rappresenta una funzione che produce una versione con codifica Base-64 dell'SHA256output hash.

```
Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )
```

Per una panoramica dettagliata su come calcolare e utilizzare il `SecretHash` parametro, consulta [Come posso risolvere gli errori «Impossibile verificare l'hash segreto per il client» dall'API dei miei pool di utenti di Amazon Cognito](https://aws.amazon.com/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/)<client-id>? nel Knowledge Center. AWS 

Puoi utilizzare i seguenti esempi di codice nel codice dell'app lato server.

------
#### [ Shell ]

```
echo -n "[username][app client ID]" | openssl dgst -sha256 -hmac [app client secret] -binary | openssl enc -base64
```

------
#### [ Java ]

```
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
 
public static String calculateSecretHash(String userPoolClientId, String userPoolClientSecret, String userName) {
    final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
    
    SecretKeySpec signingKey = new SecretKeySpec(
            userPoolClientSecret.getBytes(StandardCharsets.UTF_8),
            HMAC_SHA256_ALGORITHM);
    try {
        Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
        mac.init(signingKey);
        mac.update(userName.getBytes(StandardCharsets.UTF_8));
        byte[] rawHmac = mac.doFinal(userPoolClientId.getBytes(StandardCharsets.UTF_8));
        return Base64.getEncoder().encodeToString(rawHmac);
    } catch (Exception e) {
        throw new RuntimeException("Error while calculating ");
    }
}
```

------
#### [ Python ]

```
import sys
import hmac, hashlib, base64 
username = sys.argv[1] 
app_client_id = sys.argv[2] 
key = sys.argv[3] 
message = bytes(sys.argv[1]+sys.argv[2],'utf-8') 
key = bytes(sys.argv[3],'utf-8') 
secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() 
print("SECRET HASH:",secret_hash)
```

------

## Conferma degli account utente senza la verifica dell'e-mail o del numero di telefono
<a name="confirming-user-without-verification-of-email-or-phone-number"></a>

Il trigger Lambda di pre-registrazione può essere utilizzato per confermare automaticamente gli account utente al momento della registrazione, senza richiedere un codice di conferma e verificare l'e-mail o il numero di telefono. Gli utenti che si confermano in questo modo possono effettuare l'accesso immediatamente senza la necessità di ricevere un codice.

Tramite questo trigger, puoi anche contrassegnare l'e-mail o il numero di telefono di un utente come verificati. 

**Nota**  
Sebbene questo approccio sia utile per gli utenti che stanno appena cominciando, ti consigliamo di auto verificare almeno l'e-mail o il numero di telefono. In caso contrario, può accadere che l'utente non sia in grado di recuperare la password nel caso la dimentichi.

Se non richiedi che l'utente riceva e inserisca un codice di conferma durante la registrazione e non si esegue la verifica automatica di indirizzo e-mail e numero di telefono nel trigger Lambda di pre-registrazione, rischi di non avere un indirizzo e-mail o un numero di telefono verificato per quell'account utente. L'utente può verificare l'indirizzo e-mail o il numero di telefono in un secondo momento. Tuttavia, se l'utente dimentica la password e non dispone di un indirizzo e-mail o di un numero di telefono verificato, rimane bloccato fuori dall'account, in quanto il flusso di password dimenticata richiede un indirizzo e-mail o un numero di telefono verificato per inviare all'utente un codice di verifica.

## Verifica in caso di modifica dell'e-mail o del numero di telefono da parte dell'utente
<a name="verifying-when-users-change-their-email-or-phone-number"></a>

Nei pool di utenti configurati con più nomi di accesso, gli utenti possono inserire un numero di telefono o un indirizzo e-mail come nome utente al momento dell'accesso. Quando aggiornano il loro indirizzo e-mail o il numero di telefono nella tua app, Amazon Cognito può inviare loro immediatamente un messaggio con un codice che verifica la loro proprietà del nuovo valore dell'attributo. Per abilitare l'invio automatico di questi codici di verifica, consulta. [Configurazione della verifica di e-mail o telefono](user-pool-settings-email-phone-verification.md)

Gli utenti che ricevono un codice di verifica devono fornire tale codice ad Amazon Cognito in una [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)richiesta. Dopo aver fornito il codice, il relativo attributo viene contrassegnato come verificato. In genere, quando gli utenti aggiornano l'indirizzo e-mail o il numero di telefono, è necessario verificare che siano proprietari del nuovo valore prima che possano utilizzarlo per accedere e ricevere messaggi. I pool di utenti dispongono di un'opzione configurabile che determina se gli utenti devono verificare gli aggiornamenti del proprio indirizzo e-mail o numero di telefono.

Questa opzione è la proprietà `AttributesRequireVerificationBeforeUpdate` del pool di utenti. Configuralo in una [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-UserAttributeUpdateSettings)richiesta [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-UserAttributeUpdateSettings)o o con l'impostazione **Mantieni attivo il valore dell'attributo originale quando un aggiornamento è in sospeso** nel menu di **registrazione** della console Amazon Cognito.

Il modo in cui il tuo pool di utenti tratta gli aggiornamenti degli indirizzi e-mail e dei numeri di telefono dipende dalla configurazione del nome utente del tuo pool di utenti. I nomi utente del pool di utenti possono essere in una configurazione di *attributi di nome utente* in cui i nomi di accesso sono indirizzo e-mail, numero di telefono o entrambi. Possono anche essere in una configurazione di *attributi di alias* in cui l'`username`attributo è un nome di accesso insieme all'indirizzo e-mail, al numero di telefono o al nome utente preferito come nomi di accesso alternativi. Per ulteriori informazioni, consulta [Personalizzazione degli attributi di accesso](user-pool-settings-attributes.md#user-pool-settings-aliases).

 Puoi anche utilizzare un trigger Lambda per messaggi personalizzati per personalizzare il messaggio di verifica. Per ulteriori informazioni, consulta [Trigger Lambda di messaggi personalizzati](user-pool-lambda-custom-message.md). Quando l'indirizzo e-mail o il numero di telefono di un utente non sono verificati, l'applicazione deve informare l'utente che deve verificare l'attributo e fornire un pulsante o un collegamento per consentire agli utenti di inserire il codice di verifica.

La tabella seguente descrive in che modo `AttributesRequireVerificationBeforeUpdate` le impostazioni degli alias determinano il risultato quando gli utenti modificano il valore dei propri attributi di accesso.


| Configurazione del nome utente | Comportamento quando gli utenti devono verificare nuovi attributi | Comportamento quando agli utenti non è richiesto di verificare nuovi attributi | 
| --- | --- | --- | 
| Attributi nome utente | L'attributo originale rimane verificato, idoneo per l'accesso e al valore originale. Quando l'utente verifica un nuovo valore, Amazon Cognito aggiorna il valore dell'attributo, lo contrassegna come verificato e lo rende idoneo per l'accesso. | Amazon Cognito aggiorna l'attributo a un nuovo valore. Il nuovo valore è idoneo per l'accesso. Quando l'utente verifica un nuovo valore, Amazon Cognito lo contrassegna come verificato. | 
| Attributi alias | L'attributo originale rimane verificato, idoneo per l'accesso e al valore originale. Quando l'utente verifica un nuovo valore, Amazon Cognito aggiorna il valore dell'attributo, lo contrassegna come verificato e lo rende idoneo per l'accesso. | Amazon Cognito aggiorna l'attributo a un nuovo valore. Né il valore originale né quello nuovo dell'attributo sono idonei per l'accesso. Quando l'utente verifica un nuovo valore, Amazon Cognito aggiorna il valore dell'attributo, lo contrassegna come verificato e lo rende idoneo per l'accesso. | 

**Esempio 1**  
L'utente 1 accede all'applicazione con l'indirizzo e-mail `user1@example.com` e dispone del nome utente `user1` (attributi alias). Il tuo pool di utenti è configurato per verificare gli aggiornamenti degli attributi di accesso e per inviare automaticamente messaggi di verifica. Richiedono di aggiornare il proprio indirizzo e-mail a`user1+foo@example.com`. Ricevono un'e-mail di verifica all'indirizzo `user1+foo@example.com` e *possono accedere nuovamente* solo con l'indirizzo e-mail`user1@example.com`. Successivamente, inseriscono il codice di verifica e possono accedere nuovamente solo con l'indirizzo e-mail`user1+foo@example.com`.

**Esempio 2**  
L'utente 2 accede all'applicazione con l'indirizzo e-mail `user2@example.com` e dispone di un nome utente (attributi alias). Il tuo pool di utenti è configurato per *non* verificare gli aggiornamenti degli attributi di accesso e per inviare automaticamente messaggi di verifica. Richiedono di aggiornare il proprio indirizzo e-mail a`user2+bar@example.com`. Ricevono un'email di verifica all'indirizzo `user2+bar@example.com` e *non possono accedere nuovamente*. Successivamente, inseriscono il codice di verifica e possono accedere nuovamente solo con l'indirizzo e-mail`user2+bar@example.com`.

**Esempio 3**  
L'utente 3 accede all'applicazione con l'indirizzo e-mail `user3@example.com` e non dispone di un nome utente (attributi del nome utente). Il tuo pool di utenti è configurato per *non* verificare gli aggiornamenti degli attributi di accesso e per inviare automaticamente messaggi di verifica. Richiedono di aggiornare il proprio indirizzo e-mail a`user3+baz@example.com`. Ricevono un'email di verifica all'indirizzo`user3+baz@example.com`, ma *possono accedere immediatamente* senza che venga intrapresa alcuna azione aggiuntiva con il codice di verifica.

## Processo di conferma e verifica degli account utente creati dagli amministratori o dagli sviluppatori
<a name="confirmation-and-verification-of-users-whose-accounts-youve-created"></a>

Gli account utente creati da un amministratore o da uno sviluppatore sono già in stato confermato, per cui agli utenti non viene richiesto di inserire un codice di conferma. Il messaggio di invito che il servizio Amazon Cognito invia a questi utenti include il nome utente e una password temporanea. L'utente deve modificare la password prima di effettuare l'accesso. Per ulteriori informazioni, consulta la [Personalizzare e-mail ed SMS](how-to-create-user-accounts.md#creating-a-new-user-customize-messages) di [Creazione di account utente come amministratore](how-to-create-user-accounts.md) e il trigger di messaggio personalizzato in [Personalizzazione di flussi di lavoro di bacini d'utenza con trigger Lambda](cognito-user-pools-working-with-lambda-triggers.md).

## Processi di conferma e verifica per gli account utente importati
<a name="confirmation-and-verification-of-users-whose-accounts-youve-imported"></a>

Gli account utente creati utilizzando la funzionalità di importazione degli utenti nella CLI o nell'API (vedi[Importazione di utenti nel bacino d'utenza da un file CSV](cognito-user-pools-using-import-tool.md)) sono già nello stato confermato, quindi agli utenti non è richiesto di inserire un codice di conferma. Console di gestione AWS Non viene inviato alcun messaggio di invito. Tuttavia, gli account utente importati prevedono che gli utenti richiedano prima un codice chiamando l'API `ForgotPassword` e che in seguito creino una password utilizzando il codice inviato chiamando l'API `ConfirmForgotPassword` prima di effettuare l'accesso. 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).

L'e-mail o il numero di telefono devono essere contrassegnati come verificati quando l'account utente viene importato, in modo che non venga richiesta la verifica quando l'utente effettua l'accesso.

## Invio di e-mail durante il test dell'App
<a name="managing-users-accounts-email-testing"></a>

Amazon Cognito invia agli utenti messaggi e-mail quando creano e gestiscono i propri account nell'app client per il pool di utenti. Se configuri il bacino d'utenza per richiedere la verifica e-mail, Amazon Cognito invia un'e-mail quando:
+ Un utente effettua la registrazione.
+ Un utente aggiorna il suo indirizzo e-mail.
+ Un utente esegue un'operazione che chiama l'operazione API `ForgotPassword`.
+ Crei un account utente come amministratore.

A seconda dell'azione che attiva l'e-mail, l'e-mail contiene un codice di verifica o una password temporanea. I tuoi utenti devono ricevere queste e-mail e comprendere il messaggio. In caso contrario, potrebbero non essere in grado di effettuare l'accesso e utilizzare la tua app.

Per essere che le e-mail vengano inviate senza problemi e che il messaggio sia corretto, prova le operazioni nella tua app attivando le consegne e-mail da Amazon Cognito. Ad esempio, utilizzando la pagina di registrazione nella tua app oppure utilizzando l'operazione API `SignUp`, puoi attivare un'e-mail effettuando la registrazione con un indirizzo e-mail di prova. Quando esegui il testing in questo modo, ricorda quanto segue:

**Importante**  
Quando utilizzi un indirizzo e-mail per testare le operazioni che attivano le e-mail da Amazon Cognito, non utilizzare un indirizzo e-mail fittizio (ossia, senza una casella di posta associata). Utilizza un indirizzo e-mail reale che riceverà l'e-mail da Amazon Cognito senza creare un *mancato recapito permanente*.  
Un mancato recapito permanente si verifica quando Amazon Cognito non è in grado di consegnare le e-mail alla casella di posta del destinatario, cosa che accade sempre se la casella di posta è inesistente.  
Amazon Cognito limita il numero di e-mail che possono essere inviate da AWS account che subiscono ripetutamente hard bounce.

Quando provi le operazioni che attivano le e-mail, utilizza uno dei seguenti indirizzi e-mail per evitare gli hard bounce:
+ Un indirizzo per un account e-mail di tua proprietà che utilizzi per il testing. Quando utilizzi il tuo indirizzo e-mail, riceverai un'e-mail inviata da Amazon Cognito. Con questa e-mail, puoi utilizzare il codice di verifica per testare l'esperienza di registrazione nella tua app. Se hai personalizzato il messaggio e-mail per il tuo bacino d'utenza, puoi controllare che le personalizzazioni siano corrette.
+ L'indirizzo del simulatore di mailbox, *success@simulator.amazonses.com*. Se utilizzi l'indirizzo del simulatore, Amazon Cognito invia correttamente l'e-mail ma non sarai in grado di visualizzarla. Questa opzione è utile quando non è necessario utilizzare il codice di verifica né verificare il messaggio e-mail.
+ L'indirizzo del simulatore di mailbox con un'etichetta arbitraria aggiuntiva, come *success\$1user1@simulator.amazonses.com* o *success\$1user2@simulator.amazonses.com*. Amazon Cognito invia correttamente e-mail a questi indirizzi ma non sarai in grado di visualizzarle. Questa opzione è utile quando si desidera testare il processo di registrazione aggiungendo più utenti di prova al bacino d'utenza e ogni utente di prova ha un indirizzo e-mail univoco.

# Configurazione della verifica di e-mail o telefono
<a name="user-pool-settings-email-phone-verification"></a>

Puoi scegliere le impostazioni per la verifica tramite e-mail o telefono nel menu **Metodi di autenticazione**. Per ulteriori informazioni sull'autenticazione a più fattori (Multi-Factor Authentication, MFA), consulta [MFA con SMS](user-pool-settings-mfa-sms-email-message.md).

Amazon Cognito utilizza Amazon SNS per inviare messaggi SMS. Se non hai mai inviato un messaggio SMS da Amazon Cognito o da altri in Servizio AWS precedenza, Amazon SNS potrebbe inserire il tuo account nella sandbox SMS. Ti consigliamo di inviare un messaggio di prova a un numero di telefono verificato prima di rimuovere il tuo account dalla sandbox e spostarlo alla produzione. Inoltre, se intendi inviare messaggi SMS a numeri di telefono di destinazione negli Stati Uniti, devi ottenere un ID mittente o di origine da Amazon Pinpoint. Per configurare il pool di utenti Amazon Cognito per i messaggi SMS, consulta [Impostazioni dei messaggi SMS per i bacini d'utenza di Amazon Cognito](user-pool-sms-settings.md).

Amazon Cognito è in grado di verificare automaticamente gli indirizzi e-mail e i numeri di telefono. Per effettuare questa verifica, Amazon Cognito invia un codice di verifica oppure un link di verifica. Per gli indirizzi e-mail, Amazon Cognito invia il codice o il link tramite un messaggio e-mail. Puoi scegliere un **tipo di **codice** o **link** di verifica** quando modifichi il modello di **messaggio di verifica** nel menu **Modelli di messaggio** nella console Amazon Cognito. Per ulteriori informazioni, consulta [Personalizzazione dei messaggi di verifica delle e-mail](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-email-verification-message-customization).

Per i numeri di telefono, Amazon Cognito invia il codice con un SMS.

Amazon Cognito deve verificare un numero di telefono o un indirizzo e-mail per confermare gli utenti e aiutarli a recuperare le password dimenticate. In alternativa, puoi confermare automaticamente gli utenti con il trigger Lambda di pre-registrazione o utilizzare [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)l'operazione API. Per ulteriori informazioni, consulta [Registrazione e conferma degli account utente](signing-up-users-in-your-app.md).

Il codice o link di verifica è valido 24 ore.

Se scegli di richiedere la verifica per un indirizzo e-mail o un numero di telefono, Amazon Cognito invia automaticamente il codice di verifica o il link quando un utente effettua la registrazione. Se il bacino d'utenza ha un [Trigger Lambda del mittente di SMS personalizzato](user-pool-lambda-custom-sms-sender.md) o [Trigger Lambda del mittente di e-mail personalizzato](user-pool-lambda-custom-email-sender.md) configurato, tale funzione viene invece richiamata.

**Note**  
L'utilizzo degli SMS per verificare i numeri di telefono viene addebitato separatamente da Amazon SNS. Per l'invio di messaggi e-mail, non viene addebitato alcun costo. Per le informazioni sui prezzi Amazon SNS, consulta la pagina [Prezzi Worldwide SMS](https://aws.amazon.com/sns/sms-pricing/). Per la lista dei paesi in cui è disponibile la messaggistica SMS, consulta la pagina [Supported regions and countries (regioni e paesi supportati)](https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html). 
Quando esegui il test delle operazioni nella tua app per la generazione di messaggi e-mail provenienti da Amazon Cognito, utilizza un indirizzo e-mail reale a cui Amazon Cognito può inviare messaggi senza incorrere in un mancato recapito permanente. Per ulteriori informazioni, consulta [Invio di e-mail durante il test dell'App](signing-up-users-in-your-app.md#managing-users-accounts-email-testing).
Il flusso della reimpostazione della password richiede l'indirizzo e-mail o il numero di telefono dell'utente per verificarne l'identità.

**Importante**  
Se un utente si registra sia con un numero di telefono sia con un indirizzo e-mail e le impostazioni del pool di utenti richiedono la verifica di entrambi gli attributi, Amazon Cognito invia un codice di verifica tramite SMS al numero di cellulare. Amazon Cognito non ha ancora verificato l'indirizzo e-mail, quindi l'app deve chiamare [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)per vedere se un indirizzo e-mail è in attesa di verifica. Se richiede una verifica, l'app deve chiamare [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html)per avviare il flusso di verifica dell'e-mail. Quindi deve inviare il codice di verifica [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)chiamando.

Puoi modificare la quota di spesa per i messaggi SMS per uno Account AWS e per singoli messaggi. I limiti si applicano solo al costo di invio di messaggi SMS. Per ulteriori informazioni, vedi **Cosa sono le quote di spesa a livello di account e di messaggio e come funzionano**? in [Amazon SNS FAQs](https://aws.amazon.com/sns/faqs/).

Amazon Cognito invia messaggi SMS utilizzando le risorse Amazon SNS nel luogo in cui è stato creato Regione AWS il pool di utenti o in una regione **alternativa legacy di Amazon SNS**, come indicato nella tabella seguente. L'eccezione è rappresentata dai bacini d'utenza Amazon Cognito nella regione Asia Pacifico (Seoul). Questi bacini d'utenza utilizzano la tua configurazione Amazon SNS nella regione Asia Pacifico (Tokyo). Per ulteriori informazioni, consulta [Scegli l'opzione Regione AWS per i messaggi SMS](user-pool-sms-settings.md#sms-choose-a-region).


| Regione di Amazon Cognito | Regione alternativa Amazon SNS legacy | 
| --- | --- | 
| Stati Uniti orientali (Ohio) | Stati Uniti orientali (Virginia settentrionale) | 
| Asia Pacifico (Mumbai) | Asia Pacifico (Singapore) | 
| Asia Pacifico (Seul) | Asia Pacifico (Tokyo) | 
| Canada (Centrale) | Stati Uniti orientali (Virginia settentrionale) | 
| Europa (Francoforte) | Europa (Irlanda) | 
| Europa (Londra) | Europa (Irlanda) | 

**Esempio: **se il tuo bacino d'utenza Amazon Cognito si trova in Asia Pacifico (Mumbai) e hai aumentato il tuo limite di spesa in ap-southeast-1, forse non ti conviene richiedere un aumento separato in ap-south-1. Piuttosto, puoi utilizzare le tue risorse Amazon SNS in Asia Pacifico (Singapore). 

## Verifica degli aggiornamenti a indirizzi e-mail e numeri di telefono
<a name="user-pool-settings-verifications-verify-attribute-updates"></a>

Un attributo di indirizzo e-mail o un numero di telefono può diventare attivo e non verificato subito dopo che l'utente ha modificato il relativo valore. Amazon Cognito può anche richiedere che l'utente verifichi il nuovo valore prima che Amazon Cognito aggiorni l'attributo. Quando è necessario che gli utenti verifichino innanzitutto il nuovo valore, possono utilizzare il valore originale per l'accesso e per ricevere messaggi fino a quando non verificheranno il nuovo valore.

Quando gli utenti possono utilizzare il proprio indirizzo e-mail o numero di telefono come alias di accesso nel pool di utenti, il nome di accesso per un attributo aggiornato dipende dall'eventuale richiesta di verifica degli attributi aggiornati. Quando si richiede che gli utenti verifichino un attributo aggiornato, un utente può accedere con il valore originale dell'attributo fino a quando non verifica il nuovo valore. Quando non si richiede che gli utenti verifichino un attributo aggiornato, un utente non può accedere o ricevere messaggi con il valore nuovo o originale fino a quando non verifica il nuovo valore. 

Ad esempio, il pool di utenti consente l'accesso con un alias di indirizzo e-mail e richiede che gli utenti verifichino il proprio indirizzo e-mail al momento dell'aggiornamento. Sue, che ha effettuato l'accesso come `sue@example.com`, vuole cambiare il suo indirizzo email in `sue2@example.com` ma per errore immette `ssue2@example.com`. Sue non riceve l'e-mail di verifica, quindi non può verificare `ssue2@example.com`. Sue accede come `sue@example.com` e invia nuovamente il modulo nell'app per aggiornare il suo indirizzo e-mail in `sue2@example.com`. Riceve il messaggio e-mail, fornisce il codice di verifica all'app e inizia ad accedere come `sue2@example.com`. 

**Quando un utente aggiorna un attributo e il pool di utenti verifica i nuovi valori degli attributi**
+ Possono accedere con il valore dell'attributo originale prima di aver confermato il codice per verificare il nuovo valore.
+ Possono accedere solo con il valore dell'attributo originale dopo aver confermato il codice per verificare il nuovo valore.
+ Se `phone_number_verified` imposti `email_verified` o `true` abiliti una richiesta [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, possono accedere prima di aver confermato il codice che Amazon Cognito gli ha inviato.

**Quando un utente aggiorna un attributo e il pool di utenti non verifica i nuovi valori degli attributi**
+ Non possono accedere né ricevere messaggi utilizzando il valore dell'attributo originale.
+ Non possono accedere né ricevere messaggi diversi da un codice di conferma utilizzando il nuovo valore dell'attributo prima di aver confermato il codice per verificare il nuovo valore.
+ Se `phone_number_verified` imposti `email_verified` o `true` abiliti una richiesta [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, possono accedere prima di aver confermato il codice che Amazon Cognito gli ha inviato.

## Richiedere la verifica dell'attributo quando gli utenti aggiornano l'indirizzo e-mail o numero di telefono


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

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

1. Nel **menu Registrazione**, scegli **Modifica** sotto **Verifica degli attributi e conferma dell'account utente**.

1. Scegli **Keep original attribute value active when an update is pending** (Mantieni attivo il valore dell'attributo originale quando un aggiornamento è in sospeso).

1. In **Active attribute values when an update is pending** (Valori di attributo attivi quando un aggiornamento è in sospeso), scegli gli attributi che gli utenti devono di verificare prima che Amazon Cognito aggiorni il valore.

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

Per richiedere la verifica dell'aggiornamento degli attributi con l'API Amazon Cognito, puoi impostare il `AttributesRequireVerificationBeforeUpdate` parametro in una [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)richiesta.

## Autorizzazione di Amazon Cognito a inviare SMS per tuo conto
<a name="user-pool-settings-verifications-iam-role-for-sms"></a>

Per poter inviare SMS agli utenti per tuo conto, Amazon Cognito ha bisogno della tua autorizzazione. Per concedere tale autorizzazione, puoi creare un ruolo AWS Identity and Access Management (IAM). Nel menu **Metodi di autenticazione** della console Amazon Cognito in SMS, scegli **Modifica** per impostare un ruolo.

# Configurazione MFA, autenticazione, verifica e messaggi di invito
<a name="cognito-user-pool-settings-message-customizations"></a>

Con Amazon Cognito, puoi personalizzare l'autenticazione, la verifica e i messaggi di invito degli utenti tramite SMS ed e-mail per migliorare la sicurezza e l'esperienza utente della tua applicazione. Per alcuni messaggi puoi scegliere tra verifiche basate su codice e verifiche dei link con un clic. Questo argomento spiega come personalizzare le comunicazioni di autenticazione e verifica nella console Amazon Cognito. 

Nel menu **Modelli di messaggi**, puoi personalizzare:
+ I tuoi modelli di messaggi di posta elettronica e SMS per l'autenticazione con password monouso (OTP) e a più fattori (MFA)
+ I messaggi di verifica degli SMS e delle e-mail
+ Il tipo di verifica dell'e-mail, ovvero codice o link
**Nota**  
Amazon Cognito invia link con il tuo modello basato su link nei messaggi di verifica quando gli utenti si iscrivono o inviano nuovamente un codice di conferma. Le e-mail relative alle operazioni di aggiornamento degli attributi e di reimpostazione della password utilizzano il modello di codice.
+ I messaggi di invito degli utenti
+ Gli indirizzi e-mail FROM e REPLY-TO delle e-mail del bacino d'utenza

**Nota**  
I modelli di messaggi di verifica via SMS ed e-mail vengono visualizzati solo se hai scelto di richiedere la verifica del numero di telefono e dell'e-mail. Analogamente, il modello di messaggio MFA SMS viene visualizzato solo se le impostazioni MFA sono **obbligatorie** o **facoltative**.

**Topics**
+ [Modelli dei messaggi](#cognito-user-pool-settings-message-templates)
+ [Personalizzazione dei messaggi MFA per e-mail e SMS](#cognito-user-pool-settings-SMS-message-customization)
+ [Personalizzazione dei messaggi di verifica delle e-mail](#cognito-user-pool-settings-email-verification-message-customization)
+ [Personalizzazione dei messaggi di invito degli utenti](#cognito-user-pool-settings-user-invitation-message-customization)
+ [Personalizzazione dell'indirizzo e-mail](#cognito-user-pool-settings-email-address-customization)
+ [Autorizzazione di Amazon Cognito a inviare e-mail di Amazon SES per tuo conto (da un indirizzo e-mail FROM personalizzato)](#cognito-user-pool-settings-ses-authorization-to-send-email)

## Modelli dei messaggi
<a name="cognito-user-pool-settings-message-templates"></a>

Puoi utilizzare i modelli di messaggio per inserire segnaposti nei tuoi messaggi. Amazon Cognito sostituisce i segnaposto con i valori corrispondenti. Puoi fare riferimento ai *segnaposto Universal Template* nei modelli di messaggio di qualsiasi tipo, anche se questi valori non saranno presenti in tutti i tipi di messaggio.


**Segnaposto universali modello**  

|  Description  |  Token  | Tipo di messaggio | 
| --- | --- | --- | 
| Codice di verifica | \$1\$1\$1\$1\$1\$1 | Messaggi di verifica, conferma e MFA | 
| Password temporanea | \$1\$1\$1\$1\$1\$1 | Password dimenticata e messaggi di invito | 
| Nome utente | \$1username\$1 | Invito e messaggi di sicurezza avanzati | 

Una delle risposte automatiche disponibili con [protezione dalle minacce](cognito-user-pool-settings-threat-protection.md) consiste nel notificare all'utente che Amazon Cognito ha rilevato attività potenzialmente dannose. Puoi utilizzare i segnaposti dei modelli di sicurezza avanzata per:
+ Includere dettagli specifici su un evento come l'indirizzo IP, la città, il paese, l'ora di accesso e il nome del dispositivo. La protezione dalle minacce di Amazon Cognito può analizzare questi dettagli.
+ Verificare se un link con un clic è valido.
+ Usare l'ID dell'evento, il token di feedback e il nome utente per costruire il tuo link con un solo clic.

**Nota**  
Per generare link con un clic e utilizzare i segnaposti `{one-click-link-valid}` e `{one-click-link-invalid}` nei modelli di e-mail di sicurezza avanzati, devi disporre già di un dominio configurato per il pool di utenti.

La protezione dalle minacce aggiunge i seguenti segnaposti che puoi inserire nei modelli di messaggio. Questi segnaposto si applicano ai **messaggi di autenticazione adattiva**, notifiche che Amazon Cognito invia agli utenti le cui sessioni sono state valutate per un livello di rischio. Per configurare i modelli di messaggio con queste variabili, aggiorna la **configurazione completa** della protezione dalle minacce nella console Amazon Cognito o invia i modelli in [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)una richiesta.


**Segnaposti dei modelli di sicurezza avanzata**  

|  Description  |  Token  | 
| --- | --- | 
| IP address (Indirizzo IP) | \$1ip-address\$1 | 
| City | \$1city\$1 | 
| Paese | \$1country\$1 | 
| Orario di accesso | \$1login-time\$1 | 
| Nome dispositivo | \$1device-name\$1 | 
| Il link con un clic è valido | \$1one-click-link-valid\$1 | 
| Il link con un clic non è valido | \$1one-click-link-invalid\$1 | 
| ID evento | \$1event-id\$1 | 
| Token del feedback | \$1feedback-token\$1 | 

## Personalizzazione dei messaggi MFA per e-mail e SMS
<a name="cognito-user-pool-settings-SMS-message-customization"></a>

Per personalizzare gli SMS e i messaggi e-mail per [l'autenticazione a più fattori (MFA](user-pool-settings-mfa.md)), modifica il messaggio **MFA** dal menu Modelli di messaggi **nella console dei pool** di utenti di Amazon Cognito.

**Importante**  
Il tuo messaggio personalizzato deve contenere il segnaposto `{####}`. Questo segnaposto verrà sostituito con il codice di autenticazione al momento dell'invio del messaggio.

Amazon Cognito imposta una lunghezza massima per i messaggi SMS, incluso il codice di autenticazione, di 140 caratteri UTF-8.

### Personalizzazione dei messaggi di verifica degli SMS
<a name="cognito-user-pool-settings-SMS-verification-message-customization"></a>

Per personalizzare il messaggio SMS per la verifica del numero di telefono, modifica il modello di **messaggio di verifica** dal menu **Modelli di messaggi** del tuo pool di utenti.

**Importante**  
Il tuo messaggio personalizzato deve contenere il segnaposto `{####}`. Questo segnaposto verrà sostituito con il codice di verifica al momento dell'invio del messaggio.

La lunghezza massima per il messaggio è pari a 140 caratteri UTF-8, incluso il codice di verifica.

## Personalizzazione dei messaggi di verifica delle e-mail
<a name="cognito-user-pool-settings-email-verification-message-customization"></a>

Per verificare l'indirizzo e-mail di un utente nel bacino d'utenza con Amazon Cognito, puoi inviare all'utente un messaggio e-mail con un link selezionabile, oppure un codice da inserire.

Per personalizzare l'oggetto e il contenuto del messaggio per i messaggi di verifica dell'indirizzo e-mail, modifica il modello di **messaggio di verifica** nel menu **Modelli di messaggio** del tuo pool di utenti. Puoi scegliere un **Tipo di verifica** di **Codice** o **Collegamento** quando modifichi il modello **Messaggi di verifica**.

Quando scegli **Codice** come tipo di verifica, il messaggio personalizzato deve contenere il segnaposto `{####}`. Quando invii il messaggio, il segnaposto viene sostituito con il codice di verifica.

Quando scegli **Collegamento** come tipo di verifica, il messaggio personalizzato deve includere un segnaposto nel formato `{##Verify Your Email##}`. Puoi modificare la stringa di testo tra i caratteri segnaposto, ad esempio `{##Click here##}`. Il segnaposto viene sostituito da un link di verifica con il testo *Verifica il tuo indirizzo e-mail*.

Il link per un messaggio di verifica e-mail indirizza l'utente a un URL come nell'esempio seguente.

```
https://<your user pool domain>/confirmUser/?client_id=abcdefg12345678&user_name=emailtest&confirmation_code=123456
```

La lunghezza massima per il messaggio è pari a 20.000 caratteri UTF-8, incluso il codice di verifica (se presente). È possibile utilizzare i tag HTML in questo messaggio per formattare i contenuti.

## Personalizzazione dei messaggi di invito degli utenti
<a name="cognito-user-pool-settings-user-invitation-message-customization"></a>

Puoi personalizzare il messaggio di invito utente che Amazon Cognito invia ai nuovi utenti tramite SMS o messaggio e-mail modificando il modello **Messaggi di invito** nel menu **Modelli di messaggio**.

**Importante**  
Il tuo messaggio personalizzato deve contenere i segnaposti `{username}` e `{####}`. Quando Amazon Cognito invia il messaggio di invito, sostituisce questi segnaposti con il nome utente e la password dell'utente.

La lunghezza massima di un messaggio SMS è pari a 140 caratteri UTF-8, incluso il codice di verifica. La lunghezza massima di un messaggio e-mail è pari a 20.000 caratteri UTF-8, incluso il codice di verifica. È possibile utilizzare tag HTML nei messaggi e-mail per formattare il contenuto.

## Personalizzazione dell'indirizzo e-mail
<a name="cognito-user-pool-settings-email-address-customization"></a>

Per impostazione predefinita, i messaggi e-mail che Amazon Cognito invia agli utenti nel bacino d'utenza provengono dall'indirizzo **no-reply@verificationemail.com**. Puoi specificare indirizzi e-mail personalizzati FROM e REPLY-TO da usare al posto di **no-reply@verificationemail.com**.

**Per personalizzare gli indirizzi e-mail del mittente (FROM) e del destinatario (REPLY-TO)**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home) e scegli **bacini d'utenza**.

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 **Metodi di autenticazione**. Alla voce **E-mail**, scegli **Modifica**.

1. Scegli una **Regione SES**.

1. Scegli un **indirizzo e-mail FROM** dall'elenco degli indirizzi e-mail verificati con Amazon SES nella **Regione SES** selezionata. Per utilizzare un indirizzo e-mail proveniente da un dominio verificato, configura le impostazioni e-mail nell' AWS API AWS Command Line Interface o. Per ulteriori informazioni, consulta [Verifica indirizzi e-mail e domini in Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) nella *Guida per gli sviluppatori di Amazon SES*.

1. Scegli un **Set di configurazione** dall'elenco dei set di configurazione nella **Regione SES** selezionata.

1. Inserisci un **nome mittente FROM** cordiale per i tuoi messaggi e-mail nel formato `John Stiles <johnstiles@example.com>`.

1. Per personalizzare l'indirizzo e-mail del destinatario, inserisci un indirizzo e-mail valido nel campo **Indirizzo e-mail destinatario**.

## Autorizzazione di Amazon Cognito a inviare e-mail di Amazon SES per tuo conto (da un indirizzo e-mail FROM personalizzato)
<a name="cognito-user-pool-settings-ses-authorization-to-send-email"></a>

Puoi configurare Amazon Cognito per inviare e-mail da un indirizzo e-mail FROM personalizzato anziché dal relativo indirizzo predefinito. Per utilizzare un indirizzo personalizzato, devi concedere ad Amazon Cognito l'autorizzazione ad inviare un messaggio e-mail da un'identità verificata di Amazon SES. Nella maggior parte dei casi, per concedere tale autorizzazione crea una policy di autorizzazione all'invio. Per ulteriori informazioni, consulta [Utilizzo dell'autorizzazione di invio con Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html) nella *Guida per gli sviluppatori di Amazon Simple Email Service*. 

Quando configuri un bacino d'utenza per utilizzare Amazon SES per i messaggi e-mail, Amazon Cognito crea il ruolo `AWSServiceRoleForAmazonCognitoIdpEmailService` nel tuo account per concedere l'accesso ad Amazon SES. Non è necessario alcuna policy di autorizzazione per l'invio quando viene utilizzato il `AWSServiceRoleForAmazonCognitoIdpEmailService` ruolo collegato ai servizi. È necessario aggiungere una policy di autorizzazione per l'invio solo quando si utilizzano entrambe le funzionalità e-mail predefinite nel bacino d'utenza *e* un'identità Amazon SES verificata come indirizzo FROM.

Per ulteriori informazioni sul ruolo collegato al servizio creato da Amazon Cognito, consulta [Utilizzo di ruoli collegati ai servizi per Amazon Cognito](using-service-linked-roles.md).

L'esempio seguente di policy di autorizzazione di invio garantisce ad Amazon Cognito la possibilità limitata di utilizzare un'identità verificata di Amazon SES. Amazon Cognito può inviare e-mail solo quando lo fa per conto sia del bacino d'utenza nella condizione `aws:SourceArn` sia dell'account nella condizione `aws:SourceAccount`. Per altri esempi, consulta [Esempi di policy di autorizzazione di invio di Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html) nella *Guida per gli sviluppatori di Amazon Simple Email Service*.

**Nota**  
In questo esempio, il valore "Sid" è una stringa arbitraria che identifica in modo univoco l'istruzione. Per ulteriori informazioni sulla sintassi della policy, consulta [Policy di autorizzazione di invio di Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html) nella *Guida per gli sviluppatori di Amazon Simple Email Service*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "stmnt1234567891234",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "email.cognito-idp.amazonaws.com"
                ]
            },
            "Action": [
                "SES:SendEmail",
                "SES:SendRawEmail"
            ],
            "Resource": "arn:aws:ses:us-east-1:111122223333:identity/support@example.com",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
                }
            }
        }
    ]
}
```

------

La console Amazon Cognito aggiunge una policy del genere quando viene selezionata un'identità Amazon SES dal menu a discesa. Se utilizzi la CLI o l'API per configurare il bacino d'utenza, è necessario allegare una policy strutturata in modo simile all'esempio precedente alla tua identità di Amazon SES.

# Creazione di account utente come amministratore
<a name="how-to-create-user-accounts"></a>

I pool di utenti non sono solo un elenco di utenti per la gestione delle identità e degli accessi dei clienti (CIAM), in cui chiunque su Internet può registrarsi per creare un profilo utente nell'applicazione. Puoi disabilitare l'iscrizione in modalità self-service. Potresti già conoscere i tuoi clienti e voler ammettere solo quelli che sono stati autorizzati in anticipo. Puoi creare barriere di autenticazione manuale intorno alla tua applicazione con un [provider di identità SAML 2.0 o OIDC privato](cognito-user-pools-identity-federation.md), [importando gli utenti, selezionando gli utenti](cognito-user-pools-import-users.md) [al momento dell'iscrizione o creando utenti](user-pool-lambda-pre-sign-up.md) con operazioni amministrative sull'API. Il flusso di lavoro per la creazione amministrativa degli utenti può essere programmatico, ossia il provisioning degli utenti dopo la registrazione in un case-by-case altro sistema, oppure può essere basato su test nella console Amazon Cognito.

Quando crei utenti come amministratore, Amazon Cognito imposta una password temporanea per loro e invia un messaggio di benvenuto o di invito. Possono seguire il link nel messaggio di invito e accedere per la prima volta, impostare una password e confermare il proprio account. La pagina che segue descrive come creare nuovi utenti e configurare il messaggio di benvenuto. Per ulteriori informazioni sulla creazione di utenti con l'API dei pool di utenti e un AWS SDK o CDK, consulta. [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)

Dopo aver creato il pool di utenti, puoi creare utenti utilizzando l'API Console di gestione AWS Amazon Cognito AWS Command Line Interface o l'API Amazon Cognito. Puoi creare il profilo di un nuovo utente in un bacino d'utenza e inviargli un messaggio di benvenuto con le istruzioni di registrazione tramite SMS o e-mail.

Di seguito sono riportati alcuni esempi di come gli amministratori possono gestire gli utenti nei pool di utenti.
+ Crea un nuovo profilo utente nella console Amazon Cognito o con il funzionamento dell'`AdminCreateUser`API.
+  username-and-passwordRendi disponibili i [flussi di autenticazione](amazon-cognito-user-pools-authentication-flow-methods.md) personalizzati, senza password e con chiave di accesso per il tuo pool di utenti e il client dell'app.
+ Impostazione dei valori degli attributi utente.
+ Creazione di attributi personalizzati.
+ Imposta il valore degli attributi [personalizzati](user-pool-settings-attributes.md#user-pool-settings-custom-attributes) immutabili nelle richieste API. `AdminCreateUser` Questa funzionalità non è disponibile nella console Amazon Cognito.
+ Specificate una password temporanea, create un utente senza password o consentite ad Amazon Cognito di generare automaticamente una password.
+ Crea nuovi utenti e conferma automaticamente i loro account, verifica i loro indirizzi e-mail o verifica i loro numeri di telefono.
+ [Specificate SMS e messaggi di invito e-mail personalizzati per i nuovi utenti tramite i trigger Console di gestione AWS o Lambda come [messaggio personalizzato](user-pool-lambda-custom-message.md), [mittente SMS personalizzato e mittente](user-pool-lambda-custom-sms-sender.md) e-mail personalizzato.](user-pool-lambda-custom-email-sender.md)
+ Specificare se i messaggi di invito vengono inviati tramite SMS, e-mail, o entrambi.
+ Inviare nuovamente il messaggio di benvenuto a un utente esistente chiamando l'API `AdminCreateUser`, specificando `RESEND` per il parametro `MessageAction`.
+ [Sopprimi](#admincreateuserwalkthrough-step-invitationmessage) l'invio del messaggio di invito quando l'utente viene creato.
+ Specificate un limite di scadenza fino a 90 giorni per i nuovi account utente.
+ Consentire agli utenti di registrarsi o richiedere che i nuovi utenti vengano aggiunti solo dall'amministratore.

Gli amministratori possono inoltre accedere agli utenti con AWS credenziali in un'applicazione lato server. Per ulteriori informazioni, consulta [Modelli di autorizzazione per l'autenticazione tramite API e SDK](authentication-flows-public-server-side.md).

## Flussi di autenticazione degli utenti e creazione di utenti
<a name="how-to-create-user-accounts-flows"></a>

La creazione amministrativa degli utenti presenta opzioni che differiscono in base alla configurazione del pool di utenti. I *flussi di autenticazione*, o metodi disponibili per gli utenti per l'accesso e l'MFA, possono modificare il modo in cui crei gli utenti e i messaggi che invii loro. Di seguito sono riportati alcuni flussi di autenticazione disponibili nei pool di utenti.
+ Nome utente e password
+ Passkey
+ Accedi con terze parti IdPs
+ Senza password con password monouso per e-mail e SMS () OTPs
+ Autenticazione a più fattori con e-mail, SMS e app di autenticazione OTPs
+ Autenticazione personalizzata con trigger Lambda

Per ulteriori informazioni su come configurare questi fattori di accesso, consulta. [Autenticazione con pool di utenti Amazon Cognito](authentication.md)

## Creare utenti senza password
<a name="how-to-create-user-accounts-thingstoknow-passwordless"></a>

Se hai abilitato l'accesso senza password per il tuo pool di utenti, puoi creare utenti senza password. Per creare un utente senza password, è necessario fornire i valori degli attributi per un fattore di accesso senza password disponibile. Ad esempio, se nel tuo pool di utenti è disponibile l'accesso OTP senza password tramite e-mail, puoi creare un utente senza password e senza un attributo di indirizzo e-mail. Se gli unici flussi di autenticazione disponibili per i nuovi utenti richiedono una password, ad esempio passkey o username-password, è necessario creare o generare una password temporanea per ogni nuovo utente.

**Per creare un nuovo utente senza password**
+ Scegli **Non impostare una password** nella console Amazon Cognito
+ Ometti o lascia vuoto il `TemporaryPassword` parametro della tua richiesta API `AdminCreateUser`

**Gli utenti senza password vengono confermati automaticamente**  
Normalmente i nuovi utenti ricevono una password temporanea e entrano in uno `FORCE_CHANGE_PASSWORD` stato al momento della creazione. Quando si creano utenti senza password, questi entrano immediatamente in uno `CONFIRMED` stato. Non puoi inviare nuovamente i codici di conferma a questi utenti nello `CONFIRMED` stato.

**I messaggi di invito cambiano per gli utenti senza password.**  
Per impostazione predefinita, Amazon Cognito invia un [messaggio di invito](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-user-invitation-message-customization) ai nuovi utenti con il seguente messaggio: `Your username is {userName} and your password is {####}.` Quando crei utenti senza password, il messaggio riporta `Your username is {userName}.` Personalizza il tuo messaggio di invito per indicare se intendi impostare le password per gli utenti. Ometti la variabile `{####}` password nei modelli di autenticazione senza password.

**Non è possibile generare automaticamente le password quando sono disponibili fattori privi di password**  
Se hai configurato il tuo pool di utenti per supportare l'accesso senza password OTP tramite e-mail o telefono, non puoi generare automaticamente una password. Per ogni utente che disporrà di una password, è necessario impostare una password temporanea al momento della creazione del profilo.

**Gli utenti senza password devono avere valori per tutti gli attributi obbligatori**  
Quando crei un utente *senza* password, la tua richiesta ha esito positivo solo se l'utente fornisce valori per tutti gli attributi che hai contrassegnato come obbligatori nel tuo pool di utenti. Ciò si applica a qualsiasi attributo obbligatorio, non solo al numero di telefono e agli attributi e-mail richiesti per la consegna OTP.

## Creazione di utenti che forniranno successivamente i valori degli attributi obbligatori
<a name="how-to-create-user-accounts-thingstoknow-password-restrictions"></a>

Potresti voler richiedere gli attributi nel tuo pool di utenti, ma raccoglierli dopo aver creato gli utenti a livello amministrativo, durante l'interazione dell'utente nell'applicazione. Gli amministratori possono omettere i valori per gli attributi obbligatori quando creano utenti *con* password temporanee. Non è possibile omettere i valori degli attributi obbligatori per gli utenti senza password.

[Gli utenti con valori mancanti per gli attributi obbligatori e una password temporanea ricevono una sfida NEW\$1PASSWORD\$1REQUIRED al primo accesso.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeResponses) Possono quindi fornire un valore per gli attributi obbligatori mancanti nel parametro. `requiredAttributes` È possibile creare utenti con password e senza attributi obbligatori solo se tutti gli attributi obbligatori sono [modificabili](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Gli utenti possono completare l'accesso con `NEW_PASSWORD_REQUIRED` sfide e valori degli attributi obbligatori solo se gli attributi richiesti sono [scrivibili](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-about) dal client dell'app con cui accedono.

*Quando imposti una password permanente per un utente creato dall'amministratore, il suo stato cambia `CONFIRMED` e il pool di utenti non richiede loro una nuova password o gli attributi obbligatori al primo accesso.*

## Creazione di un nuovo utente in Console di gestione AWS
<a name="creating-a-new-user-using-the-console"></a>

Puoi impostare i requisiti della password utente, configurare i messaggi di invito e verifica inviati agli utenti e aggiungere nuovi utenti con la console Amazon Cognito.

### Impostare una policy per le password e abilitare l'auto-registrazione
<a name="set-user-password-policy"></a>

Puoi configurare le impostazioni per ridurre al minimo la complessità della password e stabilire se gli utenti possono registrarsi utilizzando public APIs nel tuo pool di utenti.

**Configurare una policy per le password**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home) e scegli **bacini d'utenza**.

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 **Metodi di autenticazione** e individua **la politica delle password**. Scegli **Modifica**.

1. Impostare la **Password policy mode (modalità di policy per le password)** su **Custom (personalizzata)**.

1. Scegli una **lunghezza minima della password**. Per i limiti al requisito di lunghezza della password, consulta [User pools resource quotas (Quote di risorse del pool di utenti)](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#limits-hard).

1. Scegli un requisito di **Password complexity (complessità delle password)**.

1. Scegli la durata della validità della password impostata dagli amministratori.

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

**Consenti l'iscrizione self-service**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home) e scegli **bacini d'utenza**.

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 **registrazione e individua l'iscrizione** in modalità **self-service**. Seleziona **Edit (Modifica)**.

1. Decidi se scegliere l'opzione **Abilita l'auto-registrazione**. L'autoregistrazione viene in genere utilizzata con client di app pubbliche che devono registrare nuovi utenti nel pool di utenti senza distribuire un client secret o credenziali API AWS Identity and Access Management (IAM).
**Disattivare dell'auto-registrazione**  
Se non abiliti l'auto-registrazione, i nuovi utenti devono essere creati mediante operazioni API amministrative utilizzando le credenziali API IAM o tramite accesso con i provider federati.

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

### Personalizzare e-mail ed SMS
<a name="creating-a-new-user-customize-messages"></a>

**Personalizzare i messaggi utente**

Puoi personalizzare i messaggi inviati da Amazon Cognito ai tuoi utenti che ricevono un invito ad accedere, si registrano per un account utente o a cui viene richiesta l'autenticazione a più fattori (MFA) all'accesso.
**Nota**  
Viene inviato un **Invitation message (messaggio di invito)** quando crei un utente nel bacino d'utenza e lo inviti a effettuare l'accesso. Amazon Cognito invia le informazioni di accesso iniziali all'indirizzo e-mail o al numero di telefono dell'utente.  
Quando un utente effettua la registrazione per un account utente nel bacino d'utenza, viene inviato un **messaggio di verifica**. Amazon Cognito invia un codice all'utente. Quando l'utente fornisce il codice ad Amazon Cognito, verifica le informazioni di contatto e conferma il proprio account per l'accesso. I codici di verifica sono validi 24 ore.  
Quando si abilita la MFA via SMS nel bacino d'utenza e un utente che ha configurato la MFA via SMS accede e gli viene richiesto di effettuare la MFA, viene inviato un **Messaggio MFA**.

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home) e scegli **bacini d'utenza**.

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 **Modelli di messaggio** e seleziona **Messaggio di verifica**, **Messaggio di invito** o **Messaggio MFA** e scegli Modifica.**

1. Personalizza i messaggi per il tipo di messaggio scelto.
**Nota**  
Tutte le variabili nei modelli di messaggio devono essere incluse quando si personalizza il messaggio. Se la variabile, ad esempio **\$1\$1\$1\$1\$1\$1**, non è inclusa, l'utente avrà informazioni insufficienti per completare l'azione del messaggio.  
Per ulteriori informazioni, vedi [Message templates (modelli di messaggi)](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html).

1. 

   1. **Verification messages (Messaggi di verifica)**

      1. Scegli un **Verification type (tipo di verifica)** per le **e-mail**. Un **Code (codice)** di verifica invia un codice numerico che l'utente dovrà inserire. Un **Link** di verifica invia un link su cui l'utente può fare clic per verificare le informazioni di contatto. Il testo nella variabile per un messaggio **Link** viene visualizzato come testo del collegamento ipertestuale. Ad esempio, viene visualizzato un modello di messaggio che utilizza la variabile \$1\$1\$1Click here\$1\$1\$1 [Click here (clicca qui)]() nel testo dell'e-mail.

      1. Specificare un **Email subject (oggetto dell'e-mail)** per i messaggi via **e-mail**.

      1. Inserisci un modello di **e-mail** personalizzato per i messaggi via **e-mail**. È possibile personalizzare questo modello in formato HTML.

      1. Inserisci un modello personalizzato di **SMS** per i messaggi **SMS**.

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

   1. **Invitation messages (Messaggi di invito)**

      1. Specificare un **Email subject (oggetto dell'e-mail)** per i messaggi via **e-mail**.

      1. Inserisci un modello di **e-mail** personalizzato per i messaggi via **e-mail**. È possibile personalizzare questo modello in formato HTML.

      1. Inserisci un modello personalizzato di **SMS** per i messaggi **SMS**.

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

   1. **MFA messages (Messaggi MFA)**

      1. Inserisci un modello personalizzato di **SMS** per i messaggi **SMS**.

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

### Creazione di un utente
<a name="creating-a-new-user-using-the-users-tab"></a>

**Creazione di un utente**

Puoi creare nuovi utenti per il tuo bacino d'utenza dalla console Amazon Cognito. In genere, gli utenti possono accedere dopo aver impostato una password. Per effettuare l'accesso con un indirizzo e-mail l'utente deve verificare l'attributo `email`. Per accedere con un numero di telefono, l'utente deve verificare l'attributo `phone_number`. Per confermare gli account come amministratore, puoi anche utilizzare l'API AWS CLI o o creare profili utente con un provider di identità federato. Per ulteriori informazioni, consulta la documentazione di [riferimento dell'API di Amazon Cognito](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/).

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home) e scegli **bacini d'utenza**.

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 **Utenti** e scegli **Crea un utente**.

1. Esamina i **User pool sign-in and security requirements (Requisiti di accesso e sicurezza del bacino d'utenza)** per informazioni sui requisiti delle password, sui metodi di recupero dell'account disponibili e sugli attributi alias per il bacino d'utenza.

1. <a name="admincreateuserwalkthrough-step-invitationmessage"></a>Scegli come desideri inviare l'**Invitation message** (Messaggio d'invito). Puoi scegliere messaggio SMS, messaggio e-mail o entrambi. Per eliminare il messaggio di invito, scegli **Non inviare un invito**.
**Nota**  
Prima di poter inviare messaggi di invito, configura un mittente e un messaggio Regione AWS con Amazon Simple Notification Service e Amazon Simple Email Service nel menu **Metodi di autenticazione** del tuo pool di utenti. Messaggi e velocità dati del destinatario. Amazon SES fattura separatamente i messaggi e-mail e Amazon SNS fattura separatamente i messaggi SMS.

1. Scegli uno **Username (nome utente)** per il nuovo utente.

1. Scegli se selezionare **Create a password (Crea una password)** o se vuoi che Amazon Cognito esegua l'operazione **Generate a password (Genera una password)** per l'utente. L'opzione per generare una password non è disponibile se nel pool di utenti è disponibile [l'accesso senza password](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless). Qualsiasi password temporanea deve rispettare i criteri delle password del bacino d'utenza.

1. Scegli **Create** (Crea).

1. Scegli il menu **Utenti** e scegli la voce **Nome utente** per l'utente. Aggiungi e modifica **User attributes** (Attributi utente) e **Group memberships** (Appartenenze a gruppi). Esamina **User event history (Cronologia eventi dell'utente)**.

# Aggiunta di gruppi a un bacino d'utenza
<a name="cognito-user-pools-user-groups"></a>

Il supporto per i gruppi nei bacini d'utenza di Amazon Cognito ti permette di creare e gestire gruppi e di aggiungere e rimuovere gli utenti dai gruppi. Utilizza i gruppi per creare raccolte di utenti e gestire le loro autorizzazioni o rappresentare diversi tipi di utenti. Puoi assegnare un ruolo AWS Identity and Access Management (IAM) a un gruppo per definire le autorizzazioni per i membri di un gruppo.

Puoi utilizzare i gruppi per creare una raccolta di utenti in un bacino d'utenza, operazione che spesso viene svolta per impostare le autorizzazioni di tali utenti. Ad esempio, è possibile creare gruppi separati per utenti che siano lettori, collaboratori e revisori del tuo sito Web e della tua app. Utilizzando il ruolo IAM associato a un gruppo, puoi impostare anche autorizzazioni diverse per questi diversi gruppi, in modo che solo i collaboratori possano inserire dei contenuti in Amazon S3 e solo gli editor possano pubblicare dei contenuti tramite un'API in Amazon API Gateway.

Amazon Cognito crea un gruppo di utenti per ogni OIDC e [provider di identità sociale (](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation-how-it-works)IdP) che aggiungi al tuo pool di utenti. SAMl Il nome del gruppo è nel formato`[user pool ID]_[IdP name]`, ad esempio o. `us-east-1_EXAMPLE_MYSSO` `us-east-1_EXAMPLE_Google` Ogni profilo utente IdP univoco generato automaticamente viene aggiunto automaticamente a questo gruppo. [Gli utenti collegati](cognito-user-pools-identity-federation-consolidate-users.md) non vengono aggiunti automaticamente a questo gruppo, ma puoi aggiungere i loro profili al gruppo con un processo separato.

È possibile creare e gestire gruppi in un pool di utenti dalla Console di gestione AWS APIs, dalla e dalla CLI. In qualità di sviluppatore (utilizzando AWS le credenziali), puoi creare, leggere, aggiornare, eliminare ed elencare i gruppi per un pool di utenti. Puoi inoltre aggiungere e rimuovere gli utenti dai gruppi.

Non sono previsti costi aggiuntivi per l'utilizzo di gruppi all'interno di un bacino d'utenza. Per ulteriori informazioni, consulta [Prezzi di Amazon Cognito](https://aws.amazon.com/cognito/pricing/).

## Assegnazione di ruoli IAM ai gruppi
<a name="assigning-iam-roles-to-groups"></a>

È possibile utilizzare i gruppi per controllare le autorizzazioni per le risorse utilizzando un ruolo IAM. I ruoli IAM includono policy di attendibilità e policy di autorizzazione. La policy di [attendibilità](https://docs.aws.amazon.com/cognito/latest/developerguide/role-trust-and-permissions.html) del ruolo specifica chi può utilizzare il ruolo. Le policy di [autorizzazioni](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies) specificano le operazioni e le risorse a cui i membri del gruppo possono accedere. Quando crei un ruolo IAM, imposta la policy di attendibilità del ruolo per consentire agli utenti del gruppo di assumere il ruolo. Nelle policy delle autorizzazioni del ruolo specificare le autorizzazioni che si desidera concedere al gruppo.

Quando crei un gruppo in Amazon Cognito, specifichi un ruolo IAM fornendo l'[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)del ruolo. Quando i membri del gruppo accedono utilizzando Amazon Cognito, possono ricevere credenziali temporanee dai pool di identità. Le autorizzazioni sono determinate dal ruolo IAM associato.

I singoli utenti possono essere in più gruppi. In qualità di sviluppatore, hai a disposizione le seguenti opzioni per scegliere automaticamente il ruolo IAM quando un utente si trova in più gruppi:
+ Puoi assegnare i valori di priorità per ciascun gruppo. Verrà scelto il gruppo con la priorità migliore (più bassa) e sarà applicato il relativo ruolo IAM associato. 
+ L'app può anche scegliere tra i ruoli disponibili quando richiede AWS le credenziali per un utente tramite un pool di identità, specificando un ruolo ARN nel parametro. [GetCredentialsForIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html)`CustomRoleARN` Il ruolo IAM specificato deve corrispondere a un ruolo disponibile per l'utente.

## Assegnazione dei valori di priorità ai gruppi
<a name="assigning-precedence-values-to-groups"></a>

Un utente può appartenere a più di un gruppo. Nei token di accesso e ID dell’utente, l’attestazione `cognito:groups` contiene l'elenco di tutti i gruppi a cui un utente appartiene. L'attestazione `cognito:roles` contiene l'elenco dei ruoli corrispondenti ai gruppi.

Poiché un utente può appartenere a più di un gruppo, puoi assegnare una priorità a ciascun gruppo. Questo è un numero non negativo che specifica la priorità di questo gruppo rispetto agli altri gruppi ai quali un utente appartiene nel bacino d'utenza. Zero è il valore di priorità massimo. I gruppi con valori di priorità più bassi prevalgono sui gruppi con valori di priorità più alti o nulli. Se un utente appartiene a due o più gruppi, verrà scelto il gruppo il cui ruolo IAM abbia il valore di priorità più basso applicato all'attestazione `cognito:preferred_role` nel token ID dell'utente.

Due gruppi possono avere lo stesso valore di priorità. In questo caso nessun gruppo prevale sull'altro. Se due gruppi con lo stesso valore di priorità hanno lo stesso ruolo ARN, tale ruolo viene utilizzato nell'attestazione `cognito:preferred_role` nei token ID per gli utenti di ciascun gruppo. Se i due gruppi hanno un ruolo diverso ARNs, l'`cognito:preferred_role`attestazione non è impostata nei token ID degli utenti.

## Utilizzo di gruppi per controllare l'autorizzazione con Amazon API Gateway
<a name="using-groups-to-control-permission-with-amazon-api-gateway"></a>

Puoi utilizzare i gruppi di un bacino d'utenza per controllare l'autorizzazione con Amazon API Gateway. I gruppi di cui un utente è membro sono inclusi sia nel token ID che nel token di accesso da un bacino d'utenza nell'attestazione `cognito:groups`. Puoi inviare ID o token di accesso con richieste ad Amazon API Gateway e utilizzare un autorizzazione del bacino d'utenza Amazon Cognito per un'API REST. Per ulteriori informazioni, consulta la sezione [Control access to a REST API using Amazon Cognito user pools as authorizer (Controllo degli accessi a un'API REST utilizzando pool di utenti di Amazon Cognito come autorizzazione)](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) nella [Guida per sviluppatori di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

È inoltre possibile autorizzare l'accesso a un'API HTTP di Amazon API Gateway con un'autorizzazione JWT personalizzata. Per ulteriori informazioni, consulta [Controllare l'accesso a HTTP APIs con gli autorizzatori JWT nella Guida](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) per [sviluppatori di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

## Limitazioni per i gruppi
<a name="user-pool-user-groups-limitations"></a>

I gruppi di utenti sono soggetti alle seguenti limitazioni:
+ Il numero di gruppi che puoi creare è limitato dalle quote del [servizio Amazon Cognito](quotas.md).
+ I gruppi non possono essere annidati.
+ Non puoi cercare gli utenti in un gruppo.
+ Non puoi cercare i gruppi per nome, ma puoi farne un elenco.

## Creare un nuovo gruppo in Console di gestione AWS
<a name="creating-a-new-group-using-the-console"></a>

Per creare un nuovo gruppo, utilizza la procedura seguente.

**Per creare un nuovo gruppo**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Gruppi**, quindi scegli **Crea un** gruppo.

1. Nella pagina **Create a group (Crea gruppo)**, sotto **Group name (nome gruppo)** inserisci un nome per il gruppo.

1. Facoltativamente, è possibile fornire ulteriori informazioni su questo gruppo utilizzando uno dei seguenti campi:
   + **Description (Descrizione)** - Inserisci i dettagli sull'utilizzo futuro di questo nuovo gruppo.
   + **Precedence (Priorità)** - Amazon Cognito valuta e applica tutte le autorizzazioni di gruppo per un determinato utente in base ai gruppi a cui appartengono hanno un valore di precedenza inferiore. Verrà scelto il gruppo con la priorità più bassa e sarà applicato il relativo ruolo IAM associato. Per ulteriori informazioni, consulta [Assegnazione dei valori di priorità ai gruppi](#assigning-precedence-values-to-groups).
   + **Ruolo IAM** - È possibile assegnare un ruolo IAM al gruppo quando è necessario controllare le autorizzazioni per le risorse. In caso di integrazione di un bacino d'utenza con un pool di identità, l'impostazione **IAM role (ruolo IAM)** determina il ruolo da assegnare nel token ID dell'utente se il pool di identità è configurato per la scelta del ruolo dal token. Per ulteriori informazioni, consulta [Assegnazione di ruoli IAM ai gruppi](#assigning-iam-roles-to-groups).
   + **Add users to this group (Aggiungi utenti a questo gruppo)** - Aggiungi utenti esistenti come membri di questo gruppo dopo la creazione.

1. Scegli **Create (Crea)** per confermare.

# Gestione e ricerca degli account utente
<a name="how-to-manage-user-accounts"></a>

I pool di utenti possono contenere milioni di utenti. Lavorare con un set di dati di queste dimensioni è una sfida per gli amministratori. Amazon Cognito dispone di strumenti per trovare e modificare i profili utente. I metodi principali per trovare gli utenti sono il menu **Utenti** della console Amazon Cognito e con. [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Tra i metodi che recuperano informazioni sugli utenti, queste sono le opzioni che non hanno un impatto sui costi, a differenza, ad esempio, di. [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html)

Questa sezione della guida contiene informazioni sulla ricerca e l'aggiornamento dei profili utente in un pool di utenti.

## Visualizzazione degli attributi utente
<a name="manage-user-accounts-viewing-user-attributes"></a>

Utilizza la procedura seguente per visualizzare gli attributi utente nella console Amazon Cognito.

**Per visualizzare gli attributi utente**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e seleziona un utente nell'elenco.

1. Nella pagina dei dettagli dell'utente, alla voce **User attributes (attributi utente)**, è possibile visualizzare quali attributi siano associati all'utente.

## Reimpostare una password utente
<a name="manage-user-accounts-reset-user-password"></a>

Utilizza la procedura seguente per reimpostare la password utente nella console Amazon Cognito.

**Per reimpostare una password utente**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e seleziona un utente nell'elenco.

1. Nella pagina dei dettagli dell'utente, scegli **Actions (Operazioni)**,**Reset password (reimposta password)**.

1. Nella finestra di dialogo **Reset password (reimposta password)**, controlla le informazioni e, quando sei pronto, scegli **Reimposta**.

   L'operazione genera un codice di conferma che viene inviato all'utente e ne disabilita la password corrente cambiando lo stato dell'utente in `RESET_REQUIRED`. Il codice **Reset password (Reimposta password)** è valido per 1 ora.

## Abilita, disabilita ed elimina gli account utente
<a name="manage-user-accounts-enable-disable"></a>

È possibile eliminare i profili utente non utilizzati o, se si desidera impedire temporaneamente l'accesso, disabilitarli. Gli utenti possono eliminare i propri account, ma solo gli amministratori del pool di utenti possono abilitare e disabilitare gli account utente.

**Effetto dell'eliminazione**  
Gli utenti non possono accedere con account utente eliminati e per riottenere l'accesso devono registrarsi o essere creati di nuovo.

**Effetto della disabilitazione degli account**  
[Quando disabiliti un account utente, Amazon Cognito invalida automaticamente tutte le sessioni autenticate, disattiva l'account utente per l'accesso e revoca i relativi token di accesso e aggiornamento.](token-revocation.md) Amazon Cognito restituisce un `invalid_request` errore con il messaggio `User is not enabled` quando un utente tenta di accedere a un account che hai disabilitato. Questo comportamento non cambia con le [impostazioni di divulgazione dell'esistenza degli utenti](cognito-user-pool-managing-errors.md) per il client dell'app. È possibile disabilitare gli account utente locali e i profili locali degli account utente federati. Quando gli utenti accedono con l'accesso gestito o la classica interfaccia utente ospitata, disattivano il loro account e quindi provano ad accedere nuovamente con il cookie del browser che mantiene la sessione autenticata, Amazon Cognito li reindirizza alla pagina di accesso.

**Effetto dell'attivazione degli account**  
Gli utenti possono accedere immediatamente agli account dopo averli abilitati. Gli account utente sono abilitati per impostazione predefinita. Gli attributi e le password degli utenti rimangono gli stessi di prima della disattivazione dell'account. I token revocati dall'applicazione, indipendentemente dal fatto che tu abbia disabilitato l'account utente o revocato separatamente il token di aggiornamento, rimangono non validi dopo aver abilitato l'account utente che possedeva il token.

------
#### [ Delete a user account (console) ]

**Per eliminare un account utente**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e seleziona il pulsante di opzione accanto al nome utente di un utente nell'elenco.

1. Scegli **Elimina**.

1. Scegli **Disabilita l'accesso utente**.

1. Scegli **Elimina**.

------
#### [ Delete a user account (API) ]

Gli utenti possono eliminare i propri account con il funzionamento dell' access-token-authorized[DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html)API self-service. Di seguito è riportato un esempio di corpo della `DeleteUser` richiesta.

```
{
   "AccessToken": "eyJra456defEXAMPLE"
}
```

Gli amministratori possono eliminare gli account utente con l'operazione API autorizzata da IAM [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html). Di seguito è riportato un esempio `AdminDeleteUser` di corpo della richiesta.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Disable a user account (console) ]

**Per disabilitare un account utente**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e seleziona il nome utente di un utente nell'elenco.

1. Nella pagina dei dettagli dell'utente, scegli **Azioni**, **Disabilita l'accesso utente**.

1. Nella finestra di dialogo che viene creata, scegli **Disabilita**.

------
#### [ Disable a user account (API) ]

Gli amministratori possono disabilitare gli account utente con l'operazione API autorizzata da IAM [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html). Di seguito è riportato un esempio `AdminDisableUser` di corpo della richiesta.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Enable a user account (console) ]

**Per abilitare un account utente**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e seleziona il nome utente di un utente nell'elenco.

1. Nella pagina dei dettagli dell'utente, scegli **Azioni**, **Abilita l'accesso utente**.

1. Nella finestra di dialogo che viene creata, scegli **Abilita**.

------
#### [ Enable a user account (API) ]

Gli amministratori possono abilitare gli account utente con l'operazione API autorizzata da IAM [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html). Di seguito è riportato un esempio `AdminEnableUser` di corpo della richiesta.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

## Ricerca degli attributi utente
<a name="manage-user-accounts-searching-user-attributes"></a>

Se hai già creato un bacino d'utenza, puoi effettuare la ricerca dal pannello **Users (Utenti)** nella Console di gestione AWS. Puoi anche utilizzare l'[ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Amazon Cognito, che accetta un parametro **Filter**.

Puoi cercare i seguenti attributi standard. Gli attributi personalizzati non possono essere cercati.
+ username (distinzione tra maiuscole e minuscole)
+ email
+ phone\$1number
+ name
+ given\$1name
+ family\$1name
+ preferred\$1username
+ cognito: user\$1status (denominato **Status (Stato)** nella console) (senza distinzione tra maiuscole e minuscole)
+ status (denominato **Enabled (Abilitato)** nella console) (distinzione tra maiuscole e minuscole)
+ sub

**Nota**  
È inoltre possibile fare un elenco degli utenti con un filtro lato client. Il filtro lato server non corrisponde a più di 1 attributo. Per la ricerca avanzata, utilizza un filtro lato client con il parametro `--query` dell'operazione `list-users` nella AWS Command Line Interface. Quando utilizzi un filtro lato client, ListUsers restituisce un elenco impaginato di zero o più utenti. È possibile ricevere più pagine di fila senza risultati. Ripetere la query con ogni token di impaginazione restituito fino a quando non si riceve un valore del token di impaginazione nullo, quindi rivedere il risultato combinato.  
[Per ulteriori informazioni sul filtraggio lato server e lato client, consulta Filtraggio dell'output nella Guida per l'utente. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html) AWS Command Line Interface 

## Ricerca di utenti con Console di gestione AWS
<a name="cognito-user-pools-manage-user-accounts-searching-for-users-using-console"></a>

Se hai già creato un bacino d'utenza, puoi effettuare la ricerca dal pannello **Users (Utenti)** nella Console di gestione AWS.

Console di gestione AWS le ricerche sono sempre ricerche con prefisso («inizia con»).

**Per cercare un utente nella console Amazon Cognito**

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 (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti** e inserisci il nome utente nel campo di ricerca. Attenzione: alcuni valori di attributo tengono conto di maiuscole/minuscole (ad esempio lo **User name (Nome utente)**.

   È inoltre possibile trovare utenti modificando il filtro di ricerca per restringere l'ambito alle altre proprietà dell'utente, ad esempio **E-mail**,**numero di telefono**, oppure **cognome**.

## Ricerca di utenti tramite l'API `ListUsers`
<a name="cognito-user-pools-searching-for-users-using-listusers-api"></a>

 [Per cercare utenti dalla tua app, utilizza l'API Amazon CognitoListUsers .](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Quest'API utilizza i parametri seguenti: 
+  `AttributesToGet`: una matrice di stringhe, in cui ogni stringa è il nome di un attributo utente da restituire a ogni utente nei risultati di ricerca. Per recuperare tutti gli attributi, non includere un parametro `AttributesToGet` o richiesta `AttributesToGet` con un valore della stringa letterale `null`.
+  `Filter`: una stringa del filtro del modulo"`AttributeName` `Filter-Type` "`AttributeValue`"". Le virgolette all'interno della stringa del filtro devono essere sfuggite utilizzando la barra rovesciata (`\`). Ad esempio, `"family_name = \"Reddy\""`. Se la stringa del filtro è vuota, `ListUsers` riporta tutti gli utenti al bacino d'utenza. 
  +  `AttributeName`: il nome dell'attributo da cercare. Puoi cercare solo un attributo per volta. 
**Nota**  
Puoi cercare solo gli attributi standard. Gli attributi personalizzati non possono essere cercati. Questo perché si può effettuare la ricerca solo per gli attributi indicizzati, e gli attributi personalizzati non possono essere indicizzati.
  +  `Filter-Type`: per una corrispondenza esatta, utilizza `=`, ad esempio, `given_name = "Jon"`. Per una corrispondenza del prefisso ("inizia con"), utilizza `^=`, ad esempio, `given_name ^= "Jon"`. 
  +  `AttributeValue`: il valore di attributo che deve essere abbinato a ogni utente.
+  `Limit`: numero massimo di utenti da restituire.
+  `PaginationToken`: un token per ottenere più risultati da una ricerca precedente. Il token di impaginazione di Amazon Cognito scade dopo un'ora.
+  `UserPoolId`: l'ID del bacino d'utenza per il bacino d'utenza sul quale eseguire la ricerca.

Tutte le ricerche non fanno la distinzione tra maiuscole e minuscole. I risultati di ricerca vengono ordinati in base all'attributo denominato dalla stringa `AttributeName`, in ordine crescente.

## Esempi di utilizzo dell'API `ListUsers`
<a name="cognito-user-pools-searching-for-users-listusers-api-examples"></a>

L'esempio seguente illustra la restituzione di tutti gli utenti e include tutti gli attributi.

```
{
    "AttributesToGet": null,
    "Filter": "",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

L'esempio seguente illustra la restituzione di tutti gli utenti il cui numero di telefono inizia per "\$11312" e include tutti gli attributi.

```
{
    "AttributesToGet": null,
    "Filter": "phone_number ^= \"+1312\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

L'esempio seguente illustra la restituzione dei primi 10 utenti il cui cognome è "Reddy". Per ogni utente, i risultati di ricerca includono il nome specificato dall'utente, il numero di telefono e l'indirizzo e-mail. Se non ci sono più di 10 utenti che corrispondono all'interno del bacino d'utenza, la risposta include un token di paginazione.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

Mentre nell'esempio precedente viene restituito un token di paginazione, in quello seguente vengono restituiti i 10 utenti successivi che corrispondono alla stessa stringa del filtro.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "PaginationToken": "pagination_token_from_previous_search",
    "UserPoolId": "us-east-1_samplepool"
}
```

# Password, ripristino dell'account e politiche relative alle password
<a name="managing-users-passwords"></a>

A tutti gli utenti che accedono a un pool di utenti, anche [gli utenti federati](cognito-terms.md#terms-federateduser), vengono assegnate delle password ai rispettivi profili utente. [Gli utenti locali](cognito-terms.md#terms-localuser) e [gli utenti collegati](cognito-terms.md#terms-linkeduser) devono fornire una password al momento dell'accesso. Gli utenti federati non utilizzano le password del pool di utenti, ma accedono con il proprio provider di identità (IdP). Puoi consentire agli utenti di reimpostare le proprie password, reimpostare o modificare le password in qualità di amministratore e [impostare politiche](#user-pool-settings-policies) per la complessità e la cronologia delle password.

Amazon Cognito non memorizza le password degli utenti in testo normale. Invece, memorizza un hash della password di ogni utente con un sale specifico per l'utente. Per questo motivo, non è possibile recuperare le password esistenti dai profili utente nei pool di utenti. È consigliabile non archiviare le password utente in testo semplice da nessuna parte. Esegui la reimpostazione delle password quando gli utenti dimenticano le password.

## Reimpostazione e ripristino della password
<a name="user-pool-password-reset-and-recovery"></a>

Gli utenti dimenticano le password. Potresti volere che siano in grado di reimpostare la password da soli oppure potresti voler richiedere che un amministratore reimposti la password per loro. I pool di utenti di Amazon Cognito offrono opzioni per entrambi i modelli. Questa parte della guida illustra le impostazioni del pool di utenti e le operazioni API per la reimpostazione della password.

Il funzionamento dell'[ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API e l'opzione di accesso gestito **Password dimenticata**? invia agli utenti un codice che, quando confermano di avere il codice corretto, dà loro l'opportunità di impostare una nuova password. [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html) Si tratta del modello self-service di recupero delle password.

**Recupero di utenti non verificati**  
Puoi inviare messaggi di ripristino agli utenti che hanno verificato il proprio indirizzo e-mail o numero di telefono. Se non dispongono di un'e-mail o di un telefono di ripristino confermati, un amministratore del pool di utenti può contrassegnare il proprio indirizzo e-mail o numero di telefono come verificato. Modifica gli **attributi utente dell'utente** nella console Amazon Cognito e seleziona la casella di controllo accanto a **Segna il numero di telefono come verificato o **Contrassegna l'indirizzo e-mail** come verificato**. Puoi anche impostare `email_verified` o su `phone_number_verified` true in una [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)richiesta. Per i nuovi utenti, l'operazione [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API invia un nuovo codice al loro indirizzo e-mail o numero di telefono e possono completare la conferma e la verifica in modalità self-service.

**Reimposta le password come amministratore**  
Le operazioni [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)e [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API sono i metodi di reimpostazione della password avviati dall'amministratore. `AdminSetUserPassword`imposta una password temporanea o permanente e `AdminResetUserPassword` invia agli utenti un codice per la reimpostazione della password nello stesso modo di. `ForgotPassword`

### Configura la reimpostazione e il ripristino della password
<a name="user-pool-password-reset-and-recovery-configure"></a>

Amazon Cognito seleziona automaticamente le opzioni di ripristino dell'account tra gli attributi richiesti e le opzioni di accesso che scegli quando crei un pool di utenti nella console. Puoi modificare queste impostazioni predefinite.

Il metodo MFA preferito dall'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 SMS non possono ricevere un codice di reimpostazione della password tramite SMS.

Le impostazioni di [recupero della password](#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`

**Nota**  
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.

La procedura seguente configura il ripristino degli account in modalità self-service in un pool di utenti.

------
#### [ Configure self-service password reset (API/SDK) ]

Il `AccountRecoverySetting` parametro è il parametro del pool di utenti che imposta i metodi che gli utenti possono utilizzare per recuperare la password nelle richieste [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API o quando selezionano Password **dimenticata**? nell'accesso gestito. `ForgotPassword`invia un codice di ripristino a un'email o a un numero di telefono verificato. Il codice di ripristino è valido per un'ora. Quando si specifica [AccountRecoverySetting](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AccountRecoverySettingType.html) per il bacino d'utenza, Amazon Cognito sceglie la destinazione di distribuzione del codice in base alla priorità impostata.

Quando si definisce `AccountRecoverySetting` e un utente dispone di SMS MFA configurato, SMS non può essere utilizzato come meccanismo di recupero degli account. La priorità per questa impostazione è determinata con `1` la massima priorità. Amazon Cognito invia una verifica solo a uno dei metodi specificati. L'esempio seguente `AccountRecoverySetting` imposta gli indirizzi e-mail come destinazione principale per i codici di ripristino dell'account, ricorrendo al messaggio SMS se l'utente non dispone di un attributo di indirizzo e-mail.

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "verified_email",
         "Priority": 1
      },
      { 
         "Name": "verified_phone_number",
         "Priority": 2
      }
   ]
}
```

Il valore `admin_only` disattiva il ripristino self-service dell'account, richiedendo invece agli utenti di contattare l'amministratore per la reimpostazione della password. Non è possibile utilizzare `admin_only` con altri meccanismi di recupero degli account. Quanto segue e

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "admin_only",
         "Priority": 1
      }
   ]
}
```

Se non lo specifichi`AccountRecoverySetting`, Amazon Cognito invia prima il codice di ripristino a un numero di telefono verificato e a un indirizzo e-mail verificato se gli utenti non dispongono di un attributo di numero di telefono.

Per ulteriori informazioni su `AccountRecoverySetting`, consulta [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) e [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html).

------
#### [ Configure self-service password reset (console) ]

Configura le opzioni di ripristino dell'account e reimpostazione della password dal menu di **accesso** del tuo pool di utenti.

**Per configurare il ripristino dell'account utente**

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 il **recupero dell'account utente** e scegli Modifica**

1. Per consentire agli utenti di reimpostare le proprie password, scegli **Abilita il ripristino dell'account in modalità self-service**.

1. Configura il metodo di consegna per i codici di recupero delle password che il tuo pool di utenti invia agli utenti. In **Metodo di consegna per i messaggi di recupero dell'account utente**, seleziona un'opzione disponibile. Come procedura consigliata, scegli un'opzione che abbia un metodo secondario per l'invio dei messaggi, ad esempio **e-mail se disponibile, altrimenti SMS**. Con un metodo di consegna secondario, Amazon Cognito può inviare codici agli utenti in un modo che richiede loro di utilizzare un supporto diverso per la reimpostazione della password rispetto all'MFA.

1. Seleziona **Salva modifiche**.

------

### Come comportarsi in caso di password dimenticata
<a name="forgot-password"></a>

In una determinata ora, consentiamo a un utente da 5 a 20 tentativi di richiedere o inserire un codice di reimpostazione della password come parte delle azioni e della password dimenticata. confirm-forgot-password Il valore esatto dipende dai parametri di rischio associati alle richieste. Notare che questo comportamento è soggetto a modifiche. 

## Aggiunta di requisiti password del bacino d'utenza
<a name="user-pool-settings-policies"></a>

Le password complesse e sicure sono una best practice di sicurezza per il tuo pool di utenti. Soprattutto nelle applicazioni aperte a Internet, le password deboli possono esporre le credenziali degli utenti a sistemi che indovinano le password e cercano di accedere ai dati. Più una password è complessa, più è difficile indovinarla. Amazon Cognito offre strumenti aggiuntivi per gli amministratori attenti alla sicurezza, come la [protezione dalle minacce](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-threat-protection.title) e il [AWS WAF web ACLs](user-pool-waf.md#user-pool-waf.title), ma la politica delle password è un elemento centrale della sicurezza della tua rubrica utenti.

Le password per gli utenti locali nei pool di utenti di Amazon Cognito non scadono automaticamente. Come best practice, registra l'ora, la data e i metadati delle reimpostazioni delle password degli utenti in un sistema esterno. Con un registro esterno dell'età della password, l'applicazione o un trigger Lambda possono cercare l'età della password di un utente e richiederne la reimpostazione dopo un determinato periodo.

Puoi configurare il tuo pool di utenti per richiedere una complessità minima della password conforme ai tuoi standard di sicurezza. Le password complesse hanno una lunghezza minima di almeno otto caratteri. Includono anche una combinazione di caratteri maiuscoli, numerici e speciali.

Con i livelli di funzionalità Essentials o Plus, puoi anche impostare una politica per il riutilizzo delle password. È possibile impedire a un utente di reimpostare la propria password con una nuova password che corrisponda alla password corrente o con una qualsiasi delle 23 password precedenti aggiuntive, per un totale massimo di 24.

**Impostazione di una policy delle password di un pool di utenti**

1. Crea un pool di utenti e vai al passaggio **Configura i requisiti di sicurezza** oppure accedi a un pool di utenti esistente e vai al menu Metodi di **autenticazione**.

1. Vai a **Policy delle password**.

1. Scegli una **Modalità policy delle password**. I **Valori predefiniti di Cognito** configurano il pool di utenti con le impostazioni minime consigliate. Puoi anche scegliere una policy delle password **Personalizzata**.

1. Imposta una **Lunghezza minima della password**. Tutti gli utenti devono registrarsi o essere creati con una password la cui lunghezza sia maggiore o uguale a questo valore. Puoi impostare questo valore minimo fino a 99, ma gli utenti possono impostare password lunghe fino a 256 caratteri.

1. Configura le regole di complessità delle password in **Requisiti delle password**. Scegli i tipi di caratteri (numeri, caratteri speciali, lettere maiuscole e minuscole) che devono essere presenti almeno in una occorrenza nelle password di ogni utente.

   È possibile richiedere almeno uno dei seguenti caratteri nelle password. Dopo che Amazon Cognito ha verificato che le password contengano i caratteri minimi richiesti, le password degli utenti possono contenere caratteri aggiuntivi di qualsiasi tipo fino alla lunghezza massima della password.
   + Lettere maiuscole e minuscole dell'alfabeto [latino di base](https://en.wikipedia.org/wiki/ISO_basic_Latin_alphabet)
   + Numeri
   + Possono includere i seguenti caratteri speciali.

     ```
     ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ ` = + - 
     ```
   + Spazi non iniziali, non finali.

1. Imposta un valore per **Scadenza delle password temporanee impostate dagli amministratori**. Trascorso questo periodo di tempo, un nuovo utente creato con una richiesta API `AdminCreateUser` nella console di Amazon Cognito non può effettuare l'accesso e impostare una nuova password. Dopo aver effettuato l'accesso con la password temporanea, i relativi account utente non scadono mai. Per aggiornare la durata della password nell'API dei pool di utenti di Amazon Cognito, imposta un valore per [TemporaryPasswordValidityDays ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_PasswordPolicyType.html#CognitoUserPools-Type-PasswordPolicyType-TemporaryPasswordValidityDays)nella tua 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.

1. Imposta un valore per **Impedisci l'uso di password precedenti**, se disponibile. Per utilizzare questa funzionalità, scegli il [livello di funzionalità](cognito-sign-in-feature-plans.md) Essentials o Plus nel tuo pool di utenti. Il valore di questo parametro è il numero di password precedenti a cui una nuova password non può corrispondere quando un utente reimposta la propria password.

Per reimpostare l'accesso per un account utente scaduto, esegui una delle seguenti operazioni:
+ Invia una nuova password temporanea e reimposta il periodo di scadenza con una richiesta [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API `MessageAction` impostata su. `RESEND`
+ Elimina la CA e creane una nuova.
+ Genera un nuovo codice di conferma in una richiesta [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API.

# Importazione di utenti in un bacino d'utenza
<a name="cognito-user-pools-import-users"></a>

Sono disponibili due metodi per importare o migrare gli utenti dalla directory o dal database di utenti esistente nei bacini d'utenza di Amazon Cognito. Puoi eseguire la migrazione di utenti durante la procedura di accesso utilizzando Amazon Cognito per la prima volta con un trigger Lambda di migrazione utenti. Con questo approccio, gli utenti possono continuare a usare le password esistenti e non dovranno reimpostarle dopo la migrazione al bacino d'utenza. In alternativa, è possibile migrare gli utenti in blocco caricando un file CSV che contiene gli attributi del profilo utente di tutti gli utenti. Le seguenti sezioni descrivono questi due approcci.

**Altre risorse**
+ [Approcci per la migrazione degli utenti ai pool di utenti di Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)
+ [AWS RE:Inforce 2023 - Migrazione ad Amazon Cognito](https://www.youtube.com/watch?v=OkDj9uXWwCc)

**Topics**
+ [Importazione di utenti con un trigger Lambda per la migrazione di utenti](cognito-user-pools-import-using-lambda.md)
+ [Importazione di utenti nel bacino d'utenza da un file CSV](cognito-user-pools-using-import-tool.md)

# Importazione di utenti con un trigger Lambda per la migrazione di utenti
<a name="cognito-user-pools-import-using-lambda"></a>

Questo approccio ti consente di eseguire senza problemi la migrazione degli utenti dalla directory degli utenti esistente ai bacini d'utenza, quando un utente accede per la prima volta con la tua app o richiede la reimpostazione della password. Aggiungi una funzione [Trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md) al bacino d'utenza per ricevere i metadati sugli utenti che tentano di accedere e ottenere le informazioni del profilo utente da un'origine di identità esterna. Per i dettagli e un codice di esempio su questo trigger Lambda, inclusi i parametri di richiesta e risposta, consulta [Parametri del trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).

Prima di avviare la migrazione degli utenti, crea una funzione Lambda di migrazione degli utenti nel tuo Account AWS e imposta la funzione Lambda come trigger di migrazione degli utenti nel bacino d'utenza. Aggiungi una policy di autorizzazione alla funzione Lambda che consenta solo al principale dell'account del servizio Amazon Cognito `cognito-idp.amazonaws.com` di richiamare la funzione Lambda e solo nel contesto del proprio bacino d'utenza. Per ulteriori informazioni, consulta [Utilizzo delle policy basate su risorse per AWS Lambda (policy della funzione Lambda)](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). 

**Processo di accesso**

1. L'utente apre l'app e accede con l'API dei pool di utenti di Amazon Cognito o tramite accesso gestito. Per ulteriori informazioni su come facilitare l'accesso con Amazon APIs Cognito, consulta. [Integrazione dell'autenticazione e dell'autorizzazione di Amazon Cognito con app web e mobili](cognito-integrate-apps.md)

1. L'app invia il nome utente e la password ad Amazon Cognito. Se la tua app ha un'interfaccia utente di accesso personalizzata creata con un AWS SDK, l'app deve utilizzare [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)o [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)con il flusso or. `USER_PASSWORD_AUTH` `ADMIN_USER_PASSWORD_AUTH` Quando l'app utilizza uno di questi flussi, l'SDK invia la password al server.
**Nota**  
Prima di aggiungere un trigger di migrazione degli utenti, attiva il flusso `USER_PASSWORD_AUTH` o `ADMIN_USER_PASSWORD_AUTH` nelle impostazioni del client di app. Devi utilizzare questi flussi al posto del flusso `USER_SRP_AUTH` di default. Amazon Cognito deve inviare una password alla funzione Lambda in modo che possa verificare l'autenticazione dell'utente nell'altra directory. Una SRP oscura la password dell'utente nella funzione Lambda.

1. Amazon Cognito verifica se il nome utente inviato corrisponde a un nome utente o un alias nel bacino d'utenza. Puoi impostare l'indirizzo e-mail, il numero di telefono o il nome utente preferito dell'utente come alias nel bacino d'utenza. Se l'utente non esiste, Amazon Cognito invia parametri, inclusi nome utente e password, alla funzione [Trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md).

1. La funzione [Trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md) controlla o autentica l'utente nella directory o nel database degli utenti esistente. La funzione restituisce gli attributi utente archiviati da Amazon Cognito nel profilo dell'utente nel bacino d'utenza. Il parametro `username` viene restituito solo se il nome utente inviato corrisponde a un attributo alias. Se desideri che gli utenti continuino a usare le loro password esistenti, la funzione imposta l'attributo `finalUserStatus` su `CONFIRMED` nella risposta Lambda. L'app deve restituire tutti i parametri `"response"` mostrati in [Parametri del trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).
**Importante**  
Non registrare l'intero oggetto evento di richiesta nel codice Lambda di migrazione degli utenti in quanto questo oggetto evento di richiesta include la password dell'utente. Se non pulisci i log, le password vengono visualizzate in Logs. CloudWatch 

1. Amazon Cognito crea il profilo utente nel bacino d'utenza e restituisce i token per il client dell'app.

1. L'app esegue l'acquisizione del token, accetta l'autenticazione dell'utente e procede al contenuto richiesto.

Dopo aver eseguito la migrazione degli utenti, utilizza `USER_SRP_AUTH` per l'accesso. Il protocollo Secure Remote Password (SRP) non invia la password in rete e offre notevoli vantaggi dal punto di vista della sicurezza grazie al flusso `USER_PASSWORD_AUTH` usato durante la migrazione.

In caso di errori durante la migrazione, compresi i problemi del dispositivo client o di rete, l'app riceve le risposte di errore dall'API dei bacini d'utenza di Amazon Cognito. In questo caso, Amazon Cognito potrebbe non creare l'account utente nel bacino d'utenza. L'utente deve quindi tentare di eseguire nuovamente l'accesso. Se l'errore dell'accesso si ripete, tenta di reimpostare la password dell'utente con il flusso della password dimenticata dell'app. 

Il flusso della password dimenticata richiama anche la funzione [Trigger Lambda di migrazione utenti](user-pool-lambda-migrate-user.md) con un'origine eventi `UserMigration_ForgotPassword`. Poiché l'utente non invia una password quando richiede la reimpostazione della password, Amazon Cognito non include una password nell'evento che invia alla funzione Lambda. La funzione può solo cercare l'utente nella directory degli utenti esistente e restituire gli attributi da aggiungere al profilo utente nel bacino d'utenza. Dopo che la funzione ha completato l'invocazione e restituito la risposta ad Amazon Cognito, il pool di utenti invia un codice di reimpostazione della password tramite e-mail o SMS. Nella tua app, richiedi all'utente il codice di conferma e una nuova password, quindi invia tali informazioni ad Amazon Cognito in [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)una richiesta API. Puoi anche utilizzare le pagine integrate per il flusso di password dimenticata nell'accesso gestito.

**Risorse aggiuntive**
+ [Approcci per la migrazione degli utenti ai pool di utenti di Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)

# Importazione di utenti nel bacino d'utenza da un file CSV
<a name="cognito-user-pools-using-import-tool"></a>

Se disponi di un archivio di identità esterno e hai tempo a disposizione per preparare il pool di utenti per nuovi utenti locali, l'importazione in blocco di utenti da un file con valori separati da virgole (CSV) può essere un'opzione semplice ed economica per la migrazione a un pool di utenti di Amazon Cognito. L'importazione di un file CSV consiste nel scaricare e compilare un file modello, per poi consegnarlo al gruppo di utenti in un processo di importazione. Puoi utilizzare un'importazione CSV per creare rapidamente utenti di prova. Puoi anche compilare a livello di codice il file con richieste API di lettura al tuo archivio di identità esterno, quindi analizzarne i dettagli e gli attributi in operazioni di scrittura sul file.

Il processo di importazione imposta i valori per tutti gli attributi utente eccetto la **password**. L'importazione della password non è supportata, poiché le best practice di sicurezza richiedono che le password non siano disponibili come testo normale e noi non supportiamo l'importazione di hash. Questo significa che i tuoi utenti devono cambiare le loro password dopo il primo accesso. Gli utenti sono in uno `RESET_REQUIRED` stato quando vengono importati con questo metodo.

Il modo più semplice per importare utenti da un file CSV consiste nell'attivare l'accesso [senza password](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) nel pool di utenti. Grazie agli attributi dell'indirizzo e-mail e del numero di telefono e alla corretta configurazione del pool di utenti, gli utenti possono accedere con password monouso per e-mail o SMS () subito dopo il completamento del processo di importazione. OTPs Per ulteriori informazioni, consulta [Necessità degli utenti importati di ripristinare le password](#cognito-user-pools-using-import-tool-password-reset).

Puoi anche impostare le password degli utenti con una richiesta [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API che imposta il parametro su. `Permanent` `true` L'importazione in formato CSV non contribuisce al numero di utenti attivi fatturati mensilmente (MAUs) nel tuo pool di utenti. Tuttavia, le operazioni di reimpostazione della password generano. MAUs Per gestire i costi quando importi un gran numero di utenti con password che potrebbero non essere immediatamente attivi, configura l'applicazione in modo che richieda agli utenti una nuova password quando accedono e ricevono la sfida. `RESET_REQUIRED`

**Nota**  
La data di creazione per ogni utente si riferisce al momento in cui tale utente è stato importato nel bacino d'utenza. La data di creazione non è uno degli attributi importati.

**Passaggi per creare un processo di importazione degli utenti**

1. Crea un ruolo Amazon CloudWatch Logs nella console AWS Identity and Access Management (IAM).

1. Crea il file .csv di importazione degli utenti;

1. Crea ed esegui Web;

1. Carica il file .csv di importazione degli utenti;

1. Avvia ed esegui Web;

1. Utilizzalo CloudWatch per controllare il registro degli eventi.

1. Richiedi agli utenti importati di ripristinare le loro password.

**Altre risorse**
+ [Esportazione dei profili utente di Cognito: architettura di riferimento per l'](https://aws.amazon.com/solutions/implementations/cognito-user-profiles-export-reference-architecture/)esportazione degli account utente tra pool di utenti

**Topics**
+ [Creazione del ruolo CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role)
+ [Creazione di un file CSV di importazione degli utenti](#cognito-user-pools-using-import-tool-csv-header)
+ [Creazione ed esecuzione del processo di importazione del bacino d'utenza di Amazon Cognito](#cognito-user-pools-creating-import-job)
+ [Visualizzazione dei risultati di importazione del pool di utenti nella CloudWatch console](#cognito-user-pools-using-import-tool-cloudwatch)
+ [Necessità degli utenti importati di ripristinare le password](#cognito-user-pools-using-import-tool-password-reset)

## Creazione del ruolo CloudWatch Logs IAM
<a name="cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role"></a>

Se utilizzi la CLI o l'API di Amazon Cognito, devi creare un ruolo IAM. CloudWatch La procedura seguente descrive come creare un ruolo IAM che Amazon Cognito può utilizzare per scrivere i risultati del processo di importazione in Logs. CloudWatch 

**Nota**  
Quando crei un processo di importazione nella console di Amazon Cognito, puoi creare il ruolo IAM contemporaneamente. Quando scegli l'operazione **Create a new IAM role** (Crea un nuovo ruolo IAM), Amazon Cognito applica automaticamente la policy di attendibilità e la policy IAM appropriate al ruolo.

**Per creare il ruolo CloudWatch Logs IAM per l'importazione del pool di utenti (AWS CLI, API)**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Crea un nuovo ruolo IAM per un Servizio AWS. Per istruzioni dettagliate, consulta [Creazione di un ruolo per un servizio Servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) nella *Guida per l'utente di AWS Identity and Access Management *.

   1. Quando selezioni un **Use Case** (Caso d'uso) per **Trusted entity type** (Tipo di entità attendibile), scegli qualsiasi servizio. Amazon Cognito non è attualmente elencato nei casi d'uso dei servizi.

   1. Nella schermata **Add permissions** (Aggiungi autorizzazioni), scegli **Create policy** (Crea policy) e inserisci la seguente istruzione della policy. Sostituiscilo *REGION* con il tuo pool Regione AWS di utenti, ad esempio`us-east-1`. Sostituiscilo *ACCOUNT* con il tuo Account AWS ID, ad esempio`111122223333`.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "logs:CreateLogGroup",
                      "logs:CreateLogStream",
                      "logs:DescribeLogStreams",
                      "logs:PutLogEvents"
                  ],
                  "Resource": [
                      "arn:aws:logs:us-east-1:111122223333:log-group:/aws/cognito/*"
                  ]
              }
          ]
      }
      ```

------

1. Poiché non hai scelto Amazon Cognito come entità attendibile quando hai creato il ruolo, ora devi modificare manualmente la relazione di trust del ruolo. Seleziona **Roles** (Ruoli) nel pannello di navigazione della console IAM, quindi scegli il nuovo ruolo creato.

1. Seleziona la scheda **Relazioni di attendibilità**

1. Seleziona **Modifica policy di attendibilità**.

1. Incolla la seguente istruzione della policy in **Edit trust policy** (Modifica policy di attendibilità), sostituendo qualsiasi testo esistente: 

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

****  

   ```
   {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Effect": "Allow",
                   "Principal": {
                       "Service": "cognito-idp.amazonaws.com"
                   },
                   "Action": "sts:AssumeRole"
               }
           ]
       }
   ```

------

1. Scegli **Update policy** (Aggiorna policy). 

1. Nota l'ARN del ruolo . Quando si crea processo di importazione, è necessario fornire l'ARN.

## Creazione di un file CSV di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-csv-header"></a>

Prima di poter importare gli utenti esistenti nel pool di utenti, è necessario creare un file CSV contenente gli utenti che si desidera importare e i relativi attributi. Dal pool di utenti, è possibile recuperare un file di importazione utente con intestazioni che riflettono lo schema di attributi del pool di utenti. È quindi possibile inserire le informazioni utente che soddisfano i requisiti di formattazione in [Formattazione del file CSV](#cognito-user-pools-using-import-tool-formatting-csv-file). 

### Download dell'intestazione del file CSV (console)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-console"></a>

Utilizza la seguente procedura per scaricare il file di intestazione CSV.

**Per eseguire il download dell'intestazione del file CSV**

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

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti**.

1. Nella sezione **Import users** (Importa utenti), scegli **Create an import job** (Crea un processo di importazione).

1. In **Upload CSV** (Carica CSV), seleziona il link *template.csv* e scarica il file CSV.

### Download dell'intestazione del file CSV (AWS CLI)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-using-cli"></a>

Per ottenere un elenco delle intestazioni corrette, dal **menu Utenti** in **Importa utenti**, seleziona **Crea processo di importazione**. Nella finestra di dialogo che segue, seleziona il `template.csv` link per scaricare un file modello con gli attributi del tuo pool di utenti.

Puoi anche eseguire il seguente comando CLI, *USER\$1POOL\$1ID* dov'è l'identificatore del pool di utenti per il pool di utenti in cui importerai gli utenti:

```
aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"
```

Risposta di esempio:

```
{
    "CSVHeader": [
        "name",
        "given_name",
        "family_name",
        "middle_name",
        "nickname",
        "preferred_username",
        "profile",
        "picture",
        "website",
        "email",
        "email_verified",
        "gender",
        "birthdate",
        "zoneinfo",
        "locale",
        "phone_number",
        "phone_number_verified",
        "address",
        "updated_at",
        "cognito:mfa_enabled",
        "cognito:username"
    ],
    "UserPoolId": "USER_POOL_ID"
}
```

### Formattazione del file CSV
<a name="cognito-user-pools-using-import-tool-formatting-csv-file"></a>

 L'aspetto del file di intestazione CSV di importazione degli utenti scaricato è il seguente: Include anche eventuali attributi personalizzati aggiunti al pool di utenti.

```
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
```

Modificare il file CSV, in modo che includa questa intestazione e i valori di attributo per gli utenti. Il file viene formattato in base ai seguenti criteri:

**Nota**  
Per ulteriori informazioni sui valori di attributo, ad esempio il formato corretto per i numeri di telefono, consulta [Utilizzo degli attributi utente](user-pool-settings-attributes.md).
+ La prima riga nel file è la riga di intestazione scaricata, che contiene i nomi di attributo degli utenti.
+ L'ordine delle colonne nel file CSV non è rilevante.
+ Ogni riga, dopo la prima, contiene i valori di attributo per un utente.
+ Tutte le colonne nell'intestazione devono essere presenti, ma non è necessario che tu fornisca valori in ogni colonna;
+ I seguenti attributi sono necessari:
  + **cognito:username**
  + **email\$1verified** o **phone\$1number\$1verified**
    + Almeno uno degli attributi verificato automaticamente deve essere `true` per ogni utente. Un attributo verificato automaticamente è un indirizzo e-mail o un numero di telefono a cui Amazon Cognito invia automaticamente un codice quando un nuovo utente si unisce al pool di utenti.
    + Il pool di utenti deve avere almeno un attributo verificato automaticamente, **email\$1verified** o **phone\$1number\$1verified**. Se il bacino d'utenza non ha attributi verificati automaticamente, il processo di importazione non verrà avviato.
    + Se il bacino d'utenza ha un attributo verificato automaticamente, tale attributo deve essere verificato per ogni utente. Ad esempio, se il bacino d'utenza ha solo **phone\$1number** come attributo verificato automaticamente, il valore **phone\$1number\$1verified** deve essere `true` per ogni utente.
**Nota**  
Affinché gli utenti reimpostino le password, devono avere una e-mail o un numero di telefono verificati. Amazon Cognito invia un messaggio contenente un codice di reimpostazione della password all'e-mail o al numero di telefono specificati nel file CSV. Se il messaggio viene inviato al numero di telefono, è inviato tramite SMS. Per ulteriori informazioni, consulta [Verifica delle informazioni di contatto al momento della registrazione](signing-up-users-in-your-app.md#allowing-users-to-sign-up-and-confirm-themselves).
  + **e-mail** (se **email\$1verified** è `true`)
  + **phone\$1number** (se **phone\$1number\$1verified** è `true`)
  + Tutti gli attributi che hai contrassegnato come richiesto quando hai creato il bacino d'utenza
+ I valori di attributo che sono stringhe dovrebbero *non* essere tra virgolette;
+ Se il valore di un attributo contiene una virgola, è necessario inserire una barra rovesciata (\$1) prima della virgola. Questo perché i campi in un file CSV sono separati da virgole.
+ I contenuti del file CSV devono essere in formato UTF-8 senza contrassegno ordine di byte.
+ Il campo **cognito:username** è obbligatorio e deve essere univoco all'interno del tuo bacino d'utenza. Può essere qualsiasi stringa Unicode. Tuttavia, non può contenere spazi o schede;
+ I valori della **data di nascita**, se presenti, devono essere nel formato. **mm/dd/yyyy** Ciò significa, ad esempio, che una data di nascita corrispondente al 1 febbraio 1985 deve essere codificata come **02/01/1985**.
+ Il campo **cognito:mfa\$1enabled** deve corrispondere ai requisiti MFA del tuo pool di utenti. Se hai impostato l'autenticazione a più fattori (MFA) come obbligatoria nel tuo pool di utenti, questo campo deve `true` essere o vuoto per tutti gli utenti. Se hai impostato la modalità MFA come disattivata, questo campo deve essere `false` o vuoto per tutti gli utenti. Un valore vuoto imposta lo stato di abilitazione MFA degli utenti importati sullo stato richiesto dal pool di utenti. È possibile importare utenti in un pool di utenti richiesto dall'MFA senza un fattore MFA valido, indipendentemente dal fatto che sia stato impostato un valore. `cognito:mfa_enabled` Gli utenti in questo stato hanno la MFA attiva ma non possono accedere finché non configurano un attributo e-mail, un attributo numero di telefono o un TOTP e tale configurazione non è un fattore MFA valido nel tuo pool di utenti.
+ La lunghezza massima è 16.000 caratteri.
+ Il file CSV può avere una dimensione massima di 100 MB.
+ Il numero massimo di righe (utenti) nel file è 500.000. In questo valore massimo non è inclusa la riga di intestazione.
+ Il valore del campo **updated\$1at** dovrebbe essere un periodo di tempo espresso in secondi, per esempio: **1471453471**.
+ Qualsiasi spazio, iniziale o finale in un valore di attributo, verrà tagliato.

L'elenco seguente è un esempio di file di importazione CSV per un pool di utenti senza attributi personalizzati. Lo schema del pool di utenti potrebbe differire da questo esempio. In tal caso, è necessario fornire valori di test nel modello CSV scaricato dal pool di utenti.

```
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
John,,John,Doe,,,,,,,johndoe@example.com,TRUE,,02/01/1985,,,+12345550100,TRUE,123 Any Street,,FALSE
Jane,,Jane,Roe,,,,,,,janeroe@example.com,TRUE,,01/01/1985,,,+12345550199,TRUE,100 Main Street,,FALSE
```

## Creazione ed esecuzione del processo di importazione del bacino d'utenza di Amazon Cognito
<a name="cognito-user-pools-creating-import-job"></a>

Questa sezione descrive come creare ed eseguire il processo di importazione del pool di utenti utilizzando la console Amazon Cognito e AWS Command Line Interface ()AWS CLI.

**Topics**
+ [Importazione di utenti da un file CSV (console)](#cognito-user-pools-using-import-tool-console)
+ [Importazione di utenti (AWS CLI)](#cognito-user-pools-using-import-tool-cli)

### Importazione di utenti da un file CSV (console)
<a name="cognito-user-pools-using-import-tool-console"></a>

Nella procedura seguente viene descritto come importare gli utenti dal file CSV.

**Per importare gli utenti da un file CSV (console)**

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 (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **Utenti**.

1. Nella sezione **Import users** (Importa utenti), scegli **Create an import job** (Crea un processo di importazione).

1. Nella pagina **Create import job** (Crea processo di importazione), inserisci un **Job name** (Nome processo).

1. Scegli l'operazione **Create a new IAM role** (Crea un nuovo ruolo IAM) o **Use an existing IAM role** (Utilizza un ruolo IAM esistente).

   1. Se hai scelto **Create a new IAM role** (Crea un nuovo ruolo IAM), inserisci un nome per il nuovo ruolo. Amazon Cognito creerà automaticamente un ruolo con le autorizzazioni e le relazioni di affidabilità corrette. Il principale IAM che crea il processo di importazione deve disporre delle autorizzazioni per creare ruoli IAM.

   1. Se hai scelto **Use an existing IAM role** (Utilizza un ruolo IAM esistente), scegli un ruolo dall'elenco in **IAM role selection** (Selezione del ruolo IAM). Questo ruolo deve disporre delle autorizzazioni e della policy di attendibilità descritte in [Creazione del ruolo CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role).

1. In **Carica CSV**, scegli **Scegli file** e allega il file CSV che hai preparato.

1. Scegli **Create job** (Crea processo) per inviare il processo, ma avvialo in un secondo momento. Scegli **Create and start job** (Crea e avvia il processo) per inviare il processo e avviarlo immediatamente.

1. Se hai creato il processo ma non l'hai avviato, puoi avviarlo in un secondo momento. **Nel menu **Utenti**, sotto **Importa utenti**, scegli il processo di importazione, quindi seleziona Avvia.** Puoi anche inviare una richiesta [StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html)API da un AWS SDK.

1. Monitora lo stato di avanzamento del processo di importazione **degli utenti nel menu Utenti** sotto **Importa utenti**. Se il processo non va a buon fine, puoi selezionare il valore **Status** (Stato). Per ulteriori dettagli, seleziona **Visualizza CloudWatch i log per maggiori dettagli** ed esamina eventuali problemi nella console CloudWatch Logs.

### Importazione di utenti (AWS CLI)
<a name="cognito-user-pools-using-import-tool-cli"></a>

I seguenti comandi della CLI sono disponibili per importare gli utenti in un bacino d'utenza:
+ `create-user-import-job`
+ `get-csv-header`
+ `describe-user-import-job`
+ `list-user-import-jobs`
+ `start-user-import-job`
+ `stop-user-import-job`

Per l'elenco delle opzioni della riga di comando per questi comandi, utilizza l'opzione `help` della riga di comando. Esempio:

```
aws cognito-idp get-csv-header help
```

#### Creazione di un processo di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-creating-user-import-job"></a>

Dopo aver creato il file CSV, crea un processo di importazione utenti eseguendo il seguente comando CLI, *JOB\$1NAME* dove è il nome che scegli per il processo*USER\$1POOL\$1ID*, l'ID del pool di utenti per il pool di utenti a cui verranno aggiunti i nuovi utenti *ROLE\$1ARN* e il ruolo ARN in cui hai ricevuto: [Creazione del ruolo CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role) 

```
aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"
```

Il valore *PRE\$1SIGNED\$1URL* restituito nella risposta è valido per 15 minuti. Dopo questo lasso di tempo scadrà e, a quel punto, è necessario creare un processo di importazione degli utenti per ottenere un nuovo URL.

**Example risposta:**  

```
{
    "UserImportJob": {
        "Status": "Created",
        "SkippedUsers": 0,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl": "PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

#### Valori di stato per un processo di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-status-values-for-user-import-job"></a>

Nelle risposte ai comandi di importazione degli utenti, visualizzerai uno dei seguenti valori `Status`:
+ `Created`: Il processo è stato creato, ma non avviato.
+ `Pending`: Stato di transizione. Hai avviato il processo, ma questo non ha ancora iniziato a importare gli utenti;
+ `InProgress`: Il processo è stato avviato e gli utenti sono in fase di importazione.
+ `Stopping`: Hai interrotto il processo, ma questo non ha ancora cessato l'importazione degli utenti.
+ `Stopped`: Hai interrotto il processo e quest'ultimo ha cessato l'importazione degli utenti.
+ `Succeeded`: La fase ha avuto esito positivo.
+ `Failed`: Il processo è stato interrotto a causa di un errore.
+ `Expired`: Hai creato un processo, ma non lo hai avviato entro 24-48 ore. Tutti i dati associati al processo sono stati eliminati e il processo non può essere avviato.

#### Caricamento del file CSV
<a name="cognito-user-pools-using-import-tool-cli-uploading-csv-file"></a>

Utilizza il seguente comando `curl` per caricare il file CSV contenente i dati dell'utente nell'URL prefirmato che hai ottenuto dalla risposta del comando `create-user-import-job`.

```
curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
```

Nell'output di questo comando, cerca la frase `"We are completely uploaded and fine"`. Questa frase indica che il file è stato caricato correttamente. I tuoi pool di utenti non conservano le informazioni nei file di importazione dopo aver eseguito i processi di importazione. Una volta completati o scaduti, Amazon Cognito elimina il file CSV caricato.

#### Descrizione di un processo di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-describing-user-import-job"></a>

Per ottenere una descrizione del processo di importazione degli utenti, utilizza il seguente comando, dove si *USER\$1POOL\$1ID* trova l'ID del pool di utenti e *JOB\$1ID* l'ID del lavoro restituito quando hai creato il processo di importazione degli utenti. 

```
aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

**Example Risposta di esempio:**  

```
{
    "UserImportJob": {
        "Status": "Created",
        "SkippedUsers": 0,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl": "PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn":"ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

Nell'output di esempio precedente, *PRE\$1SIGNED\$1URL* è l'URL in cui hai caricato il file CSV. *ROLE\$1ARN*È l'ARN del ruolo CloudWatch Logs che hai ricevuto quando hai creato il ruolo.

#### Elenco dei tuoi processi di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-listing-user-import-jobs"></a>

Per elencare i tuoi processi di importazione degli utenti, utilizza il comando seguente:

```
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
```

**Example Risposta di esempio:**  

```
{
    "UserImportJobs": [
        {
            "Status": "Created",
            "SkippedUsers": 0,
            "UserPoolId": "USER_POOL_ID",
            "ImportedUsers": 0,
            "JobName": "JOB_NAME",
            "JobId": "JOB_ID",
            "PreSignedUrl":"PRE_SIGNED_URL",
            "CloudWatchLogsRoleArn":"ROLE_ARN",
            "FailedUsers": 0,
            "CreationDate": 1470957431.965
        },
        {
            "CompletionDate": 1470954227.701,
            "StartDate": 1470954226.086,
            "Status": "Failed",
            "UserPoolId": "USER_POOL_ID",
            "ImportedUsers": 0,
            "SkippedUsers": 0,
            "JobName": "JOB_NAME",
            "CompletionMessage": "Too many users have failed or been skipped during the import.",
            "JobId": "JOB_ID",
            "PreSignedUrl":"PRE_SIGNED_URL",
            "CloudWatchLogsRoleArn":"ROLE_ARN",
            "FailedUsers": 5,
            "CreationDate": 1470953929.313
        }
    ],
    "PaginationToken": "PAGINATION_TOKEN"
}
```

I processi sono elencati in ordine cronologico dall'ultimo creato al primo. La *PAGINATION\$1TOKEN* stringa dopo il secondo processo indica che ci sono risultati aggiuntivi per questo comando list. Per elencare i risultati aggiuntivi, utilizza l' opzione `--pagination-token` come segue:

```
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"
```

#### Avvio di un processo di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-starting-user-import-job"></a>

Per avviare un processo di importazione degli utenti, utilizza il comando seguente:

```
aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

Può essere attivo soltanto un processo di importazione alla volta per account.

**Example Risposta di esempio:**  

```
{
    "UserImportJob": {
        "Status": "Pending",
        "StartDate": 1470957851.483,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "SkippedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl":"PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

#### Arresto di un processo di importazione degli utenti
<a name="cognito-user-pools-using-import-tool-cli-stopping-user-import-job"></a>

Per arrestare un processo di importazione degli utenti mentre è in corso, utilizza il comando seguente. Una volta che hai interrotto il processo, non puoi riavviarlo.

```
aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

**Example Risposta di esempio:**  

```
{
    "UserImportJob": {
        "CompletionDate": 1470958050.571,
        "StartDate": 1470958047.797,
        "Status": "Stopped",
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "SkippedUsers": 0,
        "JobName": "JOB_NAME",
        "CompletionMessage": "The Import Job was stopped by the developer.",
        "JobId": "JOB_ID",
        "PreSignedUrl":"PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957972.387
    }
}
```

## Visualizzazione dei risultati di importazione del pool di utenti nella CloudWatch console
<a name="cognito-user-pools-using-import-tool-cloudwatch"></a>

Puoi visualizzare i risultati del tuo processo di importazione nella CloudWatch console Amazon.

**Topics**
+ [Visualizzazione dei risultati](#cognito-user-pools-using-import-tool-viewing-the-results)
+ [Interpretazione dei risultati](#cognito-user-pools-using-import-tool-interpreting-the-results)

### Visualizzazione dei risultati
<a name="cognito-user-pools-using-import-tool-viewing-the-results"></a>

I seguenti passaggi descrivono come visualizzare i risultati dell'importazione del bacino d'utenza.

**Visualizzazione dei risultati dell'importazione del bacino d'utenza**

1. Accedi Console di gestione AWS e apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Scegliere **Logs (Log)**.

1. Scegli il gruppo di log per i tuoi processi di importazione del bacino d'utenza. Il nome del gruppo di log è del tipo `/aws/cognito/userpools/USER_POOL_ID/USER_POOL_NAME`.

1. Scegli il log per il processo di importazione degli utenti che hai appena eseguito. Il nome del registro è nel formato*JOB\$1ID*/*JOB\$1NAME*. I risultati nel log si riferiscono ai i tuoi utenti per numero di linea. Nessun dato degli utenti viene scritto nel log. Per ogni utente, viene visualizzata una linea simile a quella riportata di seguito:
   + `[SUCCEEDED] Line Number 5956 - The import succeeded.`
   + `[SKIPPED] Line Number 5956 - The user already exists.`
   + `[FAILED] Line Number 5956 - The User Record does not set any of the auto verified attributes to true. (Example: email_verified to true).`

### Interpretazione dei risultati
<a name="cognito-user-pools-using-import-tool-interpreting-the-results"></a>

Lo stato degli utenti importati con successo è impostato su "PasswordReset».

Nei seguenti casi, l'utente non verrà importato, ma il processo di importazione proseguirà:
+ Nessun attributo verificato automaticamente è impostato su `true`.
+ I dati dell'utente non corrispondono allo schema;
+ Non è stato possibile importare l'utente a causa di un errore interno.

Nei seguenti casi, il processo di importazione fallirà:
+ Il ruolo Amazon CloudWatch Logs non può essere assunto, non ha la politica di accesso corretta o è stato eliminato.
+ Il bacino d'utenza è stato eliminato.
+ Amazon Cognito non è in grado di analizzare il file .csv.

## Necessità degli utenti importati di ripristinare le password
<a name="cognito-user-pools-using-import-tool-password-reset"></a>

Se il tuo pool di utenti offre solo l'accesso basato su password, gli utenti devono reimpostare le password dopo l'importazione. *La prima volta che accedono, possono inserire qualsiasi password.* Amazon Cognito richiede loro di inserire una nuova password nella risposta API alla richiesta di accesso della tua applicazione.

Se il tuo pool di utenti dispone di fattori di autenticazione senza password, Amazon Cognito utilizza per impostazione predefinita quelli per gli utenti importati. Non viene loro richiesta una nuova password e possono accedere immediatamente con un'e-mail o un SMS OTP senza password. Puoi anche richiedere agli utenti di impostare una password in modo che possano completare altri metodi di accesso come nome utente-password e passkey. Le seguenti condizioni si applicano all'accesso senza password dopo l'importazione dell'utente.

1. È necessario importare gli utenti con un attributo che corrisponda a un fattore di accesso senza password disponibile. Se gli utenti possono accedere con un indirizzo e-mail, è necessario importare un attributo. `email` Se si tratta di un numero di telefono, è necessario importare un `phone_number` attributo. Se entrambi, importa un valore per entrambi gli attributi.

1. Normalmente, gli utenti importano in uno `RESET_REQUIRED` stato in cui devono reimpostare la password. Se vengono importati con la possibilità di accedere con un fattore senza password, Amazon Cognito imposta il loro stato su. `CONFIRMED`

Per ulteriori informazioni sull'autenticazione senza password, incluso come configurarla e come costruire il flusso di autenticazione nella tua applicazione, consulta. [Autenticazione con pool di utenti Amazon Cognito](authentication.md)

La procedura seguente descrive l'esperienza utente in un meccanismo di accesso personalizzato con utenti locali `RESET_REQUIRED` dopo l'importazione di un file CSV. **Se i tuoi utenti accedono con accesso gestito, chiedi loro di selezionare la password dimenticata?** opzione, fornisci il codice contenuto nell'e-mail o nel messaggio di testo e imposta una password.

**Necessità degli utenti importati di ripristinare le password**

1. Nell'app, tenta di accedere silenziosamente per l'utente corrente con `InitiateAuth` utilizzando una password casuale.

1. Amazon Cognito restituisce `NotAuthorizedException` quando `PreventUserExistenceErrors` è abilitato. In caso contrario, restituisce `PasswordResetRequiredException`.

1. L'app effettua una richiesta API `ForgotPassword` e reimposta la password dell'utente.

   1. L'app invia il nome utente in una richiesta API `ForgotPassword`.

   1. Amazon Cognito invia un codice all'indirizzo e-mail o al numero di telefono verificato. La destinazione dipende dai valori forniti per `email_verified` e `phone_number_verified` nel file CSV. La risposta alla richiesta `ForgotPassword` indica la destinazione del codice.
**Nota**  
Il pool di utenti deve essere configurato per verificare le e-mail o i numeri di telefono. Per ulteriori informazioni, consulta [Registrazione e conferma degli account utente](signing-up-users-in-your-app.md).

   1. L'app visualizza un messaggio all'utente per verificare la posizione di invio del codice e richiede all'utente di inserire il codice e una nuova password.

   1. L'utente inserisce il codice e la nuova password nell'app;

   1. L'app invia il codice e la nuova password in una richiesta API `ConfirmForgotPassword`.

   1. L'app reindirizza l'utente per l'accesso.

# Utilizzo degli attributi utente
<a name="user-pool-settings-attributes"></a>

Gli attributi sono informazioni che ti aiutano a identificare i singoli utenti, ad esempio nome, indirizzo e-mail e numero di telefono. Un nuovo bacino d'utenza include un set di *attributi standard* di default. È inoltre possibile aggiungere attributi personalizzati alla definizione del pool di utenti in Console di gestione AWS. Questo argomento descrive questi attributi nel dettaglio e fornisce suggerimenti su come configurare il bacino d'utenza.

Non tutte le informazioni sugli utenti devono essere archiviate negli attributi. Ad esempio, i dati utente che cambiano spesso, come le statistiche di utilizzo o i punteggi dei giochi, devono essere conservati in un archivio dati separato, come Amazon Cognito Sync o Amazon DynamoDB.

Disinfetta gli input per i valori delle stringhe degli attributi utente prima di inviarli al tuo pool di utenti. Un metodo per analizzare i valori degli attributi utente proposti consiste nell'utilizzare un trigger Lambda come la [pre-registrazione](user-pool-lambda-pre-sign-up.md).

**Nota**  
In alcuni documenti e standard si fa riferimento agli attributi come *membri*.

**Topics**
+ [Standard attributes (Attributi standard)](#cognito-user-pools-standard-attributes)
+ [Nomi utente e nomi utente preferiti](#user-pool-settings-usernames)
+ [Personalizzazione degli attributi di accesso](#user-pool-settings-aliases)
+ [Attributi personalizzati](#user-pool-settings-custom-attributes)
+ [Autorizzazioni attributo e ambiti](#user-pool-settings-attribute-permissions-and-scopes)

## Standard attributes (Attributi standard)
<a name="cognito-user-pools-standard-attributes"></a>

Amazon Cognito assegna a tutti gli utenti un set di attributi standard in base alla [specifica OpenID Connect](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Per impostazione predefinita, i valori degli attributi standard e personalizzati possono essere costituiti da qualsiasi stringa composta da un massimo di 2.048 caratteri, ma alcuni valori di attributo hanno restrizioni di formato. 

Gli attributi standard sono:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`
+ `updated_at`
+ `address`
+ `email`
+ `phone_number`
+ `sub`

Ad eccezione di `sub`, per impostazione predefinita, gli attributi standard sono opzionali per tutti gli utenti. Per rendere obbligatorio un attributo, durante il processo di creazione del bacino d'utenza, spunta la casella di controllo **Required (obbligatorio)** accanto all'attributo. Amazon Cognito assegna un valore identificativo utente unico all'attributo `sub` di ciascun utente. È possibile verificare solo gli attributi **email** e **phone\$1number**.

[Gli attributi standard hanno proprietà predefinite che è possibile visualizzare nel `SchemaAttributes` parametro di una DescribeUserPool risposta API.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html#API_DescribeUserPool_ResponseSyntax) È possibile impostare valori personalizzati per queste proprietà degli attributi, come il tipo di dati, la mutabilità e i vincoli di lunghezza. [Per modificare le proprietà degli attributi standard, impostate i relativi valori personalizzati nel parametro Schema. CreateUserPool ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema) Lo schema è anche il luogo in cui si impostano gli attributi richiesti. Non puoi modificare le proprietà degli attributi standard quando crei pool di utenti nella console Amazon Cognito.

**Nota**  
 Quando contrassegni un attributo standard come **Required (Obbligatorio)**, un utente non può effettuare la registrazione, a meno che non fornisca un valore per l'attributo. Per creare utenti e non fornire valori per gli attributi obbligatori, gli amministratori possono utilizzare l'[AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API. Dopo aver creato il bacino d'utenza, non è più possibile cambiare un attributo da obbligatorio a non obbligatorio e viceversa.Dettagli degli attributi standard e restrizioni di formato

**birthdate**  
Il valore deve essere una data valida di 10 caratteri nel formato YYYY-MM-DD.

**e-mail**  
Utenti e amministratori possono verificare i valori dell'indirizzo e-mail.  
Un amministratore con Account AWS le autorizzazioni appropriate può modificare l'indirizzo e-mail dell'utente e contrassegnarlo come verificato. Contrassegna un indirizzo email come verificato con l'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API o il comando [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS Command Line Interface (AWS CLI). Con questo comando, l'amministratore può impostare l'attributo `email_verified` su `true`. Puoi anche modificare un utente nel menu **Utenti** della console Amazon Cognito per contrassegnare un indirizzo e-mail come verificato.  
Il valore deve essere una [stringa di indirizzo e-mail valida](https://datatracker.ietf.org/doc/html/rfc3696#section-3) conforme al formato e-mail standard con il simbolo @ e il dominio, lunga fino a 2048 caratteri.

**phone\$1number**  
Un utente deve fornire un numero di telefono se è attiva l'autenticazione a più fattori (MFA) con SMS. Per ulteriori informazioni, consulta [Aggiunta dell'autenticazione MFA a un bacino d'utenza](user-pool-settings-mfa.md).  
Utenti e amministratori possono verificare i valori del numero di telefono.  
Un amministratore con Account AWS le autorizzazioni appropriate può modificare il numero di telefono dell'utente e contrassegnarlo come verificato. Contrassegna un numero di telefono come verificato con l'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API o il [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS CLI comando. Con questo comando, l'amministratore può impostare l'attributo `phone_number_verified` su `true`. Puoi anche modificare un utente nel menu **Utenti** della console Amazon Cognito per contrassegnare un numero di telefono come verificato.  
I numeri di telefono devono attenersi alle seguenti regole di formattazione: devono iniziare con un segno più (**\$1**), seguito immediatamente dal codice del paese. Un numero di telefono può contenere solo il segno **\$1** e le cifre. Prima di inviare il valore al servizio, rimuovi dal numero di telefono qualsiasi altro carattere, come parentesi, spazi o trattini (**-**). Un numero di telefono degli Stati Uniti ad esempio, deve seguire questo formato: **\$114325551212**.

**preferred\$1username**  
È possibile selezionare `preferred_username` come obbligatorio o come alias, ma non entrambi. Se si `preferred_username` tratta di un alias, puoi effettuare una richiesta all'operazione [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API e aggiungere il valore dell'attributo dopo aver confermato l'utente.

**sub**  
Indicizza e cerca i tuoi utenti in base all'attributo `sub`. L'attributo `sub` è un identificativo utente unico all'interno di ciascun pool di utenti. Gli utenti possono modificare attributi come `phone_number` e `email`. L'attributo `sub` ha un valore fisso. Per ulteriori informazioni sull’esito di utenti, consultare [Gestione e ricerca degli account utente](how-to-manage-user-accounts.md).

### Visualizza gli attributi obbligatori
<a name="how-to-edit-standard-attributes"></a>

Utilizza la procedura seguente per visualizzare gli attributi obbligatori per un determinato bacino d'utenza.

**Nota**  
Non è possibile modificare gli attributi obbligatori dopo che il bacino d'utenza è stato creato.

**Visualizzare gli attributi obbligatori**

1. Vai ad [Amazon Cognito](https://console.aws.amazon.com/cognito/home) in. Console di gestione AWS Se la console te lo richiede, inserisci le tue credenziali. AWS 

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. **Scegli il menu di registrazione.**

1. Visualizza gli attributi obbligatori del bacino d'utenza nella sezione **Required attributes (Attributi obbligatori)**.

## Nomi utente e nomi utente preferiti
<a name="user-pool-settings-usernames"></a>

Il valore `username` è un attributo separato ed è diverso dall'attributo `name`. Ogni utente ha un attributo `username`. Amazon Cognito genera automaticamente un nome utente per gli utenti federati. È necessario fornire un attributo `username` per creare un utente locale nella directory Amazon Cognito. Dopo aver creato un utente, non puoi più modificare il valore dell'attributo `username`.

Gli sviluppatori possono utilizzare l'attributo `preferred_username` per fornire agli utenti un nome utente che possano modificare. Per ulteriori informazioni, consulta [Personalizzazione degli attributi di accesso](#user-pool-settings-aliases).

Se l'applicazione non richiede un nome utente, non è necessario chiedere agli utenti di fornirne uno. L'app è in grado di creare un nome utente univoco per gli utenti in background. Questa funzione è utile se, ad esempio, desideri che gli utenti si registrino e accedano con un indirizzo e-mail e una password. Per ulteriori informazioni, consulta [Personalizzazione degli attributi di accesso](#user-pool-settings-aliases).

Il `username` deve essere univoco all'interno di un bacino d'utenza. Un `username` può essere riutilizzato, ma solo dopo che è stato eliminato e non è più in uso. Per informazioni sui vincoli di stringa agli `username` attributi, consulta la proprietà *username* di una [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)richiesta API.

## Personalizzazione degli attributi di accesso
<a name="user-pool-settings-aliases"></a>

Quando crei un pool di utenti, puoi configurare *attributi del nome utente* se gli utenti devono essere in grado di effettuare la registrazione e l'accesso utilizzando un indirizzo e-mail o un numero di telefono come il rispettivo nome utente. In alternativa, è possibile configurare *attributi alias* per fornire agli utenti la possibilità di includere più attributi quando effettuano la registrazione e quindi l'accesso con un nome utente, un nome utente preferito, un indirizzo e-mail o un numero di telefono.

**Importante**  
Dopo aver creato il bacino d'utenza, non puoi più cambiare questa impostazione.

### Come scegliere tra attributi alias e attributi nome utente
<a name="user-pool-settings-aliases-settings"></a>


| Il tuo requisito | Attributi alias | Attributi nome utente | 
| --- |--- |--- |
| Gli utenti dispongono di più attributi di accesso | Sì¹ | No² | 
| Gli utenti devono verificare l'indirizzo e-mail o il numero di telefono prima di poter accedere con esso | Sì | No | 
| Registra gli utenti con indirizzi e-mail o numeri di telefono duplicati e previeni UsernameExistsException gli errori³ | Sì | No | 
| Può assegnare lo stesso valore di attributo dell'indirizzo e-mail o del numero di telefono a più di un utente | Sì⁴ | No | 

¹ Gli attributi di accesso disponibili sono nome utente, indirizzo e-mail, numero di telefono e nome utente preferito.

² Può accedere utilizzando l'indirizzo e-mail o il numero di telefono.

³ Il tuo pool di utenti non genera errori `UsernameExistsException` quando gli utenti si registrano con indirizzi e-mail o numeri di telefono potenzialmente duplicati, ma senza nome utente. Questo comportamento è indipendente da **Previeni errori di presenza degli utenti**, che si applica alle operazioni di accesso, ma non di registrazione.

⁴ Solo l'ultimo utente che ha verificato l'attributo può utilizzarlo per l'accesso.

#### Opzione 1: attributi di accesso multipli (attributi alias)
<a name="user-pool-settings-aliases-settings-option-1"></a>

Un attributo è un *alias* quando gli utenti hanno un nome utente ma possono anche accedere con quell'attributo. Configura gli alias quando desideri consentire agli utenti di scegliere tra il loro nome utente e altri valori di attributo nel campo nome utente del modulo di accesso. L'`username`attributo è un valore fisso che gli utenti non possono modificare. Se contrassegni un attributo come alias, gli utenti possono effettuare l'accesso usando l'attributo al posto del nome utente. Puoi contrassegnare come alias gli attributi dell'indirizzo e-mail, del numero di telefono e del nome utente preferito. Ad esempio, se contrassegni l'e-mail e il numero telefono come alias per un pool di utenti, gli utenti di quel pool di utenti possono effettuare l'accesso utilizzando il proprio nome utente, indirizzo e-mail o numero di telefono, insieme alla password.

Per scegliere gli attributi alias, seleziona **User name** (Nome utente) e almeno un'opzione di accesso aggiuntiva quando crei il pool di utenti.

**Nota**  
Se il bacino d'utenza è configurato per non applicare la distinzione tra maiuscole e minuscole, un utente può utilizzare lettere minuscole o maiuscole per registrarsi o accedere con l'alias. Per ulteriori informazioni, consulta il riferimento [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)all'*API dei pool di utenti di Amazon Cognito*.

Se selezioni l'indirizzo e-mail come alias, Amazon Cognito non accetta un nome utente corrispondente a un formato di indirizzo e-mail valido. Analogamente, se selezioni un numero di telefono come alias, Amazon Cognito non accetta per il pool di utenti un nome utente che corrisponde a un formato di numero di telefono valido.

**Nota**  
I valori alias devono essere univoci in un bacino d'utenza. Se configuri un alias per un indirizzo e-mail o un numero di telefono, il valore che fornisci può essere nello stato verificato in un solo account. Se durante la registrazione l'utente fornisce un indirizzo e-mail o un numero di telefono come valore alias e un altro utente ha già utilizzato quel valore alias, la registrazione viene completata. Tuttavia, quando un utente cerca di confermare l'account con l'indirizzo e-mail (o il numero di telefono) e immette il codice valido, Amazon Cognito restituisce un errore `AliasExistsException`. L'errore indica all'utente che un account con l'indirizzo e-mail (o il numero di telefono) specificato è già esistente. A questo punto, l'utente può abbandonare la creazione del nuovo account e tentare di ripristinare la password dell'account precedente. Se l'utente continua a creare il nuovo account, l'app deve chiamare l'API `ConfirmSignUp` con l'opzione `forceAliasCreation`. `ConfirmSignUp` con `forceAliasCreation` sposta l'alias dall'account precedente all'account appena creato e contrassegna l'attributo come non verificato nell'account precedente.

I numeri di telefono e gli indirizzi e-mail diventano alias attivi per un utente solo dopo che vengono verificati dall'utente. Ti consigliamo di scegliere la verifica automatica degli indirizzi e-mail e dei numeri di telefono se li utilizzi come alias.

Scegli gli attributi alias per evitare errori `UsernameExistsException` negli attributi dell'indirizzo e-mail e del numero di telefono quando gli utenti effettuano la registrazione.

Attiva l'attributo `preferred_username` in modo che l'utente possa modificare il nome utente che utilizza per accedere quando il valore dell'attributo `username` non cambia. Se desideri configurare questa esperienza utente, invia il nuovo valore `username` come `preferred_username` e scegli il `preferred_username` come alias. Gli utenti possono in questo modo effettuare l'accesso inserendo il nuovo valore. Se selezioni `preferred_username` come alias, gli utenti possono fornire il valore solo quando confermano l'account e non durante la registrazione.

Quando l'utente effettua la registrazione con un nome utente, puoi scegliere se può accedere con uno o più dei seguenti alias.
+ Un indirizzo e-mail verificato
+ Un numero di telefono verificato
+ Il nome utente preferito

Questi alias possono essere modificati dall'utente dopo che ha effettuato la registrazione.

**Importante**  
Se il tuo pool di utenti supporta l'accesso con alias e desideri autorizzare o cercare un utente, non identificarlo in base a nessuno dei suoi attributi di accesso. L'identificatore utente a valore fisso `sub` è l'unico indicatore coerente dell'identità dell'utente.

Includi i passaggi seguenti quando crei il bacino d'utenza in modo che gli utenti possano accedere con un alias.

------
#### [ Phone number or email address (console) ]

È necessario impostare l'indirizzo e-mail e il numero di telefono come attributi di alias quando si crea un pool di utenti.

**Per creare un pool di utenti con alias di nome utente nella console Amazon Cognito**

1. Passa ad [Amazon Cognito](https://console.aws.amazon.com/cognito/home) nella Console di gestione AWS. Se la console te lo richiede, inserisci le tue credenziali. AWS 

1. Crea un nuovo pool di utenti con il pulsante **Inizia** o **Crea pool di utenti**.

1. Scegli le impostazioni dell'applicazione in **Definisci la tua applicazione**.

1. **In **Configura le opzioni** in **Opzioni per gli identificatori di accesso**, seleziona la casella di controllo accanto a **Nome utente** e almeno una delle altre opzioni, **Email** e Numero di telefono.**

1. Scegli gli attributi dell'alias come Attributi **obbligatori per l'iscrizione.** Nel modulo di registrazione con accesso gestito, Amazon Cognito richiede ai nuovi utenti di fornire valori per gli attributi obbligatori.

1. In **Aggiungi un URL di ritorno, configura un URL** di callback dell'applicazione per il reindirizzamento dopo l'accesso gestito.

1. Scegli **Create** (Crea).

------
#### [ Phone number or email address (API/SDK) ]

Crea un nuovo pool di utenti con l'[CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)operazione API. Configura il `AliasAttributes` parametro come mostrato. Puoi rimuovere la `email` voce se desideri solo gli alias dei numeri di telefono o rimuovere la `phone_number` voce se desideri solo gli alias degli indirizzi e-mail.

```
"AliasAttributes": [
   "email",
   "phone_number"
],
```

------
#### [ Preferred username (API/SDK) ]

La console Amazon Cognito crea pool di utenti senza `preferred_username` alias. Per creare pool di utenti con un `preferred_username` alias, configura pool di utenti con richieste [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API in un SDK. AWS Per supportare la creazione di attributi di nome utente preferiti al momento dell'iscrizione, impostalo `preferred_username` come attributo obbligatorio. Nel modulo di registrazione con accesso gestito, Amazon Cognito richiede ai nuovi utenti di fornire valori per gli attributi obbligatori. *Puoi impostarlo* `preferred_username` come attributo obbligatorio nella console Amazon Cognito, ma ciò non lo rende disponibile come alias.

**Configura come alias**  
Configura `preferred_username` come alias nel `AliasAttributes` parametro di una `CreateUserPool` richiesta come mostrato. Rimuovi dall'elenco tutti i valori che non desideri utilizzare come attributi di alias.

```
"AliasAttributes": [
   "email",
   "phone_number",
   "preferred_username"
],
```

**Configura come richiesto**  
Nel modulo di registrazione con accesso gestito, Amazon Cognito richiede ai nuovi utenti di fornire valori per gli attributi obbligatori. Configura `preferred_username` come richiesto nel `SchemaAttributes` parametro di una richiesta. [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)

Per impostare il nome utente preferito come attributo obbligatorio, configuralo come mostrato. L'esempio seguente modifica lo schema predefinito di `preferred_username` per impostarlo come richiesto. Altri parametri dello schema come `AttributeDataType` (il valore predefinito è`string`) e `StringAttributeConstraints` (la lunghezza predefinita è compresa tra 1 e 99 caratteri) assumono valori predefiniti.

```
"Schema": [
   {
      "Name": "preferred_username",
      "Required": true
   }
]
```

------

#### Opzione 2: indirizzo e-mail o numero di telefono come attributo di accesso (attributi nome utente)
<a name="user-pool-settings-aliases-settings-option-2"></a>

Quando l'utente si registra con un indirizzo e-mail o un numero di telefono come nome utente, puoi scegliere se eseguire la registrazione solo con l'indirizzo e-mail, solo con il numero di telefono o con uno dei due a scelta. 

Per scegliere gli attributi del nome utente, non selezionare **Nome utente** come opzione di accesso quando crei il pool di utenti.

L'indirizzo e-mail o il numero di telefono devono essere univoci e non essere già in uso per un altro utente. Non è necessario che siano verificati. Dopo che l'utente ha effettuato la registrazione utilizzando un indirizzo e-mail o un numero di telefono, non può creare un nuovo account con lo stesso indirizzo e-mail o numero di telefono. L'utente può solo riutilizzare l'account esistente e reimpostare la password dell'account, se necessario. Tuttavia, può modificare l'indirizzo e-mail o il numero di telefono con un nuovo indirizzo e-mail o numero di telefono. Se l'indirizzo e-mail o il numero di telefono non sono già in uso diventano il nuovo nome utente.

Quando selezioni sia l'indirizzo email che il numero di telefono come attributi del nome utente, gli utenti possono accedere con l'uno o l'altro, anche se forniscono valori per entrambi gli attributi. Il nome utente di accesso si basa sul valore passato nel `Username` parametro di [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username).

**Nota**  
Quando un utente effettua la registrazione utilizzando un indirizzo e-mail come proprio nome utente, può sostituire il nome utente con un altro indirizzo e-mail, ma non con un numero di telefono. Allo stesso modo, se effettua la registrazione utilizzando un numero di telefono come proprio nome utente, può sostituire il nome utente con un altro numero di telefono, ma non con un indirizzo e-mail.

Utilizza i passaggi seguenti durante il processo di creazione del bacino d'utenza per configurare la registrazione e l'accesso con l'indirizzo e-mail o il numero di telefono.

------
#### [ Username attributes (console) ]

La procedura seguente crea un pool di utenti con gli attributi del nome utente dell'indirizzo e-mail o del numero di telefono. La differenza nel processo per gli attributi del nome utente nella console Amazon Cognito è che non si imposta anche **Username** come attributo di accesso.

**Per creare un pool di utenti con attributi di nome utente nella console Amazon Cognito**

1. Passa ad [Amazon Cognito](https://console.aws.amazon.com/cognito/home) nella Console di gestione AWS. Se la console te lo richiede, inserisci le tue credenziali. AWS 

1. Crea un nuovo pool di utenti con il pulsante **Inizia** o **Crea pool di utenti**.

1. Scegli le impostazioni dell'applicazione in **Definisci la tua applicazione**.

1. In **Configura le opzioni** in **Opzioni per gli identificatori di accesso**, seleziona gli attributi del nome utente: **e-mail**, **numero di telefono** o entrambi. Lascia il **nome utente deselezionato**.

1. Come procedura consigliata, seleziona gli attributi del nome utente come Attributi **obbligatori per l'iscrizione**. Nel modulo di registrazione con accesso gestito, Amazon Cognito richiede ai nuovi utenti di fornire valori per gli attributi obbligatori. Se non imposti gli attributi del nome utente come richiesto, Amazon Cognito non richiede ai nuovi utenti di fornire valori per loro. In questo scenario, devi configurare l'applicazione per raccogliere e inviare indirizzi e-mail o numeri di telefono per ogni utente prima che possa accedere.

1. In **Aggiungi un URL di ritorno**, configura un URL di callback dell'applicazione per il reindirizzamento dopo l'accesso gestito.

1. Scegli **Create** (Crea).

------
#### [ Username attributes (API/SDK) ]

In una [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)richiesta, configura il `UsernameAttributes` parametro come mostrato. Per consentire l'accesso solo con nomi utente contenenti indirizzi e-mail, specificate `email` alone in questo elenco. Per consentire l'accesso solo con nomi utente con numeri di telefono, specifica alone. `phone_number` Questo parametro sostituisce il nome utente come opzione di accesso.

```
"UsernameAttributes": [ 
   "email",
   "phone_number"
],
```

------

Quando configuri gli attributi del nome utente, puoi effettuare richieste [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API che inseriscono un indirizzo e-mail o un numero di telefono nel parametro. `username` Di seguito è riportato il comportamento dell'operazione dell'`SignUp`API del codice con gli attributi del nome utente.
+ Se la `username` stringa è in un formato di indirizzo e-mail valido, ad esempio`user@example.com`, il pool di utenti compila automaticamente l'`email`attributo dell'utente con il `username` valore.
+ Se la `username` stringa è in un formato numerico di telefono valido, ad esempio`+12065551212`, il pool di utenti inserisce automaticamente il `phone_number` valore nell'attributo dell'utente. `username`
+ Se la stringa `username` non è in un formato di indirizzo e-mail o numero di telefono, l'API `SignUp` restituisce un'eccezione.
+ Se la stringa `username` contiene un indirizzo e-mail o un numero di telefono già in uso, l'API `SignUp` restituisce un'eccezione.
+ L'`SignUp`API compila l'`username`attributo con un [UUID](cognito-terms.md#terms-uuid) per l'utente. Questo UUID ha lo stesso valore dell'attestazione `sub` nel token di identità dell'utente.

È possibile utilizzare un indirizzo e-mail o un numero di telefono al posto del nome utente in tutto APIs tranne che nell'operazione. [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Nelle richieste `ListUsers` API, puoi specificare un `Filter` di `email` o`phone_number`. Se si filtra per`username`, è necessario fornire il nome utente UUID, non l'indirizzo e-mail o il numero di telefono.

## Attributi personalizzati
<a name="user-pool-settings-custom-attributes"></a>

È possibile aggiungere fino a 50 attributi personalizzati al bacino d'utenza. Per gli attributi personalizzati, si può specificare una lunghezza minima e/o massima. Tuttavia, la lunghezza massima per qualsiasi attributo personalizzato non può superare i 2048 caratteri. Il nome di un attributo personalizzato deve corrispondere al modello di espressione regolare descritto nel `Name` parametro di. [SchemaAttributeType](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SchemaAttributeType.html)

**Ogni attributo personalizzato presenta le caratteristiche seguenti:**
+ È possibile definirlo come stringa, numero, booleano o `DateTime` oggetto. Amazon Cognito scrive i valori degli attributi personalizzati nel token ID solo come stringhe.
**Nota**  
Nella console Amazon Cognito, puoi aggiungere attributi personalizzati solo dei tipi di dati stringa e numero. Opzioni aggiuntive come i tipi di dati booleani e di `DateTime` attributi sono disponibili solo nella `SchemaAttributes` proprietà [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)e [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)nelle richieste API.
+ Non è possibile richiedere che gli utenti forniscano un valore per l'attributo.
+ Non è possibile eliminarlo o modificarlo dopo averlo aggiunto al bacino d'utenza.
+ La lunghezza in caratteri del nome dell'attributo rientra nel limite accettato da Amazon Cognito. Per ulteriori informazioni, consulta [Quote in Amazon Cognito](quotas.md).
+ Può essere *mutabile* o *immutabile*. Puoi scrivere un valore in un attributo immutabile solo quando crei un utente. Puoi modificare il valore di un attributo mutabile se il client dell'app dispone dell'autorizzazione di scrittura per l'attributo. Per ulteriori informazioni, consulta [Autorizzazioni attributo e ambiti](#user-pool-settings-attribute-permissions-and-scopes).

**Nota**  
Nel codice e nelle impostazioni delle regole per [Utilizzo del controllo degli accessi basato su ruoli](role-based-access-control.md), gli attributi personalizzati richiedono il prefisso `custom:` per distinguerli dagli attributi standard.

Puoi anche aggiungere *attributi di sviluppatore* quando crei pool di utenti, nella `SchemaAttributes` proprietà di. [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) Gli attributi di sviluppatore hanno un prefisso `dev:`. È possibile modificare gli attributi di sviluppatore di un utente solo con AWS credenziali. Gli attributi di sviluppatore sono una funzionalità legacy che è stata sostituita da Amazon Cognito con le autorizzazioni di lettura/scrittura del client dell'app.

Utilizza la procedura seguente per creare un attributo delle chiavi personalizzate.

**Aggiunta di un attributo personalizzato utilizzando la console**

1. Vai ad [Amazon Cognito](https://console.aws.amazon.com/cognito/home) in. Console di gestione AWS Se la console te lo richiede, inserisci le tue credenziali. AWS 

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. **Scegli il menu **di registrazione** e nella sezione **Attributi personalizzati, scegli Aggiungi attributi personalizzati**.**

1. Nella pagina **Add custom attributes (aggiungi attributi personalizzati)** fornisci i seguenti dettagli sul nuovo attributo:
   + Immetti un **nome**.
   + Seleziona un **tipo** tra **String** o **Number**.
   + Immetti un valore numerico o una lunghezza **minima** della stringa.
   + Immetti un valore numerico o una lunghezza **massima** della stringa.
   + Seleziona **Mutable** (Mutabile) se desideri concedere agli utenti l'autorizzazione per modificare il valore di un attributo personalizzato dopo l'impostazione del valore iniziale.

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

## Autorizzazioni attributo e ambiti
<a name="user-pool-settings-attribute-permissions-and-scopes"></a>

Per ogni client di app puoi impostare le autorizzazioni di lettura e scrittura di ogni attributo utente. In questo modo, puoi controllare l'accesso concesso a qualsiasi app per leggere e modificare ogni attributo che archivi per gli utenti. Ad esempio, puoi avere un attributo personalizzato che indica se un utente è un cliente pagante o meno. Le tue app possono essere in grado di vedere questo attributo, ma non di modificarlo direttamente. Al contrario, puoi aggiornare questo attributo utilizzando uno strumento di amministrazione o un processo in background. Puoi impostare le autorizzazioni per gli attributi utente con la console Amazon Cognito, l'API Amazon Cognito o AWS CLI. Di default, tutti i nuovi attributi personalizzati saranno disponibili solo dopo aver impostato le relative autorizzazioni di lettura e scrittura. Per impostazione predefinita, quando crei un nuovo client per l'app, concedi all'app le autorizzazioni di lettura e scrittura per tutti gli attributi standard e personalizzati. Per limitare l'app alla sola quantità di informazioni richiesta, assegna autorizzazioni specifiche agli attributi nella configurazione del client dell'app.

Come procedura ottimale, specifica le autorizzazioni di lettura e scrittura degli attributi quando crei un client per l'app. Concedi al client dell'app l'accesso al set minimo di attributi utente necessari per il funzionamento dell'applicazione.

**Nota**  
[DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html)restituisce valori solo per `ReadAttributes` e `WriteAttributes` quando configuri autorizzazioni del client dell'app diverse da quelle predefinite.

**Come aggiornare le autorizzazioni degli attributi (Console di gestione AWS)**

1. Vai ad [Amazon Cognito](https://console.aws.amazon.com/cognito/home) in. Console di gestione AWS Se la console te lo richiede, inserisci le tue credenziali. AWS 

1. Scegli **User Pools (bacini d'utenza)**.

1. Scegli un bacino d'utenza esistente dall'elenco.

1. Scegli il menu **App client** e scegli un app client dall'elenco.

1. Nella scheda **Autorizzazioni degli attributi**, scegli **Modifica**.

1. Nella pagina **Edit attribute read and write permissions (impostazione delle autorizzazioni di lettura e scrittura degli attributi)** configura le autorizzazioni di lettura e scrittura, quindi seleziona **Save changes (salva modifiche)**.

Ripeti questi passaggi per ogni client di app che usa l'attributo personalizzato.

Per ogni client dell'app, puoi contrassegnare gli attributi come leggibili o scrivibili. Questo vale sia per gli attributi standard sia per quelli personalizzati. La tua app può recuperare il valore degli attributi contrassegnati come leggibili e può impostare o modificare il valore degli attributi contrassegnati come scrivibili. Se la tua app tenta di impostare un valore per un attributo che non è autorizzata a scrivere, Amazon Cognito restituisce. `NotAuthorizedException` [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)le richieste includono un token di accesso con una dichiarazione del client dell'app; Amazon Cognito restituisce solo valori per gli attributi che il client dell'app è in grado di leggere. Il token ID dell'utente di un'app contiene solo le attestazioni che corrispondono agli attributi leggibili. Tutti i client dell'app possono scrivere gli attributi richiesti dal pool di utenti. Puoi impostare il valore di un attributo in una richiesta API del pool di utenti di Amazon Cognito solo quando fornisci anche un valore per gli attributi obbligatori che non hanno ancora un valore.

Gli attributi personalizzati dispongono di funzionalità distinte per le autorizzazioni di lettura e scrittura. È possibile creare questi attributi come mutabili o immutabili per il pool di utenti e impostarli come attributi di lettura o scrittura per qualsiasi client dell'app.

Un attributo personalizzato immutabile può essere aggiornato una sola volta, durante la creazione dell'utente. È possibile popolare un attributo immutabile con i seguenti metodi.
+ `SignUp`: un utente esegue la registrazione mediante un client dell'app che dispone dell'accesso in scrittura a un attributo personalizzato immutabile. Specifica un valore per tale attributo.
+ Accesso con un gestore dell'identità digitale di terze parti: un utente accede a un client dell'app con accesso in scrittura a un attributo personalizzato immutabile. La configurazione del pool di utenti per il relativo gestore dell'identità digitale prevede una regola per mappare una richiesta specificata a un attributo immutabile. Questo è possibile ma non pratico, perché l'utente potrà accedere una sola volta. In caso di tentativi di accesso successivi al primo, Amazon Cognito rifiuta il tentativo a causa della regola di mappatura su un attributo ora non scrivibile.
+ `AdminCreateUser`: viene fornito un valore per un attributo immutabile.

### Attribuisci autorizzazioni con ambiti
<a name="user-pool-settings-attribute-scope-based-permissions"></a>

Nei pool di utenti configurati con un AWS SDK o CDK, l'API REST o il AWS CLI, puoi configurare l'accesso in lettura o scrittura del client dell'app con l'ambito OIDC. `oidc:profile` `oidc:profile`Concede l'accesso in lettura o scrittura ai seguenti attributi standard:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`

Questo elenco contiene gli attributi standard OIDC meno`email`,, e `phone_number` `sub``address`, come definito nella [sezione 2.4 delle](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes) specifiche OIDC. Per informazioni sugli ambiti che puoi assegnare ai client dell'app, consulta [Ambiti, M2M e server di risorse](cognito-user-pools-define-resource-servers.md).

Per configurare il client dell'app in modo che scriva negli attributi inclusi nell'`oidc:profile`ambito, imposta il valore di [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-WriteAttributes)to`oidc:profile`, più qualsiasi altro attributo che desideri consentire all'applicazione di modificare, in una richiesta o API. [CreateUserPoolClient[UpdateUserPoolClient](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_CreateUserPoolClient.html) Analogamente, per concedere l'accesso in lettura a questi attributi, aggiungete `oidc:profile` il valore di [ReadAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ReadAttributes).

Puoi modificare le autorizzazioni e gli ambiti attributo dopo aver creato il bacino d'utenza.