

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

# Utilizzo 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.