

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan atribut pengguna
<a name="user-pool-settings-attributes"></a>

Atribut adalah potongan informasi yang membantu Anda mengidentifikasi pengguna individu, seperti nama, alamat email, dan nomor telepon. Sebuah kumpulan pengguna baru memiliki satu set *atribut standar* default. Anda juga dapat menambahkan atribut kustom ke definisi kumpulan pengguna Anda di Konsol Manajemen AWS. Topik ini menjelaskan atribut tersebut secara detail dan memberi Anda tips tentang cara menyiapkan kolam pengguna Anda.

Jangan menyimpan semua informasi tentang pengguna Anda dalam atribut. Misalnya, simpan data pengguna yang sering berubah, seperti statistik penggunaan atau skor game, di penyimpanan data terpisah, seperti Amazon Cognito Sync atau Amazon DynamoDB.

Sanitasi input untuk nilai string atribut pengguna sebelum Anda mengirimkannya ke kumpulan pengguna Anda. Salah satu metode untuk menganalisis nilai atribut pengguna yang diusulkan adalah dengan pemicu Lambda seperti [pra-pendaftaran](user-pool-lambda-pre-sign-up.md).

**catatan**  
Beberapa dokumentasi dan standar mengacu pada atribut sebagai *anggota*.

**Topics**
+ [Atribut standar](#cognito-user-pools-standard-attributes)
+ [Nama pengguna dan nama pengguna pilihan](#user-pool-settings-usernames)
+ [Menyesuaikan atribut masuk](#user-pool-settings-aliases)
+ [Atribut kustom](#user-pool-settings-custom-attributes)
+ [Izin dan cakupan atribut](#user-pool-settings-attribute-permissions-and-scopes)

## Atribut standar
<a name="cognito-user-pools-standard-attributes"></a>

Amazon Cognito menetapkan semua pengguna satu set atribut standar berdasarkan spesifikasi [OpenID](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) Connect. Secara default, nilai atribut standar dan kustom dapat berupa string apa pun dengan panjang hingga 2048 karakter, tetapi beberapa nilai atribut memiliki batasan format. 

Atribut standar adalah:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`
+ `updated_at`
+ `address`
+ `email`
+ `phone_number`
+ `sub`

Kecuali untuk`sub`, atribut standar opsional secara default untuk semua pengguna. Untuk membuat atribut diperlukan, selama proses pembuatan kumpulan pengguna, pilih kotak centang **Diperlukan** di sebelah atribut. Amazon Cognito memberikan nilai pengenal pengguna unik untuk setiap atribut pengguna. `sub` Hanya atribut **email** dan **phone\$1number** yang dapat diverifikasi.

Atribut standar memiliki properti yang telah ditentukan sebelumnya yang dapat Anda lihat dalam `SchemaAttributes` parameter [respons DescribeUserPool API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html#API_DescribeUserPool_ResponseSyntax). Anda dapat menetapkan nilai kustom untuk properti atribut ini, seperti tipe data, mutabilitas, dan batasan panjang. Untuk memodifikasi properti atribut standar, tetapkan nilai kustom mereka dalam [parameter CreateUserPool Skema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema). Skema ini juga tempat Anda mengatur atribut yang diperlukan. Anda tidak dapat mengubah properti atribut standar saat membuat kumpulan pengguna di konsol Amazon Cognito.

**catatan**  
 Ketika Anda menandai atribut standar sebagai **Diperlukan**, pengguna tidak dapat mendaftar kecuali mereka memberikan nilai untuk atribut tersebut. Untuk membuat pengguna dan tidak memberikan nilai untuk atribut yang diperlukan, administrator dapat menggunakan [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API. Setelah membuat kumpulan pengguna, Anda tidak dapat mengganti atribut antara required dan not required.Detail atribut standar dan batasan format

**tanggal lahir**  
Nilai harus berupa tanggal 10 karakter yang valid dalam format YYYY-MM-DD.

**Email**  
Pengguna dan administrator dapat memverifikasi nilai alamat email.  
Administrator dengan Akun AWS izin yang tepat dapat mengubah alamat email pengguna dan juga menandainya sebagai terverifikasi. Tandai alamat email sebagai diverifikasi dengan [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API atau perintah [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). Dengan perintah ini, administrator dapat mengubah `email_verified` atribut ke`true`. Anda juga dapat mengedit pengguna di menu **Pengguna** konsol Amazon Cognito untuk menandai alamat email sebagai terverifikasi.  
Nilai harus berupa [string alamat email yang valid](https://datatracker.ietf.org/doc/html/rfc3696#section-3) mengikuti format email standar dengan simbol @ dan domain, hingga 2048 karakter panjangnya.

**phone\$1number**  
Pengguna harus memberikan nomor telepon jika otentikasi multi-faktor SMS (MFA) aktif. Untuk informasi selengkapnya, lihat [Menambahkan MFA ke kumpulan pengguna](user-pool-settings-mfa.md).  
Pengguna dan administrator dapat memverifikasi nilai nomor telepon.  
Administrator dengan Akun AWS izin yang tepat dapat mengubah nomor telepon pengguna dan juga menandainya sebagai terverifikasi. Tandai nomor telepon sebagai diverifikasi dengan [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API atau [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS CLI perintah. Dengan perintah ini, administrator dapat mengubah `phone_number_verified` atribut ke`true`. Anda juga dapat mengedit pengguna di menu **Pengguna** konsol Amazon Cognito untuk menandai nomor telepon sebagai terverifikasi.  
Nomor telepon harus mengikuti aturan format ini: Nomor telepon harus dimulai dengan tanda plus (**\$1**), segera diikuti oleh kode negara. Nomor telepon hanya boleh berisi tanda **\$1** dan angka. Hapus karakter lain dari nomor telepon, seperti tanda kurung, spasi, atau tanda hubung (**-**) sebelum Anda mengirimkan nilai ke layanan. Misalnya, nomor telepon yang berbasis di Amerika Serikat harus mengikuti format ini**\$114325551212**:.

**preferred\$1username**  
Anda dapat memilih `preferred_username` sesuai kebutuhan atau sebagai alias, tetapi tidak keduanya. Jika alias `preferred_username` adalah, Anda dapat membuat permintaan ke operasi [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API dan menambahkan nilai atribut setelah Anda mengonfirmasi pengguna.

**sub**  
Indeks dan cari pengguna Anda berdasarkan `sub` atribut. `sub`Atribut adalah pengidentifikasi pengguna unik dalam setiap kumpulan pengguna. Pengguna dapat mengubah atribut seperti `phone_number` dan`email`. `sub`Atribut memiliki nilai tetap. Untuk informasi selengkapnya tentang menemukan pengguna, lihat[Mengelola dan mencari akun pengguna](how-to-manage-user-accounts.md).

### Lihat atribut yang diperlukan
<a name="how-to-edit-standard-attributes"></a>

Gunakan prosedur berikut untuk melihat atribut yang diperlukan untuk kumpulan pengguna tertentu.

**catatan**  
Anda tidak dapat mengubah atribut yang diperlukan setelah membuat kumpulan pengguna.

**Untuk melihat atribut yang diperlukan**

1. Pergi ke [Amazon Cognito](https://console.aws.amazon.com/cognito/home) di. Konsol Manajemen AWS Jika konsol meminta Anda, masukkan AWS kredensional Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Sign-up**.

1. Di bagian **Atribut wajib**, lihat atribut yang diperlukan dari kumpulan pengguna Anda.

## Nama pengguna dan nama pengguna pilihan
<a name="user-pool-settings-usernames"></a>

Nilai `username` adalah atribut terpisah dan tidak sama dengan atribut `name`. Setiap pengguna memiliki `username` atribut. Amazon Cognito secara otomatis menghasilkan nama pengguna untuk pengguna federasi. Anda harus memberikan `username` atribut untuk membuat pengguna lokal di direktori Amazon Cognito. Setelah Anda membuat pengguna, Anda tidak dapat mengubah nilai `username` atribut.

Pengembang dapat menggunakan `preferred_username` atribut untuk memberikan nama pengguna pengguna yang dapat mereka ubah. Untuk informasi selengkapnya, lihat [Menyesuaikan atribut masuk](#user-pool-settings-aliases).

Jika aplikasi Anda tidak memerlukan nama pengguna, Anda tidak perlu meminta pengguna untuk menyediakannya. Aplikasi Anda dapat membuat nama pengguna unik untuk pengguna di latar belakang. Ini dapat berguna jika Anda ingin pengguna mendaftar dan masuk dengan alamat email dan kata sandi. Untuk informasi selengkapnya, lihat [Menyesuaikan atribut masuk](#user-pool-settings-aliases).

`username` harus unik dalam kolam pengguna. A `username` dapat digunakan kembali, tetapi hanya setelah Anda menghapusnya dan tidak lagi digunakan. Untuk informasi tentang batasan string ke `username` atribut, lihat properti *nama pengguna permintaan* API. [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)

## Menyesuaikan atribut masuk
<a name="user-pool-settings-aliases"></a>

Saat membuat kumpulan pengguna, Anda dapat mengatur *atribut nama pengguna* jika ingin pengguna dapat mendaftar dan masuk dengan alamat email atau nomor telepon sebagai nama pengguna mereka. Atau, Anda dapat mengatur *atribut alias* untuk memberikan pilihan kepada pengguna Anda: mereka dapat menyertakan beberapa atribut saat mereka mendaftar, lalu masuk dengan nama pengguna, nama pengguna pilihan, alamat email, atau nomor telepon.

**penting**  
Setelah membuat kumpulan pengguna, Anda tidak dapat mengubah pengaturan ini.

### Cara memilih antara atribut alias dan atribut nama pengguna
<a name="user-pool-settings-aliases-settings"></a>


| Kebutuhan Anda | Atribut alias | Atribut nama pengguna | 
| --- |--- |--- |
| Pengguna memiliki beberapa atribut masuk | Ya¹ | Tidak² | 
| Pengguna harus memverifikasi alamat email atau nomor telepon sebelum mereka dapat masuk dengannya | Ya | Tidak | 
| Mendaftar pengguna dengan alamat email duplikat atau nomor telepon dan mencegah UsernameExistsException kesalahan³ | Ya | Tidak | 
| Dapat menetapkan nilai atribut alamat email atau nomor telepon yang sama ke lebih dari satu pengguna | Ya³/ | Tidak | 

¹ Atribut masuk yang tersedia adalah nama pengguna, alamat email, nomor telepon, dan nama pengguna pilihan.

² Dapat masuk dengan alamat email atau nomor telepon.

³ Kumpulan pengguna Anda tidak menghasilkan `UsernameExistsException` kesalahan saat pengguna mendaftar dengan alamat email atau nomor telepon yang berpotensi duplikat, tetapi tidak ada nama pengguna. Perilaku ini tidak tergantung pada **Mencegah kesalahan keberadaan nama pengguna**, yang berlaku untuk operasi masuk, tetapi tidak mendaftar.

Hanya pengguna terakhir yang telah memverifikasi atribut yang dapat masuk dengannya.

#### Opsi 1: Beberapa atribut masuk (atribut alias)
<a name="user-pool-settings-aliases-settings-option-1"></a>

Atribut adalah *alias* ketika pengguna memiliki nama pengguna tetapi juga dapat masuk dengan atribut itu. Siapkan alias saat Anda ingin mengizinkan pengguna memilih antara nama pengguna mereka dan nilai atribut lainnya di bidang nama pengguna formulir masuk Anda. `username`Atribut adalah nilai tetap yang tidak dapat diubah pengguna. Jika Anda menandai atribut sebagai alias, pengguna dapat masuk dengan atribut tersebut sebagai pengganti nama pengguna. Anda dapat menandai alamat email, nomor telepon, dan atribut nama pengguna pilihan sebagai alias. Misalnya, jika Anda memilih alamat email dan nomor telepon sebagai alias untuk kumpulan pengguna, pengguna di kumpulan pengguna tersebut dapat masuk dengan nama pengguna, alamat email, atau nomor telepon mereka, bersama dengan kata sandi mereka.

Untuk memilih atribut alias, pilih **Nama pengguna** dan setidaknya satu opsi masuk tambahan saat Anda membuat kumpulan pengguna.

**catatan**  
Saat Anda mengonfigurasi kumpulan pengguna agar tidak peka huruf besar/kecil, pengguna dapat menggunakan huruf kecil atau huruf besar untuk mendaftar atau masuk dengan alias mereka. Untuk informasi selengkapnya, lihat [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)di Referensi *API kumpulan pengguna Amazon Cognito*.

Jika Anda memilih alamat email sebagai alias, Amazon Cognito tidak menerima nama pengguna yang cocok dengan format alamat email yang valid. Demikian pula, jika Anda memilih nomor telepon sebagai alias, Amazon Cognito tidak menerima nama pengguna untuk kumpulan pengguna yang cocok dengan format nomor telepon yang valid.

**catatan**  
Nilai alias harus unik di kolam pengguna. Jika Anda mengonfigurasi alias untuk alamat email atau nomor telepon, nilai yang Anda berikan dapat berada dalam status terverifikasi hanya dalam satu akun. Selama pendaftaran, jika pengguna Anda memberikan alamat email atau nomor telepon sebagai nilai alias dan pengguna lain telah menggunakan nilai alias itu, pendaftaran berhasil. Namun, ketika pengguna mencoba mengonfirmasi akun dengan email ini (atau nomor telepon) dan memasukkan kode yang valid, Amazon Cognito mengembalikan kesalahan`AliasExistsException`. Kesalahan menunjukkan kepada pengguna bahwa akun dengan alamat email ini (atau nomor telepon) sudah ada. Pada titik ini, pengguna dapat meninggalkan upaya mereka untuk membuat akun baru dan sebagai gantinya mencoba mengatur ulang kata sandi untuk akun lama. Jika pengguna terus membuat akun baru, aplikasi Anda harus memanggil `ConfirmSignUp` API dengan `forceAliasCreation` opsi. `ConfirmSignUp`dengan `forceAliasCreation` memindahkan alias dari akun sebelumnya ke akun yang baru dibuat, dan menandai atribut yang tidak diverifikasi di akun sebelumnya.

Nomor telepon dan alamat email hanya menjadi alias aktif untuk pengguna setelah pengguna Anda memverifikasi nomor telepon dan alamat email. Kami menyarankan Anda memilih verifikasi otomatis alamat email dan nomor telepon jika Anda menggunakannya sebagai alias.

Pilih atribut alias untuk mencegah `UsernameExistsException` kesalahan pada atribut alamat email dan nomor telepon saat pengguna Anda mendaftar.

Aktifkan `preferred_username` atribut sehingga pengguna Anda dapat mengubah nama pengguna yang mereka gunakan untuk masuk sementara nilai `username` atributnya tidak berubah. Jika Anda ingin mengatur pengalaman pengguna ini, kirimkan `username` nilai baru sebagai `preferred_username` dan pilih `preferred_username` sebagai alias. Kemudian pengguna dapat masuk dengan nilai baru yang mereka masukkan. Jika Anda memilih `preferred_username` sebagai alias, pengguna Anda dapat memberikan nilai hanya ketika mereka mengkonfirmasi akun. Mereka tidak dapat memberikan nilai selama pendaftaran.

Saat pengguna mendaftar dengan nama pengguna, Anda dapat memilih apakah mereka dapat masuk dengan satu atau beberapa alias berikut.
+ Alamat email terverifikasi
+ Nomor telepon terverifikasi
+ Nama pengguna yang disukai

Setelah pengguna mendaftar, mereka dapat mengubah alias ini.

**penting**  
Jika kumpulan pengguna Anda mendukung login dengan alias dan Anda ingin mengotorisasi atau mencari pengguna, jangan mengidentifikasi pengguna Anda dengan atribut login mereka. Pengenal pengguna dengan nilai tetap `sub` adalah satu-satunya indikator yang konsisten dari identitas pengguna Anda.

Sertakan langkah-langkah berikut saat Anda membuat kumpulan pengguna sehingga pengguna dapat masuk dengan alias.

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

Anda harus menetapkan alamat email dan nomor telepon sebagai atribut alias saat membuat kumpulan pengguna.

**Untuk membuat kumpulan pengguna dengan alias nama pengguna di konsol Amazon Cognito**

1. Pergi ke [Amazon Cognito](https://console.aws.amazon.com/cognito/home) di. Konsol Manajemen AWS Jika konsol meminta Anda, masukkan AWS kredensional Anda.

1. Buat kumpulan pengguna baru dengan tombol **Mulai** atau **Buat kumpulan pengguna**.

1. Pilih pengaturan aplikasi di **Tentukan aplikasi Anda**.

1. **Di **Konfigurasi opsi** **di bawah Opsi untuk pengenal masuk**, pilih kotak centang di sebelah **Nama Pengguna** dan setidaknya salah satu opsi lainnya, **Email** dan nomor Telepon.**

1. Pilih atribut alias Anda sebagai **atribut Diperlukan untuk mendaftar**. Dalam formulir pendaftaran login terkelola, Amazon Cognito meminta pengguna baru untuk memberikan nilai untuk atribut yang diperlukan.

1. Di bawah **Tambahkan URL pengembalian**, siapkan URL panggilan balik aplikasi untuk pengalihan setelah login login terkelola.

1. Pilih **Buat**.

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

Buat kumpulan pengguna baru dengan operasi [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API. Konfigurasikan `AliasAttributes` parameter seperti yang ditunjukkan. Anda dapat menghapus `email` entri jika Anda hanya menginginkan alias nomor telepon, atau menghapus `phone_number` entri jika Anda hanya menginginkan alias alamat email.

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

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

Konsol Amazon Cognito membuat kumpulan pengguna tanpa `preferred_username` alias. Untuk membuat kumpulan pengguna dengan `preferred_username` alias, siapkan kumpulan pengguna dengan permintaan [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API di AWS SDK. Untuk mendukung pembuatan atribut nama pengguna pilihan saat mendaftar, tetapkan `preferred_username` sebagai atribut wajib. Dalam formulir pendaftaran login terkelola, Amazon Cognito meminta pengguna baru untuk memberikan nilai untuk atribut yang diperlukan. Anda *dapat* mengatur `preferred_username` sebagai atribut wajib di konsol Amazon Cognito, tetapi ini tidak membuatnya tersedia sebagai alias.

**Konfigurasikan sebagai alias**  
Konfigurasikan `preferred_username` sebagai alias dalam `AliasAttributes` parameter `CreateUserPool` permintaan seperti yang ditunjukkan. Hapus nilai apa pun yang tidak Anda inginkan sebagai atribut alias dari daftar.

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

**Konfigurasikan sesuai kebutuhan**  
Dalam formulir pendaftaran login terkelola, Amazon Cognito meminta pengguna baru untuk memberikan nilai untuk atribut yang diperlukan. Konfigurasikan `preferred_username` seperti yang diperlukan dalam `SchemaAttributes` parameter [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)permintaan.

Untuk menetapkan nama pengguna yang disukai sebagai atribut wajib, konfigurasikan seperti yang ditunjukkan. Contoh berikut memodifikasi skema default `preferred_username` untuk mengaturnya sesuai kebutuhan. Parameter skema lain seperti `AttributeDataType` (default ke`string`) dan `StringAttributeConstraints` (default ke 1-99 karakter panjangnya) mengasumsikan nilai default.

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

------

#### Opsi 2: Alamat email atau nomor telepon sebagai atribut masuk (atribut nama pengguna)
<a name="user-pool-settings-aliases-settings-option-2"></a>

Ketika pengguna mendaftar dengan alamat email atau nomor telepon sebagai nama pengguna mereka, Anda dapat memilih apakah mereka dapat mendaftar hanya dengan alamat email, hanya nomor telepon, atau salah satu. 

Untuk memilih atribut nama pengguna, jangan pilih **Nama pengguna** sebagai opsi masuk saat Anda membuat kumpulan pengguna.

Alamat email atau nomor telepon harus unik, dan itu harus belum digunakan oleh pengguna lain. Itu tidak harus diverifikasi. Setelah pengguna mendaftar dengan alamat email atau nomor telepon, pengguna tidak dapat membuat akun baru dengan alamat email atau nomor telepon yang sama. Pengguna hanya dapat menggunakan kembali akun yang ada dan mengatur ulang kata sandi akun, jika diperlukan. Namun, pengguna dapat mengubah alamat email atau nomor telepon menjadi alamat email atau nomor telepon baru. Jika alamat email atau nomor telepon belum digunakan, itu menjadi nama pengguna baru.

Saat Anda memilih alamat email dan nomor telepon sebagai atribut nama pengguna, pengguna dapat masuk dengan satu atau yang lain, meskipun mereka memberikan nilai untuk kedua atribut tersebut. Nama pengguna masuk didasarkan pada nilai yang Anda berikan dalam `Username` parameter. [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)

**catatan**  
Jika pengguna mendaftar dengan alamat email sebagai nama pengguna mereka, mereka dapat mengubah nama pengguna ke alamat email lain, tetapi mereka tidak dapat mengubahnya menjadi nomor telepon. Jika mereka mendaftar dengan nomor telepon, mereka dapat mengubah nama pengguna ke nomor telepon lain, tetapi mereka tidak dapat mengubahnya menjadi alamat email.

Gunakan langkah-langkah berikut selama proses pembuatan kumpulan pengguna untuk mengatur pendaftaran dan masuk dengan alamat email atau nomor telepon.

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

Prosedur berikut membuat kumpulan pengguna dengan alamat email atau atribut nama pengguna nomor telepon. Perbedaan dalam proses untuk atribut nama pengguna di konsol Amazon Cognito adalah Anda juga tidak menyetel **Nama Pengguna** sebagai atribut login.

**Untuk membuat kumpulan pengguna dengan atribut nama pengguna di konsol Amazon Cognito**

1. Pergi ke [Amazon Cognito](https://console.aws.amazon.com/cognito/home) di. Konsol Manajemen AWS Jika konsol meminta Anda, masukkan AWS kredensional Anda.

1. Buat kumpulan pengguna baru dengan tombol **Mulai** atau **Buat kumpulan pengguna**.

1. Pilih pengaturan aplikasi di **Tentukan aplikasi Anda**.

1. Di **Konfigurasi opsi** di bawah **Opsi untuk pengenal masuk**, pilih atribut nama pengguna Anda: **Email**, **Nomor telepon**, atau keduanya. Biarkan **Nama Pengguna** tidak dicentang.

1. Sebagai praktik terbaik, pilih atribut nama pengguna Anda sebagai **atribut Diperlukan untuk mendaftar**. Dalam formulir pendaftaran login terkelola, Amazon Cognito meminta pengguna baru untuk memberikan nilai untuk atribut yang diperlukan. Jika Anda tidak menyetel atribut nama pengguna sesuai kebutuhan, Amazon Cognito tidak meminta pengguna baru untuk memberikan nilai bagi mereka. Dalam skenario itu, Anda harus mengonfigurasi aplikasi Anda untuk mengumpulkan dan mengirimkan alamat email atau nomor telepon untuk setiap pengguna sebelum mereka dapat masuk.

1. Di bawah **Tambahkan URL pengembalian**, siapkan URL panggilan balik aplikasi untuk pengalihan setelah login login terkelola.

1. Pilih **Buat**.

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

Dalam [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)permintaan, konfigurasikan `UsernameAttributes` parameter seperti yang ditunjukkan. Untuk mengizinkan login hanya dengan nama pengguna alamat email, tentukan `email` sendiri dalam daftar ini. Untuk mengizinkan login hanya dengan nama pengguna nomor telepon, tentukan sendiri. `phone_number` Parameter ini mengganti nama pengguna sebagai opsi masuk.

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

------

Saat mengonfigurasi atribut nama pengguna, Anda dapat membuat permintaan [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API yang meneruskan alamat email atau nomor telepon dalam `username` parameter. Berikut ini adalah perilaku operasi `SignUp` API kode dengan atribut nama pengguna.
+ Jika `username` string dalam format alamat email yang valid`user@example.com`, misalnya, kumpulan pengguna secara otomatis mengisi `email` atribut pengguna dengan `username` nilai.
+ Jika `username` string dalam format nomor telepon yang valid, misalnya`+12065551212`, kumpulan pengguna secara otomatis mengisi `phone_number` atribut pengguna dengan `username` nilainya.
+ Jika format `username` string tidak dalam alamat email atau format nomor telepon, `SignUp` API akan mengembalikan pengecualian.
+ Jika `username` string berisi alamat email atau nomor telepon yang sudah digunakan, `SignUp` API akan mengembalikan pengecualian.
+ `SignUp`API mengisi `username` atribut dengan [UUID](cognito-terms.md#terms-uuid) untuk pengguna Anda. UUID ini memiliki nilai yang sama dengan klaim `sub` dalam token identitas pengguna.

Anda dapat menggunakan alamat email atau nomor telepon sebagai pengganti nama pengguna di semua APIs kecuali [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html)operasi. Dalam permintaan `ListUsers` API, Anda dapat menentukan `Filter` dari `email` atau`phone_number`. Jika Anda memfilter`username`, Anda harus memberikan nama pengguna UUID, bukan alamat email atau nomor telepon.

## Atribut kustom
<a name="user-pool-settings-custom-attributes"></a>

Anda dapat menambahkan hingga 50 atribut kustom ke kumpulan pengguna Anda. Anda dapat menentukan panjang minimum dan/atau maksimum untuk atribut kustom. Namun, panjang maksimum untuk setiap atribut kustom tidak boleh lebih dari 2048 karakter. Nama atribut kustom harus sesuai dengan pola ekspresi reguler yang dijelaskan dalam `Name` parameter [SchemaAttributeType](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SchemaAttributeType.html).

**Setiap atribut kustom memiliki karakteristik sebagai berikut:**
+ Anda dapat mendefinisikannya sebagai string, angka, boolean, atau `DateTime` objek. Amazon Cognito menulis nilai atribut khusus ke token ID hanya sebagai string.
**catatan**  
Di konsol Amazon Cognito, Anda hanya dapat menambahkan atribut khusus dari tipe data string dan nomor. Opsi tambahan seperti boolean dan tipe data `DateTime` atribut hanya tersedia di `SchemaAttributes` properti [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)dan permintaan [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.
+ Anda tidak dapat meminta pengguna memberikan nilai untuk atribut tersebut.
+ Anda tidak dapat menghapus atau mengubahnya setelah Anda menambahkannya ke kumpulan pengguna.
+ Panjang karakter dari nama atribut berada dalam batas yang diterima Amazon Cognito. Untuk informasi selengkapnya, lihat [Kuota di Amazon Cognito](quotas.md).
+ Itu bisa *berubah atau *tidak* berubah*. Anda hanya dapat menulis nilai ke atribut yang tidak dapat diubah saat Anda membuat pengguna. Anda dapat mengubah nilai atribut yang dapat berubah jika klien aplikasi Anda memiliki izin tulis ke atribut tersebut. Untuk informasi selengkapnya, lihat [Izin dan cakupan atribut](#user-pool-settings-attribute-permissions-and-scopes).

**catatan**  
Dalam kode Anda, dan dalam pengaturan aturan untuk[Menggunakan kontrol akses berbasis peran](role-based-access-control.md), atribut khusus memerlukan `custom:` awalan untuk membedakannya dari atribut standar.

Anda juga dapat menambahkan *atribut pengembang* saat membuat kumpulan pengguna, di `SchemaAttributes` properti [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html). Atribut pengembang memiliki `dev:` awalan. Anda hanya dapat memodifikasi atribut pengembang pengguna dengan AWS kredensional. Atribut pengembang adalah fitur lama yang diganti Amazon Cognito dengan izin baca-tulis klien aplikasi.

Gunakan prosedur berikut untuk membuat atribut kustom baru.

**Untuk menambahkan atribut kustom menggunakan konsol**

1. Pergi ke [Amazon Cognito](https://console.aws.amazon.com/cognito/home) di. Konsol Manajemen AWS Jika konsol meminta Anda, masukkan AWS kredensional Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Sign-up**, dan di bagian **Atribut kustom**, pilih **Tambahkan atribut khusus**.

1. Pada halaman **Tambahkan atribut kustom**, berikan detail berikut tentang atribut baru:
   + Masukkan **Nama**.
   + Pilih **Jenis** **String** atau **Angka**.
   + Masukkan panjang string **Min** atau nilai angka.
   + Masukkan panjang string **Max** atau nilai angka.
   + Pilih **Mutable** jika Anda ingin memberikan izin kepada pengguna untuk mengubah nilai atribut kustom setelah mereka menetapkan nilai awal.

1. Pilih **Simpan perubahan**.

## Izin dan cakupan atribut
<a name="user-pool-settings-attribute-permissions-and-scopes"></a>

Untuk setiap klien aplikasi, Anda dapat mengatur izin baca dan tulis untuk setiap atribut pengguna. Dengan cara ini, Anda dapat mengontrol akses yang dimiliki aplikasi apa pun untuk membaca dan memodifikasi setiap atribut yang Anda simpan untuk pengguna Anda. Misalnya, Anda mungkin memiliki atribut kustom yang menunjukkan apakah pengguna adalah pelanggan yang membayar atau bukan. Aplikasi Anda mungkin dapat melihat atribut ini tetapi tidak mengubahnya secara langsung. Sebaliknya, Anda akan memperbarui atribut ini menggunakan alat administratif atau proses latar belakang. Anda dapat menyetel izin untuk atribut pengguna dari konsol Amazon Cognito, Amazon Cognito API, atau. AWS CLI Secara default, atribut kustom baru tidak tersedia sampai Anda menetapkan izin baca dan tulis untuk mereka. Secara default, saat membuat klien aplikasi baru, Anda memberikan izin baca dan tulis aplikasi untuk semua atribut standar dan kustom. Untuk membatasi aplikasi Anda hanya pada jumlah informasi yang diperlukan, tetapkan izin khusus ke atribut dalam konfigurasi klien aplikasi Anda.

Sebagai praktik terbaik, tentukan izin baca dan tulis atribut saat Anda membuat klien aplikasi. Berikan akses klien aplikasi Anda ke set minimum atribut pengguna yang Anda perlukan untuk pengoperasian aplikasi Anda.

**catatan**  
[DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html)hanya mengembalikan nilai untuk `ReadAttributes` dan `WriteAttributes` saat Anda mengonfigurasi izin klien aplikasi selain default.

**Untuk memperbarui izin atribut ()Konsol Manajemen AWS**

1. Pergi ke [Amazon Cognito](https://console.aws.amazon.com/cognito/home) di. Konsol Manajemen AWS Jika konsol meminta Anda, masukkan AWS kredensional Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Klien aplikasi** dan pilih klien aplikasi dari daftar.

1. Di tab **Izin atribut**, pilih **Edit**.

1. Pada halaman **izin baca dan tulis atribut Edit, konfigurasikan izin** baca dan tulis Anda, lalu pilih **Simpan** perubahan.

Ulangi langkah-langkah ini untuk setiap klien aplikasi yang menggunakan atribut kustom.

Untuk setiap klien aplikasi, Anda dapat menandai atribut sebagai dapat dibaca atau ditulis. Ini berlaku untuk atribut standar dan kustom. Aplikasi Anda dapat mengambil nilai atribut yang Anda tandai sebagai dapat dibaca, dan dapat menetapkan atau mengubah nilai atribut yang Anda tandai sebagai dapat ditulis. Jika aplikasi Anda mencoba menetapkan nilai untuk atribut yang tidak diizinkan untuk ditulis, Amazon Cognito akan kembali. `NotAuthorizedException` [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)permintaan menyertakan token akses dengan klaim klien aplikasi; Amazon Cognito hanya mengembalikan nilai untuk atribut yang dapat dibaca klien aplikasi Anda. Token ID pengguna Anda dari aplikasi hanya berisi klaim yang sesuai dengan atribut yang dapat dibaca. Semua klien aplikasi dapat menulis atribut yang diperlukan kumpulan pengguna. Anda hanya dapat menyetel nilai atribut dalam permintaan API kumpulan pengguna Amazon Cognito jika Anda juga memberikan nilai untuk atribut wajib yang belum memiliki nilai.

Atribut khusus memiliki fitur berbeda untuk izin baca dan tulis. Anda dapat membuatnya sebagai mutable atau immutable untuk kumpulan pengguna, dan Anda dapat mengaturnya sebagai atribut baca atau tulis untuk klien aplikasi apa pun.

Atribut kustom yang tidak dapat diubah dapat diperbarui sekali, selama pembuatan pengguna. Anda dapat mengisi atribut yang tidak dapat diubah dengan metode berikut.
+ `SignUp`: Pengguna mendaftar dengan klien aplikasi yang memiliki akses tulis ke atribut kustom yang tidak dapat diubah. Mereka memberikan nilai untuk atribut itu.
+ Masuk dengan idP pihak ketiga: Pengguna masuk ke klien aplikasi yang memiliki akses tulis ke atribut kustom yang tidak dapat diubah. Konfigurasi kumpulan pengguna Anda untuk idP mereka memiliki aturan untuk memetakan klaim yang diberikan ke atribut yang tidak dapat diubah. Ini mungkin tetapi tidak praktis, karena pengguna hanya akan dapat masuk satu kali. Pada upaya masuk setelah yang pertama, Amazon Cognito menolak upaya tersebut karena aturan pemetaan ke atribut yang sekarang tidak dapat ditulis.
+ `AdminCreateUser`: Anda memberikan nilai untuk atribut yang tidak dapat diubah.

### Izin atribut dengan cakupan
<a name="user-pool-settings-attribute-scope-based-permissions"></a>

Di kumpulan pengguna yang dikonfigurasi dengan AWS SDK atau CDK, REST API, atau AWS CLI, Anda dapat mengonfigurasi akses baca atau tulis klien aplikasi dengan cakupan OIDC. `oidc:profile` `oidc:profile`Hibah membaca atau menulis akses ke atribut standar berikut:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`

Daftar ini adalah atribut standar OIDC minus`email`,,, dan `phone_number` `sub``address`, sebagaimana didefinisikan dalam [bagian 2.4 dari spesifikasi OIDC](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Untuk informasi tentang cakupan yang dapat Anda tetapkan ke klien aplikasi, lihat. [Lingkup, M2M, dan server sumber daya](cognito-user-pools-define-resource-servers.md)

Untuk mengonfigurasi klien aplikasi agar menulis ke atribut di bawah `oidc:profile` cakupan, tetapkan nilai [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-WriteAttributes)ke`oidc:profile`, ditambah atribut lain yang ingin Anda izinkan untuk dimodifikasi aplikasi, dalam permintaan [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)atau [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)API. Demikian pula, untuk memberikan akses baca ke atribut ini, tambahkan `oidc:profile` nilai [ReadAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ReadAttributes).

Anda dapat mengubah izin dan cakupan atribut setelah Anda telah membuat kolam pengguna Anda.