

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

# Mengelola pengguna di kumpulan pengguna Anda
<a name="managing-users"></a>

Setelah membuat kumpulan pengguna, Anda dapat membuat, mengonfirmasi, dan mengelola akun pengguna. Dengan grup kolam pengguna Amazon Cognito Anda dapat mengelola pengguna Anda dan akses mereka ke sumber daya dengan memetakan peran IAM ke grup.

Mengelola pengguna di kumpulan pengguna Amazon Cognito Anda melibatkan berbagai opsi konfigurasi dan tugas administratif. Kumpulan pengguna dapat menskalakan jutaan pengguna. Direktori pengguna skala ini membutuhkan alat administratif yang dapat diskalakan dan berulang. Anda mungkin ingin membuat banyak profil pengguna, mengelola pengguna yang tidak aktif, membuat laporan tata kelola dan kepatuhan, atau menyiapkan alat layanan mandiri tempat pengguna melakukan sebagian besar pekerjaan. Setelah membuat kumpulan pengguna, Anda dapat mengontrol cara pengguna mendaftar dan mengonfirmasi akun mereka, termasuk mewajibkan verifikasi email atau nomor telepon. Administrator juga dapat membuat akun pengguna secara langsung dan menyesuaikan pesan selamat datang dan persyaratan kata sandi.

Kumpulan pengguna memiliki grup pengguna, tempat Anda dapat mengelola akses ke sumber daya berdasarkan keanggotaan grup pengguna. Anda dapat menetapkan peran IAM ke grup ini untuk mengelola akses Layanan AWS dengan kumpulan identitas. Keanggotaan grup pengguna hadir dalam ID dan token akses. Dengan informasi ini, Anda dapat membuat keputusan kontrol akses saat runtime di aplikasi Anda atau dengan mesin kebijakan seperti Izin Terverifikasi Amazon.

Kumpulan pengguna sering memiliki banyak pengguna. Anda akan sering menemukan diri Anda mencari dan memperbarui akun pengguna. Konsol Amazon Cognito dan API mendukung kueri pengguna berdasarkan atribut standar seperti nama pengguna, email, dan nomor telepon. Administrator juga dapat mengatur ulang kata sandi, menonaktifkan akun, dan melihat riwayat peristiwa pengguna.

Untuk memigrasi data pengguna yang ada, Amazon Cognito memiliki opsi untuk mengimpor pengguna dari file CSV dan menggunakan pemicu [Lambda](user-pool-lambda-migrate-user.md) untuk memigrasikan pengguna secara otomatis saat pertama kali masuk. Opsi ini mendukung transisi pengguna dari direktori pengguna lain ke kumpulan pengguna Anda.

Anda dapat menggunakan fitur pengelolaan pengguna di kumpulan pengguna untuk memiliki kontrol halus atas siklus hidup pengguna dan pengalaman otentikasi. Kombinasi pendaftaran layanan mandiri, akun yang dibuat admin, grup, dan alat migrasi membuat kumpulan pengguna Amazon Cognito menjadi direktori pengguna yang fleksibel.

**Topics**
+ [Mengkonfigurasi kebijakan untuk pembuatan pengguna](user-pool-settings-admin-create-user-policy.md)
+ [Mendaftar dan mengonfirmasi akun pengguna](signing-up-users-in-your-app.md)
+ [Membuat akun pengguna sebagai administrator](how-to-create-user-accounts.md)
+ [Menambahkan grup ke kumpulan pengguna](cognito-user-pools-user-groups.md)
+ [Mengelola dan mencari akun pengguna](how-to-manage-user-accounts.md)
+ [Kata sandi, pemulihan akun, dan kebijakan kata sandi](managing-users-passwords.md)
+ [Mengimpor pengguna ke kumpulan pengguna](cognito-user-pools-import-users.md)
+ [Bekerja dengan atribut pengguna](user-pool-settings-attributes.md)

# Mengkonfigurasi kebijakan untuk pembuatan pengguna
<a name="user-pool-settings-admin-create-user-policy"></a>

Kumpulan pengguna Anda dapat mengizinkan pengguna untuk mendaftar, atau Anda dapat membuatnya sebagai administrator. Anda juga dapat mengontrol seberapa banyak proses verifikasi dan konfirmasi setelah pendaftaran berada di tangan pengguna Anda. Misalnya, Anda mungkin ingin meninjau pendaftaran dan menerimanya berdasarkan proses validasi eksternal. Konfigurasi ini, atau *admin membuat kebijakan pengguna*, juga menetapkan jumlah waktu sebelum pengguna tidak dapat lagi mengonfirmasi akun penggunanya.

Amazon Cognito dapat melayani kebutuhan pelanggan publik Anda sebagai platform identitas pelanggan dan manajemen akses (CIAM) untuk perangkat lunak Anda. Kumpulan pengguna yang menerima pendaftaran dan memiliki klien aplikasi, dengan atau tanpa login terkelola, membuat profil pengguna untuk siapa pun di internet yang mengetahui ID klien aplikasi Anda yang dapat ditemukan secara publik dan permintaan untuk mendaftar. Profil pengguna yang terdaftar dapat menerima akses dan token identitas dan dapat mengakses sumber daya yang telah Anda otorisasi untuk aplikasi Anda. Sebelum mengaktifkan pendaftaran di kumpulan pengguna, tinjau opsi dan pastikan konfigurasi sesuai dengan standar keamanan. Set **Aktifkan pendaftaran mandiri** dan`AllowAdminCreateUserOnly`, dijelaskan dalam prosedur berikut, dengan hati-hati.

------
#### [ Konsol Manajemen AWS ]

Menu **Pendaftaran** kumpulan pengguna Anda berisi beberapa pengaturan untuk pendaftaran dan pembuatan administratif pengguna di kumpulan pengguna Anda.

**Untuk mengonfigurasi pengalaman pendaftaran**

1. Dalam **verifikasi dan konfirmasi yang dibantu Cognito, pilih apakah Anda ingin Izinkan** **Cognito mengirim pesan secara otomatis untuk memverifikasi** dan mengonfirmasi. Dengan pengaturan ini diaktifkan, Amazon Cognito mengirimkan email atau pesan SMS ke pengguna baru dengan kode yang harus mereka tunjukkan ke kumpulan pengguna Anda. Ini mengonfirmasi kepemilikan mereka atas alamat email atau nomor telepon, menyetel atribut yang setara sebagai terverifikasi dan mengonfirmasi akun pengguna untuk masuk. **Atribut untuk memverifikasi** bahwa Anda memilih menentukan metode pengiriman dan tujuan pesan verifikasi.

1. **Memverifikasi perubahan atribut** tidak signifikan saat Anda membuat pengguna, tetapi terkait dengan verifikasi atribut. Anda dapat mengizinkan pengguna yang telah mengubah tetapi belum memverifikasi [atribut login](user-pool-settings-attributes.md#user-pool-settings-aliases.title) mereka untuk terus masuk baik dengan nilai atribut baru atau dengan aslinya. Untuk informasi selengkapnya, lihat [Memverifikasi kapan pengguna mengubah email atau nomor telepon mereka](signing-up-users-in-your-app.md#verifying-when-users-change-their-email-or-phone-number).

1. Atribut **wajib menampilkan atribut** yang harus diberikan nilai sebelum pengguna dapat mendaftar atau Anda dapat membuat pengguna. Anda hanya dapat mengatur atribut yang diperlukan saat membuat kumpulan pengguna.

1. **Atribut khusus** penting untuk proses pembuatan dan pendaftaran pengguna karena Anda hanya dapat menetapkan nilai untuk atribut kustom yang tidak *dapat diubah* saat pertama kali membuat pengguna. Untuk informasi selengkapnya tentang atribut kustom, lihat[Atribut kustom](user-pool-settings-attributes.md#user-pool-settings-custom-attributes).

1. [Dalam **Pendaftaran layanan mandiri**, pilih **Aktifkan pendaftaran mandiri** jika Anda ingin pengguna dapat membuat akun baru dengan API yang tidak diautentikasi.](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html#user-pool-apis-auth-unauth) `SignUp` Jika menonaktifkan pendaftaran mandiri, Anda hanya dapat membuat pengguna baru sebagai administrator, di konsol Amazon Cognito, atau [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)dengan permintaan API. Di kumpulan pengguna di mana pendaftaran mandiri tidak aktif, permintaan [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API kembali `NotAuthorizedException` dan login terkelola tidak menampilkan tautan **Daftar**.

Untuk kumpulan pengguna tempat Anda berencana membuat pengguna sebagai administrator, Anda dapat mengonfigurasi durasi kata sandi sementara mereka dalam pengaturan di menu **Metode otentikasi** di bawah **Kata sandi sementara yang ditetapkan oleh administrator kedaluwarsa**.

Elemen penting lainnya dari penciptaan pengguna sebagai administrator adalah pesan undangan. Saat Anda membuat pengguna baru, Amazon Cognito mengirimi mereka pesan dengan tautan ke aplikasi Anda sehingga mereka dapat masuk untuk pertama kalinya. Sesuaikan templat pesan ini di menu **Metode otentikasi** di bawah **Templat pesan**.

Anda dapat mengonfigurasi [klien aplikasi rahasia](user-pool-settings-client-apps.md#user-pool-settings-client-app-client-types.title), biasanya aplikasi web, dengan rahasia klien yang mencegah pendaftaran tanpa rahasia klien aplikasi. Sebagai praktik keamanan terbaik, jangan mendistribusikan rahasia klien aplikasi di klien aplikasi publik, biasanya aplikasi seluler. Anda dapat membuat klien aplikasi dengan rahasia klien di menu **Klien aplikasi** di konsol Amazon Cognito.

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

Anda dapat mengatur parameter untuk pembuatan pengguna secara terprogram di kumpulan pengguna dalam permintaan [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)atau [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.

[AdminCreateUserConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AdminCreateUserConfig)Elemen menetapkan nilai untuk properti berikut dari kumpulan pengguna.

1. Aktifkan pendaftaran swalayan

1. Pesan undangan yang Anda kirim ke pengguna baru yang dibuat admin

Contoh berikut, ketika ditambahkan ke badan permintaan API lengkap, menetapkan kumpulan pengguna dengan pendaftaran swalayan tidak aktif dan email undangan dasar.

```
"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 {####}."
      }
   }
```

Parameter tambahan berikut dari permintaan [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)atau [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API mengatur pembuatan pengguna baru.

[AutoVerifiedAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AutoVerifiedAttributes)  
Atribut, alamat email, atau nomor telepon, yang ingin Anda [kirimi pesan secara otomatis](user-pool-settings-email-phone-verification.md#user-pool-settings-email-phone-verification.title) saat mendaftarkan pengguna baru.

[Kebijakan](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Policies)  
[Kebijakan kata sandi](managing-users-passwords.md#user-pool-settings-policies.title) kumpulan pengguna.

[Skema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema)  
[Atribut kustom](user-pool-settings-attributes.md#user-pool-settings-custom-attributes.title) kumpulan pengguna. Mereka penting untuk proses pembuatan dan pendaftaran pengguna karena Anda hanya dapat menetapkan nilai untuk atribut kustom yang tidak *dapat diubah* saat pertama kali membuat pengguna.  
Parameter ini juga menetapkan atribut yang diperlukan untuk kumpulan pengguna Anda. Teks berikut, ketika dimasukkan ke dalam `Schema` elemen badan permintaan API lengkap, mengatur `email` atribut sesuai kebutuhan.  

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

------

# Mendaftar dan mengonfirmasi akun pengguna
<a name="signing-up-users-in-your-app"></a>

Akun pengguna ditambahkan ke kolam pengguna Anda dengan salah satu cara berikut:
+ Pengguna mendaftar di aplikasi klien kumpulan pengguna Anda. Ini bisa berupa aplikasi seluler atau web.
+ Anda dapat mengimpor akun pengguna ke dalam kolam pengguna Anda. Untuk informasi lebih lanjut, lihat [Mengimpor pengguna ke kumpulan pengguna dari file CSV](cognito-user-pools-using-import-tool.md).
+ Anda dapat membuat akun pengguna di kolam pengguna Anda dan mengundang pengguna untuk masuk. Untuk informasi selengkapnya, lihat [Membuat akun pengguna sebagai administrator](how-to-create-user-accounts.md).

Pengguna yang mendaftar sendiri harus dikonfirmasi sebelum mereka dapat masuk. Pengguna yang diimpor dan dibuat sudah dikonfirmasi, tetapi mereka harus membuat kata sandi saat pertama kali masuk. Bagian berikut menjelaskan proses konfirmasi dan verifikasi email dan telepon.

**Kata sandi saat mendaftar**  
Amazon Cognito memerlukan kata sandi dari semua pengguna saat mereka mendaftar, kecuali dalam kondisi berikut. Jika *semua* kondisi ini terpenuhi, Anda dapat menghilangkan kata sandi dalam operasi pendaftaran.

1. [Masuk tanpa kata sandi](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) aktif di kumpulan pengguna dan klien aplikasi Anda.

1. Aplikasi Anda dibuat khusus dengan modul otentikasi dalam SDK. AWS Login terkelola dan UI yang dihosting selalu memerlukan kata sandi.

1. Pengguna memberikan nilai atribut untuk metode masuk tanpa kata sandi—kata sandi satu kali pesan email atau SMS () —yang Anda izinkan. OTPs Misalnya, jika Anda mengizinkan login dengan email dan OTP telepon, pengguna dapat memberikan nomor telepon atau alamat email, tetapi jika Anda hanya mengizinkan masuk dengan email, mereka harus memberikan alamat email.

1. Kumpulan pengguna Anda [secara otomatis memverifikasi](#allowing-users-to-sign-up-and-confirm-themselves) atribut yang dapat digunakan pengguna dengan login tanpa kata sandi.

1. Untuk setiap [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)permintaan yang diberikan, pengguna tidak memberikan nilai untuk parameter [Kata Sandi](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Password).

## Ikhtisar konfirmasi akun pengguna
<a name="signup-confirmation-verification-overview"></a>

Diagram berikut menggambarkan proses konfirmasi:

![\[Ketika pengguna memasukkan kode konfirmasi, mereka secara otomatis memverifikasi email atau telepon.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/amazon-cognito-sign-in-confirm-user.png)


Akun pengguna dapat berada di salah satu status berikut:

**Terdaftar (Belum Dikonfirmasi)**  
Pengguna telah berhasil mendaftar, tetapi tidak dapat masuk sebelum akun pengguna dikonfirmasi. Pengguna telah diaktifkan tetapi tidak dikonfirmasi dalam status ini.  
Pengguna baru yang mendaftar mulai dari status ini.

**Terkonfirmasi**  
Akun pengguna dikonfirmasi dan pengguna dapat masuk. Ketika pengguna memasukkan kode atau mengikuti tautan email untuk mengonfirmasi akun pengguna mereka, email atau nomor telepon tersebut diverifikasi secara otomatis. Kode atau tautan verifikasi valid selama 24 jam.  
Jika akun pengguna dikonfirmasi oleh administrator atau pemicu Lambda sebelum pendaftaran, mungkin tidak ada email atau nomor telepon terverifikasi yang terkait dengan akun tersebut.

**Atur Ulang Kata Sandi Diperlukan**  
Akun pengguna dikonfirmasi, tetapi pengguna harus meminta kode dan mengatur ulang kata sandi mereka sebelum mereka dapat masuk.  
Akun pengguna yang diimpor oleh administrator atau developer mulai di keadaan ini.

**Paksa Ubah Kata Sandi**  
Akun pengguna dikonfirmasi dan pengguna dapat masuk menggunakan kata sandi sementara, tetapi saat masuk pertama, pengguna harus mengubah kata sandi mereka ke nilai baru sebelum melakukan hal lain.  
Akun pengguna yang diimpor oleh administrator atau developer yang di mulai pada status ini.

**Nonaktif**  
Sebelum Anda dapat menghapus akun pengguna, Anda harus menonaktifkan akses masuk untuk pengguna tersebut.

**Sumber daya lainnya**
+ [Mendeteksi dan memulihkan akun pengguna yang tidak aktif dengan Amazon Cognito](https://aws.amazon.com/blogs/security/detecting-and-remediating-inactive-user-accounts-with-amazon-cognito/)

## Memverifikasi informasi kontak saat mendaftar
<a name="allowing-users-to-sign-up-and-confirm-themselves"></a>

Ketika pengguna baru mendaftar di aplikasi Anda, Anda mungkin ingin mereka untuk menyediakan paling tidak satu metode kontak. Misalnya, dengan informasi kontak pengguna Anda, Anda mungkin:
+ Kirim kata sandi sementara ketika pengguna memilih untuk mengatur ulang kata sandi mereka.
+ Beri tahu pengguna ketika informasi personal atau keuangan mereka diperbarui.
+ Kirim pesan promosi, seperti penawaran khusus atau diskon.
+ Kirim ringkasan akun atau pengingat penagihan.

Untuk kasus penggunaan seperti ini, Anda harus mengirim pesan ke tujuan yang terverifikasi. Jika tidak, Anda mungkin mengirim pesan Anda ke alamat email yang tidak valid atau nomor telepon yang tidak diketik dengan benar. Atau lebih buruk lagi, Anda mungkin mengirim informasi sensitif ke aktor jahat yang menyamar sebagai pengguna Anda.

Untuk membantu memastikan bahwa Anda hanya mengirim pesan ke individu yang tepat, konfigurasikan kolam pengguna Amazon Cognito Anda sehingga pengguna harus menyediakan hal berikut saat mereka mendaftar:

1. Alamat email atau nomor telepon.

1. Kode verifikasi yang dikirim Amazon Cognito ke alamat email atau nomor telepon tersebut. Jika 24 jam telah berlalu dan kode atau tautan pengguna Anda tidak lagi valid, hubungi operasi [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API untuk membuat dan mengirim kode atau tautan baru.

Dengan memberikan kode verifikasi, pengguna membuktikan bahwa mereka memiliki akses ke kotak surat atau telepon yang menerima kode tersebut. Setelah pengguna memberikan kode, Amazon Cognito memperbarui informasi tentang pengguna di kolam pengguna Anda dengan:
+ Mengatur status pengguna ke `CONFIRMED`.
+ Memperbarui atribut pengguna untuk menunjukkan bahwa alamat email atau nomor telepon terverifikasi.

Untuk melihat informasi ini, Anda dapat menggunakan konsol Amazon Cognito. Atau, Anda dapat menggunakan operasi `AdminGetUser` API, `admin-get-user` perintah dengan AWS CLI, atau tindakan yang sesuai di salah satu AWS SDKs.

Jika pengguna memiliki metode kontak terverifikasi, Amazon Cognito secara otomatis mengirim pesan ke pengguna saat pengguna meminta pengaturan ulang kata sandi.

### Tindakan lain yang mengonfirmasi dan memverifikasi atribut pengguna
<a name="allowing-users-to-sign-up-and-confirm-themselves-other-actions"></a>

Aktivitas pengguna berikut memverifikasi atribut pengguna. Anda tidak diharuskan menyetel atribut ini untuk memverifikasi secara otomatis: tindakan yang tercantum menandainya sebagai diverifikasi dalam semua kasus.

**Alamat Email**  

1. Berhasil menyelesaikan [otentikasi tanpa kata sandi](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) dengan kata sandi satu kali email (OTP).

1. Berhasil menyelesaikan [otentikasi multi-faktor (MFA)](user-pool-settings-mfa.md) dengan OTP email.

**Nomor telepon**  

1. Berhasil menyelesaikan [otentikasi tanpa kata sandi dengan SMS OTP](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless).

1. Berhasil menyelesaikan [MFA](user-pool-settings-mfa.md) dengan SMS OTP.

### Untuk mengonfigurasi kumpulan pengguna Anda agar memerlukan verifikasi email atau telepon
<a name="verification-configure"></a>

Ketika Anda memverifikasi alamat email dan nomor telepon pengguna Anda, Anda memastikan bahwa Anda dapat menghubungi pengguna Anda. Selesaikan langkah-langkah berikut di Konsol Manajemen AWS untuk mengonfigurasi kumpulan pengguna Anda agar pengguna Anda mengonfirmasi alamat email atau nomor telepon mereka.

**catatan**  
Jika Anda belum memiliki kumpulan pengguna di akun Anda, lihat[Memulai dengan kumpulan pengguna](getting-started-user-pools.md).

**Untuk mengonfigurasi kolam pengguna**

1. Arahkan ke konsol [Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Dari panel navigasi, pilih **User Pools**. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Sign-up** dan cari **Verifikasi atribut dan konfirmasi akun pengguna**. Pilih **Edit**.

1. Di bawah **verifikasi dan konfirmasi yang dibantu Cognito, pilih apakah Anda akan Izinkan** **Cognito mengirim pesan secara otomatis untuk memverifikasi** dan mengonfirmasi. Dengan pengaturan ini diaktifkan, Amazon Cognito mengirimkan pesan ke atribut kontak pengguna yang Anda pilih saat pengguna mendaftar, atau Anda membuat profil pengguna. Untuk memverifikasi atribut dan mengonfirmasi profil pengguna untuk masuk, Amazon Cognito mengirimkan kode atau tautan dalam pesan ke pengguna. Pengguna kemudian harus memasukkan kode di UI Anda sehingga aplikasi Anda dapat mengonfirmasinya dalam permintaan `ConfirmSignUp` atau `AdminConfirmSignUp` API.
**catatan**  
Anda juga dapat menonaktifkan **verifikasi dan konfirmasi yang dibantu Cognito dan** menggunakan tindakan API yang diautentikasi atau pemicu Lambda untuk memverifikasi atribut dan mengonfirmasi pengguna.  
Jika Anda memilih opsi ini, Amazon Cognito tidak mengirim email kode verifikasi ketika pengguna mendaftar. Pilih opsi ini jika Anda menggunakan alur autentikasi kustom yang memverifikasi setidaknya satu metode kontak tanpa menggunakan kode verifikasi dari Amazon Cognito. Sebagai contoh, Anda mungkin menggunakan pemicu pre sign-up Lambda yang secara otomatis memverifikasi alamat email yang termasuk ke domain spesifik.  
Jika Anda tidak memverifikasi informasi kontak pengguna Anda, mereka mungkin tidak dapat menggunakan aplikasi Anda. Ingat bahwa pengguna memerlukan informasi kontak terverifikasi untuk:  
**Setel ulang kata sandi mereka** — Saat pengguna memilih opsi di aplikasi Anda yang memanggil tindakan `ForgotPassword` API, Amazon Cognito mengirimkan kata sandi sementara ke alamat email atau nomor telepon pengguna. Amazon Cognito mengirim kata sandi ini hanya jika pengguna memiliki setidaknya satu metode kontak terverifikasi.
**Masuk dengan menggunakan alamat email atau nomor telepon sebagai alias** — Jika Anda mengonfigurasi kumpulan pengguna untuk mengizinkan alias ini, maka pengguna dapat masuk dengan alias hanya jika alias diverifikasi. Untuk informasi selengkapnya, lihat [Menyesuaikan atribut masuk](user-pool-settings-attributes.md#user-pool-settings-aliases).

1. Pilih **Atribut Anda untuk memverifikasi**:  
**Kirim pesan SMS, verifikasi nomor telepon**  
Amazon Cognito mengirimkan kode verifikasi dalam pesan SMS saat pengguna mendaftar. Pilih opsi ini jika Anda biasanya berkomunikasi dengan pengguna melalui pesan SMS. Sebagai contoh, Anda akan ingin menggunakan nomor telepon terverifikasi jika Anda mengirim pemberitahuan pengiriman, konfirmasi janji temu, atau peringatan. Nomor telepon pengguna akan menjadi atribut terverifikasi ketika akun dikonfirmasi; Anda harus mengambil tindakan tambahan untuk memverifikasi dan berkomunikasi dengan alamat email pengguna.  
**Kirim pesan email, verifikasi alamat email**  
Amazon Cognito mengirimkan kode verifikasi melalui pesan email saat pengguna mendaftar. Pilih opsi ini jika Anda biasanya berkomunikasi dengan pengguna Anda melalui email. Sebagai contoh, Anda akan ingin menggunakan alamat email terverifikasi jika Anda mengirimkan laporan tagihan, ringkasan pesanan, atau penawaran khusus. Alamat email pengguna akan menjadi atribut terverifikasi ketika akun dikonfirmasi; Anda harus mengambil tindakan tambahan untuk memverifikasi dan berkomunikasi dengan nomor telepon pengguna.  
**Kirim pesan SMS jika nomor telepon tersedia, jika tidak, kirim pesan email**  
Pilih opsi ini jika Anda tindak memerlukan semua pengguna untuk memiliki metode kontak terverifikasi yang sama. Dalam kasus ini, halaman pendaftaran di aplikasi Anda dapat meminta pengguna untuk memverifikasi hanya metode kontak yang mereka suka. Ketika Amazon Cognito mengirimkan kode verifikasi, ia mengirimkan kode ke metode kontak yang disediakan di permintaan `SignUp` dari aplikasi Anda. Jika pengguna memberikan alamat email dan nomor telepon, dan aplikasi Anda menyediakan kedua metode kontak di permintaan `SignUp`, Amazon Cognito mengirimkan kode verifikasi hanya ke nomor telepon.  
Jika Anda mengharuskan pengguna untuk memverifikasi alamat email dan nomor telepon, pilih opsi ini. Amazon Cognito memverifikasi satu metode kontak saat pengguna mendaftar, dan aplikasi Anda harus memverifikasi metode kontak lainnya setelah pengguna masuk. Untuk informasi selengkapnya, lihat [Jika Anda meminta pengguna untuk mengonfirmasi alamat email dan nomor telepon](#verification-email-plus-phone).

1. Pilih **Simpan perubahan**.

### Alur otentikasi dengan verifikasi email atau telepon
<a name="verification-flow"></a>

Jika kolam pengguna Anda memerlukan pengguna untuk memverifikasi informasi kontak mereka, aplikasi Anda harus memfasilitasi alur berikut ini ketika pengguna mendaftar:

1. Pengguna mendaftar di aplikasi Anda dengan memasukkan nama pengguna, alamat and/or email nomor telepon, dan mungkin atribut lainnya.

1. Layanan Amazon Cognito menerima permintaan pendaftaran dari aplikasi. Setelah memverifikasi bahwa permintaan berisi semua atribut yang diperlukan untuk pendaftaran, layanan menyelesaikan proses pendaftaran dan mengirimkan kode konfirmasi ke telepon pengguna (dalam pesan SMS) atau email. Kode ini berlaku selama 24 jam.

1. Layanan mengembalikan ke aplikasi bahwa pendaftaran telah selesai dan akun pengguna sedang menunggu konfirmasi. Tanggapan berisi informasi tentang di mana kode konfirmasi dikirim. Pada titik ini akun pengguna berada dalam keadaan tidak terkonfirmasi, dan alamat email dan nomor telepon pengguna tidak terverifikasi.

1. Aplikasi sekarang dapat meminta pengguna untuk memasukkan kode konfirmasi. Pengguna tidak diharuskan untuk segera memasukkan kode. Namun, pengguna tidak akan bisa masuk sampai setelah mereka memasukkan kode konfirmasi.

1. Pengguna memasukkan kode konfirmasi di dalam aplikasi.

1. Aplikasi memanggil [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) untuk mengirim kode ke layanan Amazon Cognito, yang memverifikasi kode dan, jika kode benar, menetapkan akun pengguna ke status terkonfirmasi. Setelah berhasil mengonfirmasi akun pengguna, layanan Amazon Cognito secara otomatis menandai atribut yang digunakan untuk mengonfirmasi (alamat email atau nomor telepon) sebagai diverifikasi. Kecuali nilai atribut ini berubah, pengguna tidak perlu memverifikasinya lagi.

1. Pada titik ini akun pengguna dalam keadaan dikonfirmasi, dan pengguna dapat masuk.

### Jika Anda meminta pengguna untuk mengonfirmasi alamat email dan nomor telepon
<a name="verification-email-plus-phone"></a>

Amazon Cognito memverifikasi hanya satu metode kontak ketika pengguna mendaftar. Dalam kasus di mana Amazon Cognito harus memilih antara memverifikasi alamat email atau nomor telepon, ia memilih untuk memverifikasi nomor telepon dengan mengirimkan kode verifikasi melalui pesan SMS. Sebagai contoh, jika Anda mengonfigurasi kolam pengguna Anda untuk mengizinkan pengguna untuk memverifikasi alamat email atau nomor telepon, dan jika aplikasi Anda menyediakan semua dari atribut ini saat pendaftaran, Amazon Cognito hanya memverifikasi nomor telepon. Setelah pengguna memverifikasi nomor teleponnya, Amazon Cognito menyetel status `CONFIRMED` pengguna, dan pengguna diizinkan untuk masuk ke aplikasi Anda.

Setelah pengguna masuk, aplikasi Anda dapat menyediakan opsi untuk memverikasi metode kontak yang belum terverifikasi selama pendaftaran. Untuk memverifikasi metode kedua ini, aplikasi Anda memanggil tindakan API `VerifyUserAttribute`. Perhatikan bahwa tindakan ini memerlukan parameter `AccessToken`, dan Amazon Cognito hanya menyediakan token akses untuk pengguna terautentikasi. Karena itu, Anda dapat memverifikasi metode kontak kedua hanya setelah pengguna masuk.

Jika Anda mengharuskan pengguna untuk memverifikasi alamat email dan nomor telepon, lakukan berikut ini:

1. Konfigurasikan kolam pengguna Anda untuk mengizinkan pengguna untuk memverifikasi alamat email atau nomor telepon.

1. Dalam alur pendaftaran untuk aplikasi Anda, haruskan pengguna untuk memberikan alamat email dan nomor telepon. Panggil tindakan 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), dan sediakan alamat email atau nomor telepon untuk parameter `UserAttributes`. Pada titik ini, Amazon Cognito mengirim kode verifikasi ke telepon pengguna.

1. Di antarmuka aplikasi Anda, tunjukkan halaman konfirmasi di mana pengguna memasukkan kode verifikasi. Konfirmasi pengguna dengan memanggil tindakan 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). Pada titik ini, status pengguna adalah `CONFIRMED`, dan nomor telepon pengguna terverifikasi, tetapi alamat email tidak terverifikasi.

1. Tampilkan halaman masuk, dan autentikasi pengguna dengan memanggil tindakan 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). Setelah pengguna terkonfirmasi, Amazon Cognito mengembalikan token akses ke aplikasi Anda.

1. Panggil tindakan 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). Tentukan parameter berikut di permintaan:
   + `AccessToken` – Token akses yang dikembalikan oleh Amazon Cognito saat pengguna masuk.
   + `AttributeName` – Tentukan `"email"` sebagai nilai atribut.

   Amazon Cognito mengirimkan kode verifikasi ke alamat email pengguna.

1. Tunjukkan halaman konfirmasi di mana pengguna memasukkan kode verifikasi. Ketika pengguna memasukka kode, panggil tindakan 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). Tentukan parameter berikut di permintaan:
   + `AccessToken` – Token akses yang dikembalikan oleh Amazon Cognito saat pengguna masuk.
   + `AttributeName` – Tentukan `"email"` sebagai nilai atribut.
   + `Code` – Kode verifikasi yang diberikan pengguna.

   Pada titik ini, alamat email terverifikasi.

## Memungkinkan pengguna untuk mendaftar di aplikasi Anda tetapi mengonfirmasinya sebagai administrator kumpulan pengguna
<a name="signing-up-users-in-your-app-and-confirming-them-as-admin"></a>

Anda mungkin tidak ingin kumpulan pengguna Anda secara otomatis mengirim pesan verifikasi di kumpulan pengguna Anda, tetapi tetap ingin mengizinkan siapa pun untuk mendaftar akun. Model ini menyisakan ruang, misalnya, untuk tinjauan manusia atas permintaan pendaftaran baru, dan untuk validasi batch dan pemrosesan pendaftaran. Anda dapat mengonfirmasi akun pengguna baru di konsol Amazon Cognito atau dengan operasi API yang diautentikasi oleh IAM. [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) Anda dapat mengonfirmasi akun pengguna sebagai administrator apakah kumpulan pengguna Anda mengirim pesan verifikasi atau tidak.

Anda hanya dapat mengonfirmasi pendaftaran layanan mandiri pengguna dengan teknik ini. Untuk mengonfirmasi pengguna yang Anda buat sebagai administrator, buat permintaan [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API dengan `Permanent` disetel ke`True`.

1. Pengguna mendaftar di aplikasi Anda dengan memasukkan nama pengguna, alamat and/or email nomor telepon, dan mungkin atribut lainnya.

1. Layanan Amazon Cognito menerima permintaan pendaftaran dari aplikasi. Setelah memverifikasi bahwa permintaan berisi semua atribut yang dibutuhkan untuk pendaftaran, layanan menyelesaikan proses pendaftaran mengembalikan ke aplikasi bahwa pendaftaran telah selesai, menunggu konfirmasi. Pada titik ini akun pengguna dalam keadaan belum dikonfirmasi. Pengguna tidak dapat masuk sebelum akun dikonfirmasi.

1. Konfirmasikan akun pengguna. Anda harus masuk ke Konsol Manajemen AWS atau menandatangani permintaan API Anda dengan AWS kredensyal untuk mengonfirmasi akun. 

   1. **Untuk mengonfirmasi pengguna di konsol Amazon Cognito, navigasikan ke menu **Pengguna**, pilih pengguna yang ingin Anda konfirmasi, dan dari menu **Tindakan** pilih Konfirmasi.**

   1. Untuk mengonfirmasi pengguna di AWS API atau CLI, buat permintaan [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)API, atau [admin-confirm-sign-up](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-confirm-sign-up.html)di file. AWS CLI

1. Pada titik ini akun pengguna dalam keadaan dikonfirmasi, dan pengguna dapat masuk.

## Menghitung nilai hash rahasia
<a name="cognito-user-pools-computing-secret-hash"></a>

Tetapkan rahasia klien ke klien aplikasi rahasia Anda sebagai praktik terbaik. Saat Anda menetapkan rahasia klien ke klien aplikasi, permintaan API kumpulan pengguna Amazon Cognito Anda harus menyertakan hash yang menyertakan rahasia klien di badan permintaan. Untuk memvalidasi pengetahuan Anda tentang rahasia klien untuk operasi API dalam daftar berikut, menggabungkan rahasia klien dengan ID klien aplikasi dan nama pengguna pengguna Anda, lalu base64-encode string tersebut.

Saat aplikasi Anda menandatangani pengguna ke klien yang memiliki hash rahasia, Anda dapat menggunakan nilai atribut login kumpulan pengguna apa pun sebagai elemen nama pengguna dari hash rahasia. Saat aplikasi Anda meminta token baru dalam operasi autentikasi dengan`REFRESH_TOKEN_AUTH`, nilai elemen nama pengguna bergantung pada atribut login Anda. Jika kumpulan pengguna Anda tidak memiliki `username` atribut login, tetapkan nilai nama pengguna hash rahasia dari `sub` klaim pengguna dari akses atau token ID mereka. `username`Kapan atribut login, tetapkan nilai nama pengguna hash rahasia dari klaim. `username`

Kumpulan pengguna Amazon Cognito berikut APIs menerima nilai hash rahasia klien dalam suatu parameter. `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)

Selain itu, berikut ini APIs menerima nilai hash rahasia klien dalam `SECRET_HASH` parameter, baik dalam parameter otentikasi atau dalam respons tantangan.


| Operasi API | Parameter induk untuk SECRET\$1HASH | 
| --- |--- |
| InitiateAuth | AuthParameters | 
| AdminInitiateAuth | AuthParameters | 
| RespondToAuthChallenge | ChallengeResponses | 
| AdminRespondToAuthChallenge | ChallengeResponses | 

Nilai hash rahasia adalah kode otentikasi pesan hash kunci (HMAC) yang dikodekan Base 64 yang dihitung menggunakan kunci rahasia klien kumpulan pengguna dan nama pengguna ditambah ID klien dalam pesan. Kode pseudo berikut menunjukkan bagaimana nilai ini dihitung. Dalam pseudocode ini, `+` menunjukkan penggabungan, `HMAC_SHA256` mewakili fungsi yang menghasilkan nilai HMAC menggunakan Hmac, dan `Base64` mewakili fungsi yang menghasilkan versi keluaran hash SHA256 yang disandikan Base-64.

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

Untuk ikhtisar terperinci tentang cara menghitung dan menggunakan `SecretHash` parameter, lihat [Bagaimana cara memecahkan masalah kesalahan “Tidak dapat memverifikasi hash rahasia untuk klien” dari API kumpulan pengguna Amazon Cognito saya?](https://aws.amazon.com/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/) <client-id> di pusat AWS pengetahuan.

Anda dapat menggunakan contoh kode berikut dalam kode aplikasi sisi server Anda.

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

------

## Mengonfirmasi akun pengguna tanpa memverifikasi email atau nomor telepon
<a name="confirming-user-without-verification-of-email-or-phone-number"></a>

Pemicu Lambda pra pendaftaran dapat digunakan untuk mengonfirmasi akun pengguna secara otomatis saat mendaftar, tanpa memerlukan kode konfirmasi atau memverifikasi email atau nomor telepon. Pengguna yang dikonfirmasi dengan cara ini dapat langsung masuk tanpa harus menerima kode.

Anda juga dapat menandai email atau nomor telepon pengguna yang diverifikasi melalui pemicu ini. 

**catatan**  
Meskipun pendekatan ini nyaman bagi pengguna saat mereka memulai, kami merekomendasikan verifikasi otomatis setidaknya satu dari email atau nomor telepon. Jika tidak, pengguna dapat terbiarkan tidak dapat memulihkan jika mereka lupa kata sandi mereka.

Jika Anda tidak mengharuskan pengguna untuk menerima dan memasukkan kode konfirmasi saat mendaftar dan Anda tidak memverifikasi email dan nomor telepon secara otomatis di pemicu Lambda sebelum pendaftaran, Anda berisiko tidak memiliki alamat email atau nomor telepon terverifikasi untuk akun pengguna tersebut. Pengguna dapat memverifikasi alamat email atau nomor telepon di lain waktu. Namun, jika pengguna lupa kata sandinya dan tidak memiliki alamat email atau nomor telepon yang diverifikasi, pengguna dikunci dari akun, karena alur lupa kata sandi memerlukan email atau nomor telepon yang diverifikasi untuk mengirim kode verifikasi kepada pengguna.

## Memverifikasi kapan pengguna mengubah email atau nomor telepon mereka
<a name="verifying-when-users-change-their-email-or-phone-number"></a>

Di kumpulan pengguna yang Anda konfigurasikan dengan beberapa nama login, pengguna dapat memasukkan nomor telepon atau alamat email sebagai nama pengguna mereka saat login. Saat mereka memperbarui alamat email atau nomor telepon mereka di aplikasi Anda, Amazon Cognito dapat segera mengirimi mereka pesan dengan kode yang memverifikasi kepemilikan mereka atas nilai atribut baru. Untuk mengaktifkan pengiriman otomatis kode verifikasi ini, lihat[Mengkonfigurasi verifikasi email atau telepon](user-pool-settings-email-phone-verification.md).

Pengguna yang menerima kode verifikasi harus memberikan kode itu kembali ke Amazon Cognito dalam permintaan. [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html) Setelah mereka memberikan kode, atribut mereka ditandai sebagai diverifikasi. Biasanya, ketika pengguna memperbarui alamat email atau nomor telepon mereka, Anda akan ingin memverifikasi bahwa mereka memiliki nilai baru sebelum mereka dapat menggunakannya untuk masuk dan menerima pesan. Kumpulan pengguna memiliki opsi yang dapat dikonfigurasi yang menentukan apakah pengguna harus memverifikasi pembaruan ke alamat email atau nomor telepon mereka.

Opsi ini adalah properti kumpulan pengguna`AttributesRequireVerificationBeforeUpdate`. Konfigurasikan dalam [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-UserAttributeUpdateSettings)permintaan [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-UserAttributeUpdateSettings)atau, atau dengan pengaturan **Tetap aktifkan nilai atribut asli saat pembaruan tertunda** di menu **Pendaftaran** konsol Amazon Cognito.

Cara kumpulan pengguna Anda memperlakukan pembaruan ke alamat email dan nomor telepon terhubung ke konfigurasi nama pengguna kumpulan pengguna Anda. Nama pengguna kumpulan pengguna dapat berada dalam konfigurasi *atribut nama pengguna* di mana nama masuk adalah alamat email, nomor telepon, atau keduanya. Mereka juga dapat berada dalam konfigurasi *atribut alias* di mana `username` atribut adalah nama masuk bersama dengan alamat email, nomor telepon, atau nama pengguna pilihan sebagai nama masuk alternatif. Untuk informasi selengkapnya, lihat [Menyesuaikan atribut masuk](user-pool-settings-attributes.md#user-pool-settings-aliases).

 Anda juga dapat menggunakan pesan kustom pemicu Lambda untuk menyesuaikan pesan verifikasi. Untuk informasi selengkapnya, lihat [Pesan khusus Lambda pemicu](user-pool-lambda-custom-message.md). Ketika alamat email atau nomor telepon pengguna tidak diverifikasi, aplikasi Anda harus memberi tahu pengguna bahwa mereka harus memverifikasi atribut, dan memberikan tombol atau tautan bagi pengguna untuk memasukkan kode verifikasi mereka.

Tabel berikut menjelaskan cara `AttributesRequireVerificationBeforeUpdate` dan pengaturan alias menentukan hasil ketika pengguna mengubah nilai atribut login mereka.


| Konfigurasi nama pengguna | Perilaku saat pengguna harus memverifikasi atribut baru | Perilaku saat pengguna tidak diharuskan memverifikasi atribut baru | 
| --- | --- | --- | 
| Atribut nama pengguna | Atribut asli tetap diverifikasi, memenuhi syarat untuk login, dan pada nilai asli. Saat pengguna memverifikasi nilai baru, Amazon Cognito memperbarui nilai atribut, menandainya terverifikasi, dan membuatnya memenuhi syarat untuk masuk. | Amazon Cognito memperbarui atribut ke nilai baru. Nilai baru memenuhi syarat untuk masuk. Saat pengguna memverifikasi nilai baru, Amazon Cognito menandainya sebagai terverifikasi. | 
| Atribut alias | Atribut asli tetap diverifikasi, memenuhi syarat untuk login, dan pada nilai asli. Saat pengguna memverifikasi nilai baru, Amazon Cognito memperbarui nilai atribut, menandainya terverifikasi, dan membuatnya memenuhi syarat untuk masuk. | Amazon Cognito memperbarui atribut ke nilai baru. Baik nilai atribut asli maupun baru tidak memenuhi syarat untuk masuk. Saat pengguna memverifikasi nilai baru, Amazon Cognito memperbarui nilai atribut, menandainya terverifikasi, dan membuatnya memenuhi syarat untuk masuk. | 

**Contoh 1**  
Pengguna 1 masuk ke aplikasi Anda dengan alamat email `user1@example.com` dan memiliki nama pengguna `user1` (alias atribut). Kumpulan pengguna Anda dikonfigurasi untuk memverifikasi pembaruan atribut masuk dan mengirim pesan verifikasi secara otomatis. Mereka meminta untuk memperbarui alamat email mereka ke`user1+foo@example.com`. Mereka menerima email verifikasi di `user1+foo@example.com` dan *dapat masuk lagi* hanya dengan alamat email`user1@example.com`. Kemudian, mereka memasukkan kode verifikasi mereka dan dapat masuk lagi hanya dengan alamat email`user1+foo@example.com`.

**Contoh 2**  
Pengguna 2 masuk ke aplikasi Anda dengan alamat email `user2@example.com` dan memiliki nama pengguna (alias atribut). Kumpulan pengguna Anda dikonfigurasi untuk *tidak* memverifikasi pembaruan atribut masuk dan mengirim pesan verifikasi secara otomatis. Mereka meminta untuk memperbarui alamat email mereka ke`user2+bar@example.com`. Mereka menerima email verifikasi di `user2+bar@example.com` dan *tidak dapat masuk lagi*. Kemudian, mereka memasukkan kode verifikasi mereka dan dapat masuk lagi hanya dengan alamat email`user2+bar@example.com`.

**Contoh 3**  
Pengguna 3 masuk ke aplikasi Anda dengan alamat email `user3@example.com` dan tidak memiliki nama pengguna (atribut nama pengguna). Kumpulan pengguna Anda dikonfigurasi untuk *tidak* memverifikasi pembaruan atribut masuk dan mengirim pesan verifikasi secara otomatis. Mereka meminta untuk memperbarui alamat email mereka ke`user3+baz@example.com`. Mereka menerima email verifikasi di`user3+baz@example.com`, tetapi mereka *dapat segera masuk* tanpa tindakan tambahan yang diambil dengan kode verifikasi.

## Proses konfirmasi dan verifikasi untuk akun pengguna yang dibuat oleh administrator atau pengembang
<a name="confirmation-and-verification-of-users-whose-accounts-youve-created"></a>

Akun pengguna yang dibuat oleh administrator atau developer sudah dalam status terkonfirmasi, sehingga pengguna tidak perlu memasukkan kode konfirmasi. Pesan undangan yang dikirimkan layanan Amazon Cognito kepada pengguna ini mencakup nama pengguna dan kata sandi sementara. Pengguna diharuskan untuk mengubah kata sandi sebelum masuk. Untuk informasi lebih lanjut, lihat [Sesuaikan pesan email dan SMS](how-to-create-user-accounts.md#creating-a-new-user-customize-messages) di [Membuat akun pengguna sebagai administrator](how-to-create-user-accounts.md) dan pemicu Pesan Kustom di [Menyesuaikan alur kerja kumpulan pengguna dengan pemicu Lambda](cognito-user-pools-working-with-lambda-triggers.md).

## Proses konfirmasi dan verifikasi untuk akun pengguna yang diimpor
<a name="confirmation-and-verification-of-users-whose-accounts-youve-imported"></a>

Akun pengguna yang dibuat dengan menggunakan fitur impor pengguna di Konsol Manajemen AWS, CLI, atau API (lihat[Mengimpor pengguna ke kumpulan pengguna dari file CSV](cognito-user-pools-using-import-tool.md)) sudah dalam status terkonfirmasi, sehingga pengguna tidak diharuskan memasukkan kode konfirmasi. Tidak ada pesan undangan yang dikirim. Namun, akun pengguna yang diimpor mengharuskan pengguna untuk meminta kode terlebih dahulu dengan memanggil API `ForgotPassword` dan kemudian membuat kata sandi menggunakan kode yang dikirimkan dengan memanggil API `ConfirmForgotPassword` sebelum mereka masuk. Untuk informasi lebih lanjut, lihat [Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-password-reset).

Email atau nomor telepon pengguna harus ditandai sebagai terverifikasi saat akun pengguna diimpor, jadi tidak diperlukan verifikasi saat pengguna masuk.

## Mengirim email saat menguji aplikasi
<a name="managing-users-accounts-email-testing"></a>

Amazon Cognito mengirimkan pesan email ke pengguna Anda saat mereka membuat dan mengelola akun mereka di aplikasi klien untuk kumpulan pengguna Anda. Jika Anda mengonfigurasi kolam pengguna Anda agar memerlukan verifikasi email, Amazon Cognito akan mengirimkan email saat:
+ Pengguna mendaftar.
+ Pengguna memperbarui alamat email mereka.
+ Pengguna melakukan tindakan yang memanggil tindakan API `ForgotPassword`.
+ Anda membuat akun pengguna sebagai administrator.

Tergantung pada tindakan yang memulai email, email berisi kode verifikasi atau kata sandi sementara. Pengguna Anda harus menerima email ini dan memahami pesannya. Jika tidak, mereka mungkin tidak dapat masuk dan menggunakan aplikasi Anda.

Untuk memastikan bahwa email berhasil dikirim dan pesan terlihat benar, uji tindakan di aplikasi Anda yang memulai pengiriman email dari Amazon Cognito. Sebagai contoh, dengan menggunakan halaman pendaftaran di aplikasi Anda, atau dengan menggunakan tindakan API `SignUp`, Anda dapat memulai email dengan mendaftar dengan alamat email percobaan. Saat Anda menguji dengan cara ini, ingat hal berikut:

**Penting:**  
Saat Anda menggunakan alamat email untuk menguji tindakan yang memulai email dari Amazon Cognito, jangan gunakan alamat email palsu (yang tidak memiliki kotak pesan). Gunakan alamat email asli yang akan menerima email dari Amazon Cognito tanpa membuat *pentalan keras*.  
Pentalan keras terjadi saat Amazon Cognito gagal mengirim email ke kotak pesan penerima, yang selalu terjadi jika kotak pesan tidak ada.  
Amazon Cognito membatasi jumlah email yang dapat dikirim oleh AWS akun yang terus-menerus menimbulkan pantulan keras.

Ketika Anda menguji tindakan yang memulai email, gunakan salah satu alamat email berikut untuk mencegah pentalan keras:
+ Alamat untuk akun email yang Anda miliki dan gunakan untuk pengujian. Bila Anda menggunakan alamat email Anda sendiri, Anda menerima email yang dikirim Amazon Cognito. Dengan email ini, Anda dapat menggunakan kode verifikasi untuk menguji pengalaman pendaftaran di dalam aplikasi Anda. Jika Anda menyesuaikan pesan email untuk kolam pengguna Anda, Anda dapat memeriksa apakah penyesuaian Anda terlihat sesuai.
+ Alamat simulator kotak surat, *success@simulator.amazonses.com*. Jika Anda menggunakan alamat simulator, Amazon Cognito mengirimkan email dengan sukses, tetapi Anda tidak dapat melihatnya. Opsi ini berguna ketika Anda tidak perlu menggunakan kode verifikasi dan Anda tidak perlu memeriksa pesan email.
+ Alamat simulator kotak surat dengan tambahan label arbitrer, seperti *success\$1user1@simulator.amazonses.com* atau *success\$1user2@simulator.amazonses.com*. Amazon Cognito berhasil mengirim email ke alamat-alamat ini, tetapi Anda tidak dapat melihat email yang dikirimkannya. Opsi ini berguna saat Anda ingin menguji proses pendaftaran dengan menambahkan beberapa pengguna uji ke kolam pengguna Anda, dan setiap pengguna uji memiliki alamat email unik.

# Mengkonfigurasi verifikasi email atau telepon
<a name="user-pool-settings-email-phone-verification"></a>

Anda dapat memilih pengaturan untuk verifikasi email atau telepon di bawah menu **Metode otentikasi**. Untuk informasi selengkapnya tentang otentikasi multi-faktor (MFA), lihat MFA Pesan [Teks SMS](user-pool-settings-mfa-sms-email-message.md).

Amazon Cognito menggunakan Amazon SNS untuk mengirim pesan SMS. Jika Anda belum mengirim pesan SMS dari Amazon Cognito atau lainnya Layanan AWS sebelumnya, Amazon SNS mungkin menempatkan akun Anda di kotak pasir SMS. Kami menyarankan Anda mengirim pesan uji ke nomor telepon terverifikasi sebelum Anda menghapus akun Anda dari kotak pasir ke produksi. Selain itu, jika Anda berencana untuk mengirim pesan SMS ke nomor telepon tujuan AS, Anda harus mendapatkan originasi atau ID Pengirim dari Amazon Pinpoint. Untuk mengonfigurasi kumpulan pengguna Amazon Cognito Anda untuk pesan SMS, lihat. [Pengaturan pesan SMS untuk kolam pengguna Amazon Cognito](user-pool-sms-settings.md)

Amazon Cognito dapat secara otomatis memverifikasi alamat email atau nomor telepon. Untuk melakukan verifikasi ini, Amazon Cognito mengirimkan kode verifikasi atau tautan verifikasi. Untuk alamat email, Amazon Cognito dapat mengirim kode atau tautan dalam pesan email. Anda dapat memilih **jenis **Kode** atau **Tautan** Verifikasi** saat mengedit templat **pesan Verifikasi** di menu **Templat pesan** di konsol Amazon Cognito. Untuk informasi selengkapnya, lihat [Menyesuaikan pesan verifikasi email](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-email-verification-message-customization).

Untuk nomor telepon, Amazon Cognito mengirimkan kode dalam pesan teks SMS.

Amazon Cognito harus memverifikasi nomor telepon atau alamat email untuk mengonfirmasi pengguna dan membantu mereka memulihkan kata sandi yang terlupakan. Atau, Anda dapat secara otomatis mengonfirmasi pengguna dengan pemicu Lambda pra-pendaftaran atau menggunakan operasi API [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html). Untuk informasi selengkapnya, lihat [Mendaftar dan mengonfirmasi akun pengguna](signing-up-users-in-your-app.md).

Kode atau tautan verifikasi berlaku selama 24 jam.

Jika Anda memilih untuk meminta verifikasi untuk alamat email atau nomor telepon, Amazon Cognito secara otomatis mengirimkan kode verifikasi atau tautan saat pengguna mendaftar. Jika kumpulan pengguna memiliki [Pemicu Lambda pengirim SMS kustom](user-pool-lambda-custom-sms-sender.md) atau [Pemicu Lambda pengirim email kustom](user-pool-lambda-custom-email-sender.md) dikonfigurasi, fungsi tersebut dipanggil sebagai gantinya.

**Catatan**  
Amazon SNS mengenakan biaya secara terpisah untuk pesan teks SMS yang digunakannya untuk memverifikasi nomor telepon. Tidak ada biaya untuk mengirim pesan email. Untuk informasi tentang harga Amazon SNS, lihat harga [SMS Seluruh Dunia](https://aws.amazon.com/sns/sms-pricing/). Untuk daftar negara saat ini di mana pesan SMS tersedia, lihat [Wilayah dan negara yang didukung](https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html). 
Saat Anda menguji tindakan di aplikasi yang menghasilkan pesan email dari Amazon Cognito, gunakan alamat email asli yang dapat dijangkau Amazon Cognito tanpa pantulan keras. Untuk informasi selengkapnya, lihat [Mengirim email saat menguji aplikasi](signing-up-users-in-your-app.md#managing-users-accounts-email-testing).
Alur kata sandi yang terlupakan memerlukan email pengguna atau nomor telepon pengguna untuk memverifikasi pengguna.

**penting**  
Jika pengguna mendaftar dengan nomor telepon dan alamat email, dan pengaturan kumpulan pengguna Anda memerlukan verifikasi kedua atribut, Amazon Cognito mengirimkan kode verifikasi ke nomor telepon melalui pesan SMS. Amazon Cognito belum memverifikasi alamat email, jadi aplikasi Anda harus menelepon [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)untuk melihat apakah alamat email menunggu verifikasi. Jika memang memerlukan verifikasi, aplikasi harus menelepon [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html)untuk memulai alur verifikasi email. Maka harus mengirimkan kode verifikasi dengan menelepon [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html).

Anda dapat menyesuaikan kuota belanja pesan SMS Anda untuk Akun AWS dan untuk pesan individual. Batas hanya berlaku untuk biaya untuk mengirim pesan SMS. Untuk informasi selengkapnya, lihat **Apa itu kuota pengeluaran tingkat akun dan tingkat pesan dan bagaimana cara kerjanya?** di [Amazon SNS FAQs](https://aws.amazon.com/sns/faqs/).

Amazon Cognito mengirimkan pesan SMS menggunakan sumber daya Amazon SNS baik Wilayah AWS di tempat Anda membuat kumpulan pengguna atau di Wilayah alternatif **Amazon SNS Legacy** dari tabel berikut. Pengecualiannya adalah kumpulan pengguna Amazon Cognito di Wilayah Asia Pasifik (Seoul). Kumpulan pengguna ini menggunakan konfigurasi Amazon SNS Anda di Wilayah Asia Pasifik (Tokyo). Untuk informasi selengkapnya, lihat [Pilih Wilayah AWS untuk pesan SMS](user-pool-sms-settings.md#sms-choose-a-region).


| Wilayah Amazon Cognito | Legacy Amazon SNS Wilayah alternatif | 
| --- | --- | 
| AS Timur (Ohio) | US East (N. Virginia) | 
| Asia Pasifik (Mumbai) | Asia Pasifik (Singapura) | 
| Asia Pasifik (Seoul) | Asia Pacific (Tokyo) | 
| (Canada (Central) | US East (N. Virginia) | 
| Europe (Frankfurt) | Eropa (Irlandia) | 
| Europe (London) | Eropa (Irlandia) | 

**Contoh:** Jika kumpulan pengguna Amazon Cognito Anda berada di Asia Pasifik (Mumbai), dan Anda telah meningkatkan batas pengeluaran di ap-southeast-1, Anda mungkin tidak ingin meminta peningkatan terpisah di ap-south-1. Sebagai gantinya, Anda dapat menggunakan sumber daya Amazon SNS Anda di Asia Pasifik (Singapura). 

## Memverifikasi pembaruan alamat email dan nomor telepon
<a name="user-pool-settings-verifications-verify-attribute-updates"></a>

Alamat email atau atribut nomor telepon dapat menjadi aktif dan tidak diverifikasi segera setelah pengguna Anda mengubah nilainya. Amazon Cognito juga dapat mengharuskan pengguna Anda memverifikasi nilai baru sebelum Amazon Cognito memperbarui atribut. Saat Anda mengharuskan pengguna memverifikasi nilai baru terlebih dahulu, mereka dapat menggunakan nilai asli untuk masuk dan menerima pesan hingga mereka memverifikasi nilai baru.

Bila pengguna Anda dapat menggunakan alamat email atau nomor telepon mereka sebagai alias masuk di kumpulan pengguna Anda, nama login mereka untuk atribut yang diperbarui bergantung pada apakah Anda memerlukan verifikasi atribut yang diperbarui. Bila Anda mengharuskan pengguna memverifikasi atribut yang diperbarui, pengguna dapat masuk dengan nilai atribut asli hingga mereka memverifikasi nilai baru. Jika Anda tidak mengharuskan pengguna memverifikasi atribut yang diperbarui, pengguna tidak dapat masuk atau menerima pesan di nilai atribut baru atau asli hingga mereka memverifikasi nilai baru. 

Misalnya, kumpulan pengguna Anda mengizinkan login dengan alias alamat email, dan mengharuskan pengguna memverifikasi alamat email mereka saat mereka memperbarui. Sue, yang masuk sebagai`sue@example.com`, ingin mengubah alamat emailnya `sue2@example.com` tetapi secara tidak sengaja masuk`ssue2@example.com`. Sue tidak menerima email verifikasi, jadi dia tidak bisa memverifikasi`ssue2@example.com`. Sue masuk sebagai `sue@example.com` dan mengirimkan kembali formulir di aplikasi Anda untuk memperbarui alamat emailnya. `sue2@example.com` Dia menerima email ini, memberikan kode verifikasi ke aplikasi Anda, dan mulai masuk sebagai`sue2@example.com`. 

**Saat pengguna memperbarui atribut dan kumpulan pengguna Anda memverifikasi nilai atribut baru**
+ Mereka dapat masuk dengan nilai atribut asli sebelum mereka mengkonfirmasi kode untuk memverifikasi nilai baru.
+ Mereka hanya dapat masuk dengan nilai atribut baru setelah mereka mengkonfirmasi kode untuk memverifikasi nilai baru.
+ Jika Anda menyetel `email_verified` atau `phone_number_verified` masuk `true` dalam permintaan [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, mereka dapat masuk sebelum mengonfirmasi kode yang dikirimkan Amazon Cognito kepada mereka.

**Saat pengguna memperbarui atribut dan kumpulan pengguna Anda tidak memverifikasi nilai atribut baru**
+ Mereka tidak dapat masuk dengan, atau menerima pesan di, nilai atribut asli.
+ Mereka tidak dapat masuk dengan, atau menerima pesan selain kode konfirmasi di, nilai atribut baru sebelum mereka mengonfirmasi kode untuk memverifikasi nilai baru.
+ Jika Anda menyetel `email_verified` atau `phone_number_verified` masuk `true` dalam permintaan [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, mereka dapat masuk sebelum mengonfirmasi kode yang dikirimkan Amazon Cognito kepada mereka.

## Untuk mewajibkan verifikasi atribut saat pengguna memperbarui alamat email atau nomor telepon mereka


1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensional Anda.

1. Di panel navigasi, pilih **Kumpulan Pengguna**, dan pilih kumpulan pengguna yang ingin Anda edit.

1. Di menu **Sign-up**, pilih **Edit** di bawah **Verifikasi atribut dan konfirmasi akun pengguna**.

1. Pilih **Pertahankan nilai atribut asli aktif saat pembaruan tertunda**.

1. Di bawah **Nilai atribut Aktif saat pembaruan tertunda**, pilih atribut yang ingin diverifikasi pengguna sebelum Amazon Cognito memperbarui nilainya.

1. Pilih **Simpan perubahan**.

Untuk meminta verifikasi pembaruan atribut dengan Amazon Cognito API, Anda dapat mengatur `AttributesRequireVerificationBeforeUpdate` parameter dalam permintaan. [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)

## Mengotorisasi Amazon Cognito untuk mengirim pesan SMS atas nama Anda
<a name="user-pool-settings-verifications-iam-role-for-sms"></a>

Untuk mengirim pesan SMS ke pengguna atas nama Anda, Amazon Cognito memerlukan izin Anda. Untuk memberikan izin tersebut, Anda dapat membuat peran AWS Identity and Access Management (IAM). Di menu **Metode otentikasi** konsol Amazon Cognito di bawah SMS, **pilih** Edit untuk menetapkan peran.

# Mengkonfigurasi MFA, otentikasi, verifikasi, dan pesan undangan
<a name="cognito-user-pool-settings-message-customizations"></a>

Dengan Amazon Cognito, Anda dapat menyesuaikan otentikasi SMS dan email, verifikasi, dan pesan undangan pengguna untuk meningkatkan keamanan dan pengalaman pengguna aplikasi Anda. Anda dapat memilih antara verifikasi tautan berbasis kode dan satu-klik untuk beberapa pesan. Topik ini membahas bagaimana Anda dapat mempersonalisasi komunikasi otentikasi dan verifikasi di konsol Amazon Cognito. 

Di menu **Templat pesan**, Anda dapat menyesuaikan:
+ Template email dan pesan SMS Anda untuk otentikasi kata sandi satu kali (OTP) dan multi-faktor (MFA)
+ Pesan verifikasi SMS dan email Anda
+ Jenis verifikasi untuk email—kode atau tautan
**catatan**  
Amazon Cognito mengirimkan tautan dengan templat berbasis tautan Anda dalam pesan verifikasi saat pengguna mendaftar atau mengirim ulang kode konfirmasi. Email dari operasi pembaruan atribut dan pengaturan ulang kata sandi menggunakan templat kode.
+ Pesan undangan pengguna Anda
+ DARI dan BALAS-KE alamat email untuk email melalui kumpulan pengguna Anda

**catatan**  
Templat pesan verifikasi SMS dan email hanya muncul jika Anda memilih untuk meminta nomor telepon dan verifikasi email. ****Demikian pula, template pesan SMS MFA hanya muncul jika pengaturan MFA diperlukan atau opsional.****

**Topics**
+ [Template pesan](#cognito-user-pool-settings-message-templates)
+ [Menyesuaikan pesan email dan SMS MFA](#cognito-user-pool-settings-SMS-message-customization)
+ [Menyesuaikan pesan verifikasi email](#cognito-user-pool-settings-email-verification-message-customization)
+ [Menyesuaikan pesan undangan pengguna](#cognito-user-pool-settings-user-invitation-message-customization)
+ [Menyesuaikan alamat email Anda](#cognito-user-pool-settings-email-address-customization)
+ [Mengotorisasi Amazon Cognito untuk mengirim email Amazon SES atas nama Anda (dari alamat email FROM khusus)](#cognito-user-pool-settings-ses-authorization-to-send-email)

## Template pesan
<a name="cognito-user-pool-settings-message-templates"></a>

Anda dapat menggunakan templat pesan untuk menyisipkan placeholder ke dalam pesan Anda. Amazon Cognito mengganti placeholder dengan nilai yang sesuai. Anda dapat mereferensikan *placeholder template Universal* di template pesan jenis apa pun, meskipun nilai ini tidak akan ada di semua jenis pesan.


**Placeholder template universal**  

|  Deskripsi  |  Token  | Jenis pesan | 
| --- | --- | --- | 
| Kode verifikasi | \$1\$1\$1\$1\$1\$1 | Verifikasi, konfirmasi, dan pesan MFA | 
| Kata sandi sementara | \$1\$1\$1\$1\$1\$1 | Lupakan-kata sandi dan pesan undangan | 
| Nama pengguna | \$1username\$1 | Undangan dan pesan keamanan tingkat lanjut | 

Salah satu tanggapan otomatis yang tersedia dengan [perlindungan ancaman](cognito-user-pool-settings-threat-protection.md) adalah memberi tahu pengguna bahwa Amazon Cognito mendeteksi aktivitas yang berpotensi berbahaya. Anda dapat menggunakan placeholder template keamanan tingkat lanjut untuk melakukan hal berikut:
+ Sertakan detail spesifik tentang acara seperti alamat IP, kota, negara, waktu masuk, dan nama perangkat. Perlindungan ancaman Amazon Cognito dapat menganalisis detail ini.
+ Verifikasi apakah tautan sekali klik valid.
+ Gunakan ID peristiwa, token umpan balik, dan nama pengguna untuk membuat tautan satu klik Anda sendiri.

**catatan**  
Untuk menghasilkan tautan satu klik dan menggunakan `{one-click-link-valid}` dan `{one-click-link-invalid}` placeholder di templat email keamanan tingkat lanjut, Anda harus sudah memiliki domain yang dikonfigurasi untuk kumpulan pengguna Anda.

Perlindungan ancaman menambahkan placeholder berikut yang dapat Anda masukkan ke dalam template pesan. Placeholder ini berlaku untuk **pesan otentikasi Adaptif, pemberitahuan** yang dikirim Amazon Cognito kepada pengguna yang sesinya telah dievaluasi untuk tingkat risiko tertentu. Untuk mengonfigurasi templat pesan dengan variabel-variabel ini, perbarui konfigurasi **fungsi penuh** perlindungan ancaman Anda di konsol Amazon Cognito, atau kirimkan templat dalam [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)permintaan.


**Placeholder templat keamanan tingkat lanjut**  

|  Deskripsi  |  Token  | 
| --- | --- | 
| Alamat IP | \$1ip-address\$1 | 
| Kota | \$1city\$1 | 
| Negara | \$1country\$1 | 
| Waktu masuk | \$1login-time\$1 | 
| Nama perangkat | \$1device-name\$1 | 
| Satu-klik link valid | \$1one-click-link-valid\$1 | 
| Tautan sekali klik tidak valid | \$1one-click-link-invalid\$1 | 
| ID peristiwa | \$1event-id\$1 | 
| Token umpan balik | \$1feedback-token\$1 | 

## Menyesuaikan pesan email dan SMS MFA
<a name="cognito-user-pool-settings-SMS-message-customization"></a>

Untuk menyesuaikan pesan SMS dan email untuk [otentikasi multi-faktor (MFA),](user-pool-settings-mfa.md) edit pesan **MFA dari menu Templat pesan** **di** konsol kumpulan pengguna Amazon Cognito.

**penting**  
Pesan kustom Anda harus berisi `{####}` placeholder. Placeholder ini diganti dengan kode otentikasi sebelum pesan dikirim.

Amazon Cognito menetapkan panjang maksimum untuk pesan SMS, termasuk kode otentikasi, dari 140 karakter UTF-8.

### Menyesuaikan pesan verifikasi SMS
<a name="cognito-user-pool-settings-SMS-verification-message-customization"></a>

Untuk menyesuaikan pesan SMS untuk verifikasi nomor telepon, edit templat **pesan Verifikasi** dari menu **Templat pesan** kumpulan pengguna Anda.

**penting**  
Pesan kustom Anda harus berisi `{####}` placeholder. Placeholder ini diganti dengan kode verifikasi sebelum pesan dikirim.

Panjang maksimum pesan, termasuk kode verifikasi, adalah 140 karakter UTF-8.

## Menyesuaikan pesan verifikasi email
<a name="cognito-user-pool-settings-email-verification-message-customization"></a>

Untuk memverifikasi alamat email pengguna di kumpulan pengguna Anda dengan Amazon Cognito, Anda dapat mengirim pesan email kepada pengguna dengan tautan yang dapat mereka pilih, atau Anda dapat mengirimi mereka kode yang dapat mereka masukkan.

Untuk menyesuaikan subjek email dan konten pesan untuk pesan verifikasi alamat email, edit templat **pesan Verifikasi** di menu **Templat pesan** kumpulan pengguna Anda. Anda dapat memilih **jenis **Kode** atau **Tautan** Verifikasi** saat mengedit templat **pesan Verifikasi**.

Bila Anda memilih **Kode** sebagai jenis verifikasi, pesan kustom Anda harus berisi `{####}` placeholder. Saat Anda mengirim pesan, kode verifikasi menggantikan placeholder ini.

Saat Anda memilih **Tautan** sebagai jenis verifikasi, pesan khusus Anda harus menyertakan placeholder dalam format. `{##Verify Your Email##}` Anda dapat mengubah string teks antara karakter placeholder, misalnya. `{##Click here##}` Tautan verifikasi berjudul *Verifikasi Email Anda menggantikan placeholder* ini.

Tautan untuk pesan verifikasi email mengarahkan pengguna Anda ke URL seperti contoh berikut.

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

Panjang maksimum pesan, termasuk kode verifikasi (jika ada), adalah 20.000 karakter UTF-8. Anda dapat menggunakan tag HTML dalam pesan ini untuk memformat konten.

## Menyesuaikan pesan undangan pengguna
<a name="cognito-user-pool-settings-user-invitation-message-customization"></a>

Anda dapat menyesuaikan pesan undangan pengguna yang dikirimkan Amazon Cognito ke pengguna baru melalui SMS atau pesan email dengan mengedit templat **pesan Undangan** di menu **Templat pesan**.

**penting**  
Pesan kustom Anda harus berisi `{username}` dan `{####}` placeholder. Saat Amazon Cognito mengirim pesan undangan, ia menggantikan placeholder ini dengan nama pengguna dan kata sandi pengguna Anda.

Panjang maksimum pesan SMS, termasuk kode verifikasi, adalah 140 karakter UTF-8. Panjang maksimum pesan email, termasuk kode verifikasi, adalah 20.000 karakter UTF-8. Anda dapat menggunakan tag HTML dalam pesan email Anda untuk memformat konten.

## Menyesuaikan alamat email Anda
<a name="cognito-user-pool-settings-email-address-customization"></a>

**Secara default, Amazon Cognito mengirimkan pesan email ke pengguna di kumpulan pengguna Anda dari alamat no-reply@verificationemail.com.** **Anda dapat memilih untuk menentukan alamat email FROM dan REPLY-TO kustom, bukan no-reply@verificationemail.com.**

**Untuk menyesuaikan alamat email FROM dan REPLY-TO**

1. Arahkan ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), dan pilih Kumpulan **Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Metode otentikasi**. Di bawah **Email**, pilih **Edit**.

1. Pilih **Wilayah SES**.

1. Pilih **alamat email FROM** dari daftar alamat email yang telah Anda verifikasi dengan Amazon SES di **Wilayah SES** yang Anda pilih. Untuk menggunakan alamat email dari domain terverifikasi, konfigurasikan setelan email di AWS Command Line Interface atau AWS API. Untuk informasi selengkapnya, lihat [Memverifikasi alamat email dan domain di Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) di *Panduan Pengembang Layanan Email Sederhana Amazon*.

1. Pilih **set Konfigurasi** dari daftar set konfigurasi di **Wilayah SES** yang Anda pilih.

1. Masukkan **nama pengirim FROM** yang ramah untuk pesan email Anda, dalam format`John Stiles <johnstiles@example.com>`.

1. Untuk menyesuaikan alamat email BALAS-KE, masukkan alamat email yang valid di bidang **alamat email BALAS-KE**.

## Mengotorisasi Amazon Cognito untuk mengirim email Amazon SES atas nama Anda (dari alamat email FROM khusus)
<a name="cognito-user-pool-settings-ses-authorization-to-send-email"></a>

Anda dapat mengonfigurasi Amazon Cognito untuk mengirim email dari alamat email FROM kustom alih-alih alamat defaultnya. Untuk menggunakan alamat khusus, Anda harus memberikan izin Amazon Cognito untuk mengirim pesan email dari identitas terverifikasi Amazon SES. Dalam kebanyakan kasus, Anda dapat memberikan izin dengan membuat kebijakan otorisasi pengiriman. Untuk informasi selengkapnya, lihat [Menggunakan otorisasi pengiriman dengan Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html) di *Panduan Pengembang Layanan Email Sederhana Amazon*. 

Saat Anda mengonfigurasi kumpulan pengguna untuk menggunakan Amazon SES untuk pesan email, Amazon Cognito membuat `AWSServiceRoleForAmazonCognitoIdpEmailService` peran di akun Anda untuk memberikan akses ke Amazon SES. Tidak diperlukan kebijakan otorisasi pengiriman saat peran `AWSServiceRoleForAmazonCognitoIdpEmailService` terkait layanan digunakan. Anda hanya perlu menambahkan kebijakan otorisasi pengiriman saat Anda menggunakan fungsionalitas email default di kumpulan pengguna *dan* identitas Amazon SES yang diverifikasi sebagai alamat FROM.

Untuk informasi lebih lanjut tentang peran yang terkait dengan layanan yang dibuat Amazon Cognito, lihat [Menggunakan peran terkait layanan untuk Amazon Cognito](using-service-linked-roles.md).

Contoh berikut mengirim kebijakan otorisasi memberi Amazon Cognito kemampuan terbatas untuk menggunakan identitas terverifikasi Amazon SES. Amazon Cognito hanya dapat mengirim pesan email ketika melakukannya atas nama kumpulan pengguna dalam `aws:SourceArn` kondisi dan akun dalam kondisi tersebut`aws:SourceAccount`. Untuk contoh selengkapnya, lihat [Amazon SES mengirimkan contoh kebijakan otorisasi](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html) di *Panduan Pengembang Layanan Email Sederhana Amazon*.

**catatan**  
Dalam contoh ini, nilai “Sid” adalah string arbitrer yang secara unik mengidentifikasi pernyataan. Untuk informasi selengkapnya tentang sintaks kebijakan, lihat [Amazon SES mengirim kebijakan otorisasi](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html) di Panduan *Pengembang Layanan Email Sederhana Amazon*.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

Konsol Amazon Cognito menambahkan kebijakan serupa untuk Anda saat Anda memilih identitas Amazon SES dari menu tarik-turun. Jika Anda menggunakan CLI atau API untuk mengonfigurasi kumpulan pengguna, Anda harus melampirkan kebijakan yang terstruktur seperti contoh sebelumnya ke Identitas Amazon SES Anda.

# Membuat akun pengguna sebagai administrator
<a name="how-to-create-user-accounts"></a>

Kumpulan pengguna tidak hanya direktori pengguna identitas pelanggan dan manajemen akses (CIAM), di mana siapa pun di internet dapat mendaftar untuk profil pengguna di aplikasi Anda. Anda dapat menonaktifkan pendaftaran swalayan. Anda mungkin sudah mengenal pelanggan Anda dan hanya ingin mengakui mereka yang telah diberi wewenang sebelumnya. Anda dapat menempatkan pagar pembatas autentikasi manual di sekitar aplikasi Anda dengan [penyedia identitas SAMP 2.0 atau OIDC pribadi](cognito-user-pools-identity-federation.md), dengan [mengimpor pengguna, dengan menyaring pengguna](cognito-user-pools-import-users.md) [saat mendaftar —atau dengan membuat pengguna](user-pool-lambda-pre-sign-up.md) dengan operasi API administratif. Alur kerja Anda untuk pembuatan administratif pengguna dapat terprogram, menyediakan pengguna setelah mereka mendaftar di sistem lain, atau dapat berdasarkan pengujian case-by-case atau pengujian di konsol Amazon Cognito.

Saat Anda membuat pengguna sebagai administrator, Amazon Cognito menetapkan kata sandi sementara untuk mereka dan mengirimkan pesan selamat datang, atau undangan. Mereka dapat mengikuti tautan dalam pesan undangan mereka dan masuk untuk pertama kalinya, mengatur kata sandi dan mengonfirmasi akun mereka. Halaman berikut menjelaskan cara membuat pengguna baru dan mengonfigurasi pesan selamat datang. Untuk informasi selengkapnya tentang pembuatan pengguna dengan API kumpulan pengguna dan AWS SDK atau CDK, lihat. [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)

Setelah membuat kumpulan pengguna, Anda dapat membuat pengguna menggunakan Konsol Manajemen AWS, serta API Amazon Cognito AWS Command Line Interface atau Amazon. Anda dapat membuat profil untuk pengguna baru di kolam pengguna dan mengirim pesan selamat datang dengan petunjuk pendaftaran kepada pengguna melalui SMS atau email.

Berikut ini adalah beberapa contoh bagaimana administrator dapat mengelola pengguna di kumpulan pengguna.
+ Buat profil pengguna baru di konsol Amazon Cognito atau dengan operasi `AdminCreateUser` API.
+ Buat username-and-password [alur autentikasi](amazon-cognito-user-pools-authentication-flow-methods.md), tanpa kata sandi, kunci sandi, dan kustom tersedia untuk kumpulan pengguna dan klien aplikasi Anda.
+ Tetapkan nilai atribut pengguna.
+ Buat atribut khusus.
+ Tetapkan nilai [atribut kustom yang tidak dapat diubah dalam permintaan](user-pool-settings-attributes.md#user-pool-settings-custom-attributes) `AdminCreateUser` API. Fitur ini tidak tersedia di konsol Amazon Cognito.
+ Tentukan kata sandi sementara, buat pengguna tanpa kata sandi, atau izinkan Amazon Cognito membuat kata sandi secara otomatis.
+ Buat pengguna baru dan konfirmasi akun mereka secara otomatis, verifikasi alamat email mereka, atau verifikasi nomor telepon mereka.
+ [Tentukan pesan undangan SMS dan email khusus untuk pengguna baru melalui pemicu Konsol Manajemen AWS atau Lambda seperti [pesan khusus](user-pool-lambda-custom-message.md), [pengirim SMS khusus, dan pengirim](user-pool-lambda-custom-sms-sender.md) email khusus.](user-pool-lambda-custom-email-sender.md)
+ Tentukan apakah pesan undangan dikirim melalui SMS, email, atau keduanya.
+ Kirim ulang pesan selamat datang ke pengguna yang sudah ada dengan memanggil API `AdminCreateUser`, menentukan `RESEND` untuk parameter `MessageAction`.
+ [Menekan](#admincreateuserwalkthrough-step-invitationmessage) pengiriman pesan undangan saat pengguna dibuat.
+ Tentukan batas waktu kedaluwarsa hingga 90 hari untuk akun pengguna baru.
+ Izinkan pengguna untuk mendaftar sendiri atau haruskan pengguna baru ditambahkan hanya oleh administrator.

Administrator juga dapat menandatangani pengguna dengan AWS kredensi dalam aplikasi sisi server. Untuk informasi selengkapnya, lihat [Model otorisasi untuk otentikasi API dan SDK](authentication-flows-public-server-side.md).

## Alur otentikasi pengguna dan membuat pengguna
<a name="how-to-create-user-accounts-flows"></a>

Pembuatan administratif pengguna memiliki opsi yang berbeda berdasarkan konfigurasi kumpulan pengguna Anda. *Alur otentikasi*, atau metode yang tersedia bagi pengguna untuk login dan MFA, dapat mengubah cara Anda membuat pengguna dan pesan yang Anda kirim kepada mereka. Berikut ini adalah beberapa alur otentikasi yang tersedia di kumpulan pengguna.
+ Nama pengguna dan kata sandi
+ Kunci Sandi
+ Masuk dengan pihak ketiga IdPs
+ Tanpa kata sandi dengan email dan SMS kata sandi satu kali () OTPs
+ Otentikasi multi-faktor dengan email, SMS, dan aplikasi otentikator OTPs
+ Otentikasi khusus dengan pemicu Lambda

Untuk informasi selengkapnya tentang cara mengonfigurasi faktor masuk ini, lihat[Otentikasi dengan kumpulan pengguna Amazon Cognito](authentication.md).

## Buat pengguna tanpa kata sandi
<a name="how-to-create-user-accounts-thingstoknow-passwordless"></a>

Jika Anda telah mengaktifkan login tanpa kata sandi untuk kumpulan pengguna, Anda dapat membuat pengguna tanpa kata sandi. Untuk membuat pengguna tanpa kata sandi, Anda harus memberikan nilai atribut untuk faktor masuk tanpa kata sandi yang tersedia. Misalnya, jika login tanpa kata sandi OTP email tersedia di kumpulan pengguna, Anda dapat membuat pengguna tanpa kata sandi dan atribut alamat email. Jika satu-satunya aliran otentikasi yang tersedia untuk pengguna baru memerlukan kata sandi, misalnya kunci sandi atau kata sandi pengguna, Anda harus membuat atau membuat kata sandi sementara untuk setiap pengguna baru.

**Untuk membuat pengguna baru tanpa kata sandi**
+ Pilih **Jangan setel kata sandi** di konsol Amazon Cognito
+ Hilangkan atau kosongkan `TemporaryPassword` parameter permintaan `AdminCreateUser` API Anda

**Pengguna tanpa kata sandi dikonfirmasi secara otomatis**  
Biasanya pengguna baru mendapatkan kata sandi sementara dan masuk ke `FORCE_CHANGE_PASSWORD` status saat Anda membuatnya. Saat Anda membuat pengguna tanpa kata sandi, mereka segera masuk ke `CONFIRMED` keadaan. Anda tidak dapat mengirim ulang kode konfirmasi ke pengguna ini di `CONFIRMED` negara bagian.

**Pesan undangan berubah untuk pengguna tanpa kata sandi.**  
Secara default, Amazon Cognito mengirimkan [pesan undangan](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-user-invitation-message-customization) ke pengguna baru yang mengatakan `Your username is {userName} and your password is {####}.` Saat Anda membuat pengguna tanpa kata sandi, pesan tersebut mengatakan `Your username is {userName}.` Sesuaikan pesan undangan Anda untuk mencerminkan apakah Anda akan menyetel kata sandi untuk pengguna. Hilangkan variabel `{####}` kata sandi dalam model otentikasi tanpa kata sandi.

**Anda tidak dapat membuat kata sandi secara otomatis saat faktor tanpa kata sandi tersedia**  
Jika Anda telah mengonfigurasi kumpulan pengguna untuk mendukung login tanpa kata sandi OTP email atau telepon, Anda tidak dapat membuat kata sandi secara otomatis. Untuk setiap pengguna yang akan memiliki kata sandi, Anda harus menetapkan kata sandi sementara saat Anda membuat profil mereka.

**Pengguna tanpa kata sandi harus memiliki nilai untuk semua atribut yang diperlukan**  
Saat Anda membuat pengguna *tanpa* kata sandi, permintaan Anda hanya berhasil jika pengguna memberikan nilai untuk semua atribut yang telah Anda tandai sebagai wajib di kumpulan pengguna Anda. Ini berlaku untuk atribut yang diperlukan, tidak hanya nomor telepon dan atribut email yang diperlukan untuk pengiriman OTP.

## Membuat pengguna yang akan memberikan nilai atribut yang diperlukan nanti
<a name="how-to-create-user-accounts-thingstoknow-password-restrictions"></a>

Anda mungkin ingin mewajibkan atribut di kumpulan pengguna tetapi mengumpulkan atribut tersebut setelah Anda membuat pengguna secara administratif, selama interaksi pengguna dalam aplikasi Anda. Administrator dapat menghilangkan nilai untuk atribut yang diperlukan saat mereka membuat pengguna *dengan kata sandi sementara*. Anda tidak dapat menghilangkan nilai atribut yang diperlukan untuk pengguna tanpa kata sandi.

Pengguna dengan nilai yang hilang untuk atribut yang diperlukan dan kata sandi sementara mendapatkan tantangan [NEW\$1PASSWORD\$1REQUIRED saat masuk pertama](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeResponses). Mereka kemudian dapat memberikan nilai untuk atribut yang diperlukan yang hilang dalam `requiredAttributes` parameter. Anda dapat membuat pengguna dengan kata sandi dan tanpa atribut yang diperlukan hanya jika semua atribut yang diperlukan [dapat berubah](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Pengguna hanya dapat menyelesaikan proses masuk dengan `NEW_PASSWORD_REQUIRED` tantangan dan nilai atribut yang diperlukan jika atribut yang diperlukan [dapat ditulis](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-about) dari klien aplikasi yang digunakan untuk masuk.

Saat Anda menetapkan kata sandi permanen untuk pengguna yang dibuat administrator, statusnya berubah `CONFIRMED` dan kumpulan pengguna Anda tidak meminta mereka untuk kata sandi baru *atau* atribut yang diperlukan pada saat login pertama mereka.

## Membuat pengguna baru di Konsol Manajemen AWS
<a name="creating-a-new-user-using-the-console"></a>

Anda dapat mengatur persyaratan kata sandi pengguna, mengonfigurasi pesan undangan dan verifikasi yang dikirim ke pengguna, dan menambahkan pengguna baru dengan konsol Amazon Cognito.

### Tetapkan kebijakan kata sandi dan aktifkan pendaftaran mandiri
<a name="set-user-password-policy"></a>

Anda dapat mengonfigurasi pengaturan untuk kompleksitas kata sandi minimum dan apakah pengguna dapat mendaftar menggunakan public APIs di kumpulan pengguna Anda.

**Konfigurasikan kebijakan kata sandi**

1. Arahkan ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), dan pilih Kumpulan **Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Metode otentikasi** dan temukan **kebijakan Kata Sandi**. Pilih **Edit**.

1. Pilih **mode kebijakan Kata Sandi** **Kustom**.

1. Pilih **panjang minimum Kata Sandi**. Untuk batas persyaratan panjang kata sandi, lihat [Kuota sumber daya kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#limits-hard).

1. Pilih persyaratan **kompleksitas Kata Sandi**.

1. Pilih berapa lama kata sandi yang ditetapkan oleh administrator harus valid.

1. Pilih **Simpan perubahan**.

**Izinkan pendaftaran swalayan**

1. Arahkan ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), dan pilih Kumpulan **Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Daftar** dan temukan Pendaftaran **layanan mandiri**. Pilih **Edit**.

1. Pilih apakah akan **Aktifkan pendaftaran mandiri**. Registrasi mandiri biasanya digunakan dengan klien aplikasi publik yang perlu mendaftarkan pengguna baru di kumpulan pengguna Anda tanpa mendistribusikan rahasia klien atau kredensil API AWS Identity and Access Management (IAM).
**Menonaktifkan registrasi mandiri**  
Jika Anda tidak mengaktifkan registrasi mandiri, pengguna baru harus dibuat dengan tindakan API administratif menggunakan kredenal API IAM atau dengan login dengan penyedia federasi.

1. Pilih **Simpan perubahan**.

### Sesuaikan pesan email dan SMS
<a name="creating-a-new-user-customize-messages"></a>

**Sesuaikan pesan pengguna**

Anda dapat menyesuaikan pesan yang dikirimkan Amazon Cognito kepada pengguna Anda saat Anda mengundang mereka untuk masuk, mereka mendaftar untuk akun pengguna, atau mereka masuk dan diminta untuk autentikasi multi-faktor (MFA).
**catatan**  
**Pesan Undangan** dikirim saat Anda membuat pengguna di kumpulan pengguna dan mengundang mereka untuk masuk. Amazon Cognito mengirimkan informasi login awal ke alamat email atau nomor telepon pengguna.  
**Pesan Verifikasi** dikirim saat pengguna mendaftar untuk akun pengguna di kumpulan pengguna Anda. Amazon Cognito mengirimkan kode ke pengguna. Saat pengguna memberikan kode ke Amazon Cognito, mereka memverifikasi informasi kontak mereka dan mengonfirmasi akun mereka untuk masuk. Kode verifikasi valid untuk 24 jam.  
**Pesan MFA** dikirim saat Anda mengaktifkan SMS MFA di kumpulan pengguna Anda, dan pengguna yang telah mengonfigurasi masuk MFA SMS dan diminta untuk MFA.

1. Arahkan ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), dan pilih Kumpulan **Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. **Pilih menu **Templat pesan** dan pilih **Pesan verifikasi, Pesan** **undangan, atau pesan** **MFA** dan pilih Edit.**

1. Sesuaikan pesan untuk jenis pesan yang dipilih.
**catatan**  
Semua variabel dalam template pesan harus disertakan saat Anda menyesuaikan pesan. Jika variabel, misalnya **\$1\$1\$1\$1\$1\$1**, tidak disertakan, pengguna Anda tidak akan memiliki informasi yang cukup untuk menyelesaikan tindakan pesan.  
Untuk informasi selengkapnya, lihat [Templat pesan](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html).

1. 

   1. **Pesan verifikasi**

      1. Pilih **jenis Verifikasi** untuk pesan **Email**. Verifikasi **Kode** mengirimkan kode numerik yang harus dimasukkan pengguna. Verifikasi **tautan** mengirimkan tautan yang dapat diklik pengguna untuk memverifikasi informasi kontak mereka. Teks dalam variabel untuk pesan **Link** ditampilkan sebagai teks hyperlink. Misalnya, template pesan menggunakan variabel \$1\$1 \$1Click here \$1\$1\$1 ditampilkan sebagai [Klik di sini di]() pesan email.

      1. Masukkan **subjek Email** untuk pesan **Email**.

      1. Masukkan template **pesan Email** kustom untuk pesan **Email**. Anda dapat menyesuaikan template ini dengan HTML.

      1. Masukkan templat **pesan SMS** khusus untuk pesan **SMS**.

      1. Pilih **Simpan perubahan**.

   1. **Pesan undangan**

      1. Masukkan **subjek Email** untuk pesan **Email**.

      1. Masukkan template **pesan Email** kustom untuk pesan **Email**. Anda dapat menyesuaikan template ini dengan HTML.

      1. Masukkan templat **pesan SMS** khusus untuk pesan **SMS**.

      1. Pilih **Simpan perubahan**.

   1. **Pesan MFA**

      1. Masukkan templat **pesan SMS** khusus untuk pesan **SMS**.

      1. Pilih **Simpan perubahan**.

### Buat pengguna
<a name="creating-a-new-user-using-the-users-tab"></a>

**Buat pengguna**

Anda dapat membuat pengguna baru untuk kumpulan pengguna Anda dari konsol Amazon Cognito. Biasanya, pengguna dapat masuk setelah mereka menetapkan kata sandi. Untuk masuk dengan alamat email, pengguna harus memverifikasi `email` atribut. Untuk masuk dengan nomor telepon, pengguna harus memverifikasi `phone_number` atribut. Untuk mengonfirmasi akun sebagai administrator, Anda juga dapat menggunakan AWS CLI atau API, atau membuat profil pengguna dengan penyedia identitas gabungan. Untuk informasi selengkapnya, lihat Referensi [API Amazon Cognito](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/).

1. Arahkan ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), dan pilih Kumpulan **Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Pengguna**, dan pilih **Buat pengguna**.

1. Tinjau persyaratan **masuk dan keamanan kumpulan Pengguna untuk panduan tentang persyaratan** kata sandi, metode pemulihan akun yang tersedia, dan atribut alias untuk kumpulan pengguna Anda.

1. <a name="admincreateuserwalkthrough-step-invitationmessage"></a>Pilih bagaimana Anda ingin mengirim **pesan Undangan**. Pilih pesan SMS, pesan email, atau keduanya. Untuk menekan pesan undangan, pilih **Jangan kirim undangan**.
**catatan**  
Sebelum Anda dapat mengirim pesan undangan, konfigurasikan pengirim dan Wilayah AWS dengan Amazon Simple Notification Service dan Amazon Simple Email Service di menu **Metode otentikasi** kumpulan pengguna Anda. Pesan penerima dan tarif data berlaku. Amazon SES menagih Anda untuk pesan email secara terpisah, dan Amazon SNS menagih Anda untuk pesan SMS secara terpisah.

1. Pilih **nama pengguna** untuk pengguna baru.

1. Pilih apakah Anda ingin **Buat kata sandi** atau minta Amazon Cognito **Buat kata sandi** untuk pengguna. Opsi untuk membuat kata sandi tidak tersedia jika [login tanpa kata sandi](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) tersedia di kumpulan pengguna. Setiap kata sandi sementara harus mematuhi kebijakan kata sandi kumpulan pengguna.

1. Pilih **Buat**.

1. Pilih menu **Pengguna** dan pilih entri **Nama pengguna** untuk pengguna. Tambahkan dan edit **atribut Pengguna** dan **keanggotaan Grup**. Tinjau **riwayat acara Pengguna**.

# Menambahkan grup ke kumpulan pengguna
<a name="cognito-user-pools-user-groups"></a>

Dukungan untuk grup di kolam pengguna Amazon Cognito memungkinkan Anda membuat dan mengelola grup, menambahkan pengguna ke grup, dan menghapus pengguna dari grup. Gunakan grup untuk membuat koleksi pengguna guna mengelola izin mereka atau untuk mewakili tipe pengguna yang berbeda. Anda dapat menetapkan peran AWS Identity and Access Management (IAM) ke grup untuk menentukan izin bagi anggota grup.

Anda dapat menggunakan grup untuk membuat kumpulan pengguna di kolam pengguna, yang sering dilakukan untuk mengatur izin bagi pengguna tersebut. Sebagai contoh, Anda dapat membuat grup terpisah untuk pengguna yang merupakan pembaca, kontributor, dan editor situs web dan aplikasi Anda. Dengan menggunakan IAM role yang terkait dengan grup, Anda juga dapat mengatur izin berbeda untuk grup berbeda tersebut sehingga hanya kontributor yang dapat memasukkan konten ke Amazon S3 dan hanya editor yang dapat menerbitkan konten melalui API di Amazon API Gateway.

Amazon Cognito membuat grup pengguna untuk setiap OIDC SAMl, dan [penyedia identitas sosial (](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation-how-it-works)iDP) yang Anda tambahkan ke kumpulan pengguna. Nama grup ada dalam format`[user pool ID]_[IdP name]`, misalnya `us-east-1_EXAMPLE_MYSSO` atau`us-east-1_EXAMPLE_Google`. Setiap profil pengguna iDP unik yang dihasilkan secara otomatis ditambahkan ke grup ini. [Pengguna tertaut](cognito-user-pools-identity-federation-consolidate-users.md) tidak secara otomatis ditambahkan ke grup ini, tetapi Anda dapat menambahkan profil mereka ke grup dalam proses terpisah.

Anda dapat membuat dan mengelola grup di kumpulan pengguna dari Konsol Manajemen AWS, CLI APIs, dan CLI. Sebagai pengembang (menggunakan AWS kredensi), Anda dapat membuat, membaca, memperbarui, menghapus, dan membuat daftar grup untuk kumpulan pengguna. Anda juga dapat menambahkan pengguna dan menghapus pengguna dari grup.

Tidak ada biaya tambahan untuk menggunakan grup dalam kolam pengguna. Lihat [Harga Amazon Cognito](https://aws.amazon.com/cognito/pricing/) untuk informasi selengkapnya.

## Menetapkan peran IAM ke grup
<a name="assigning-iam-roles-to-groups"></a>

Anda dapat menggunakan grup untuk mengontrol izin ke sumber daya Anda menggunakan IAM role. IAM role mencakup kebijakan kepercayaan dan kebijakan izin. Kebijakan [kepercayaan](https://docs.aws.amazon.com/cognito/latest/developerguide/role-trust-and-permissions.html) peran menentukan siapa yang dapat menggunakan peran. Kebijakan [izin](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies) menentukan tindakan dan sumber daya yang dapat diakses oleh anggota grup Anda. Saat Anda membuat peran IAM, siapkan kebijakan kepercayaan peran untuk memungkinkan pengguna grup Anda mengambil peran tersebut. Dalam kebijakan izin peran, tentukan izin yang Anda inginkan untuk dimiliki grup Anda.

Saat Anda membuat grup di Amazon Cognito, Anda menentukan IAM role dengan menyediakan [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) peran. Saat anggota grup masuk menggunakan Amazon Cognito, mereka dapat menerima kredensial sementara dari kolam identitas. Izin mereka ditentukan oleh IAM role terkait.

Pengguna individu dapat berada di dalam beberapa grup. Sebagai developer, Anda memiliki opsi berikut untuk memilih IAM role secara otomatis saat pengguna berada di beberapa grup:
+ Anda dapat menetapkan nilai prioritas untuk setiap grup. Grup dengan prioritas yang lebih baik (lebih rendah) akan dipilih dan IAM role terkaitnya akan diterapkan. 
+ Aplikasi Anda juga dapat memilih di antara peran yang tersedia saat meminta AWS kredensional untuk pengguna melalui kumpulan identitas, dengan menentukan peran ARN dalam parameter. [GetCredentialsForIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html)`CustomRoleARN` IAM role yang ditentukan harus cocok dengan peran yang tersedia untuk pengguna.

## Menetapkan nilai prioritas ke grup
<a name="assigning-precedence-values-to-groups"></a>

Seorang pengguna dapat menjadi anggota lebih dari satu grup. Dalam akses pengguna dan token ID, `cognito:groups` klaim berisi daftar semua grup yang dimiliki pengguna. Klaim `cognito:roles` berisi daftar peran yang sesuai dengan grup.

Karena pengguna dapat menjadi bagian dari lebih dari satu grup, setiap grup dapat diberikan prioritas. Ini adalah angka non-negatif yang menentukan prioritas grup ini relatif terhadap grup lain yang dimiliki pengguna di kumpulan pengguna. Nol adalah nilai prioritas teratas. Grup dengan nilai prioritas yang lebih rendah lebih diutamakan daripada grup dengan nilai prioritas yang lebih tinggi atau nol. Jika pengguna termasuk dalam dua grup atau lebih, grup dengan nilai prioritas terendah akan memiliki peran IAM yang diterapkan pada `cognito:preferred_role` klaim dalam token ID pengguna.

Dua grup dapat memiliki nilai prioritas yang sama. Jika ini terjadi, tidak ada grup yang didahulukan dari yang lain. Jika dua grup dengan nilai prioritas yang sama memiliki peran ARN yang sama, peran tersebut digunakan dalam klaim `cognito:preferred_role` dalam token ID untuk pengguna di setiap grup. Jika kedua grup memiliki peran yang berbeda ARNs, `cognito:preferred_role` klaim tidak diatur dalam token ID pengguna.

## Menggunakan grup untuk mengontrol izin dengan Amazon API Gateway
<a name="using-groups-to-control-permission-with-amazon-api-gateway"></a>

Anda dapat menggunakan grup di kolam pengguna untuk mengontrol izin dengan Amazon API Gateway. Grup yang menjadi anggota pengguna termasuk dalam token ID dan token akses dari kumpulan pengguna dalam `cognito:groups` klaim. Anda dapat mengirimkan ID atau token akses dengan permintaan ke Amazon API Gateway dan menggunakan otorisasi kumpulan pengguna Amazon Cognito untuk REST API. Untuk informasi selengkapnya, lihat [Mengendalikan akses ke REST API menggunakan kolam pengguna Amazon Cognito sebagai pemberi otorisasi](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) di [Panduan Developer API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

Anda juga dapat mengotorisasi akses ke API HTTP Amazon API Gateway dengan otorisasi JWT kustom. Untuk informasi selengkapnya, lihat [Mengontrol akses ke HTTP APIs dengan otorisasi JWT di Panduan Pengembang](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) [API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

## Batasan pada kelompok
<a name="user-pool-user-groups-limitations"></a>

Grup pengguna tunduk pada batasan berikut:
+ Jumlah grup yang dapat Anda buat dibatasi oleh kuota [layanan Amazon Cognito](quotas.md).
+ Grup tidak dapat disarangkan.
+ Anda tidak dapat mencari pengguna di dalam grup.
+ Anda tidak dapat mencari grup berdasarkan nama, tetapi Anda dapat membuat daftar grup.

## Membuat grup baru di Konsol Manajemen AWS
<a name="creating-a-new-group-using-the-console"></a>

Gunakan prosedur berikut untuk membuat grup baru.

**Untuk membuat grup baru**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensional Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Grup**, lalu pilih **Buat grup**.

1. Pada halaman **Buat grup**, di **Nama grup**, masukkan nama ramah untuk grup baru Anda.

1. Anda dapat secara opsional memberikan informasi tambahan tentang grup ini menggunakan salah satu bidang berikut:
   + **Deskripsi** - Masukkan detail tentang apa grup baru ini akan digunakan.
   + **Prioritas - Amazon Cognito mengevaluasi dan menerapkan semua izin grup untuk pengguna tertentu berdasarkan grup mana mereka memiliki nilai prioritas** yang lebih rendah. Kelompok dengan prioritas lebih rendah akan dipilih dan peran IAM terkait akan diterapkan. Untuk informasi selengkapnya, lihat [Menetapkan nilai prioritas ke grup](#assigning-precedence-values-to-groups).
   + **Peran IAM** - Anda dapat menetapkan peran IAM ke grup Anda ketika Anda perlu mengontrol izin ke sumber daya Anda. Jika Anda mengintegrasikan kolam pengguna dengan kolam identitas, pengaturan **IAM role** menentukan peran mana yang ditetapkan dalam token ID pengguna jika kolam identitas terkonfigurasi untuk memilih peran dari token. Untuk informasi selengkapnya, lihat [Menetapkan peran IAM ke grup](#assigning-iam-roles-to-groups).
   + **Tambahkan pengguna ke grup ini** - Tambahkan pengguna yang ada sebagai anggota grup ini setelah dibuat.

1. Pilih **Buat** untuk mengonfirmasi.

# Mengelola dan mencari akun pengguna
<a name="how-to-manage-user-accounts"></a>

Kumpulan pengguna dapat berisi jutaan pengguna. Bekerja dengan kumpulan data sebesar ini merupakan tantangan bagi administrator. Amazon Cognito memiliki alat untuk menemukan dan memodifikasi profil pengguna. Metode teratas untuk menemukan pengguna adalah menu **Pengguna** dari konsol Amazon Cognito, dan dengan. [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Dari metode yang mengambil informasi tentang pengguna, ini adalah opsi yang tidak memiliki dampak biaya tidak seperti, misalnya, [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html).

Bagian panduan ini memiliki informasi tentang menemukan dan memperbarui profil pengguna di kumpulan pengguna.

## Melihat atribut pengguna
<a name="manage-user-accounts-viewing-user-attributes"></a>

Gunakan prosedur berikut untuk melihat atribut pengguna di konsol Amazon Cognito.

**Untuk melihat atribut pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan pilih pengguna dalam daftar.

1. Pada halaman detail pengguna, di bawah **atribut Pengguna**, Anda dapat melihat atribut mana yang terkait dengan pengguna.

## Menyetel ulang kata sandi pengguna
<a name="manage-user-accounts-reset-user-password"></a>

Gunakan prosedur berikut untuk mengatur ulang kata sandi pengguna di konsol Amazon Cognito.

**Untuk mengatur ulang kata sandi pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan pilih pengguna dalam daftar.

1. Pada halaman detail pengguna, pilih **Tindakan**, **Setel ulang kata sandi**.

1. Dalam dialog **Setel ulang kata sandi**, tinjau informasi dan ketika siap, pilih **Atur ulang**.

   Tindakan ini segera menghasilkan kode konfirmasi yang dikirim ke pengguna dan menonaktifkan kata sandi pengguna saat ini dengan mengubah status pengguna menjadi`RESET_REQUIRED`. Kode **Reset password** berlaku selama 1 jam.

## Mengaktifkan, menonaktifkan, dan menghapus akun pengguna
<a name="manage-user-accounts-enable-disable"></a>

Anda dapat menghapus profil pengguna yang tidak digunakan atau, jika Anda ingin mencegah akses sementara, nonaktifkan mereka. Pengguna dapat menghapus akun mereka sendiri, tetapi hanya administrator kumpulan pengguna yang dapat mengaktifkan dan menonaktifkan akun pengguna.

**Pengaruh penghapusan**  
Pengguna tidak dapat masuk dengan akun pengguna yang dihapus dan untuk mendapatkan kembali akses, harus mendaftar atau dibuat lagi.

**Efek menonaktifkan akun**  
[Saat Anda menonaktifkan akun pengguna, Amazon Cognito secara otomatis membatalkan semua sesi yang diautentikasi, menonaktifkan akun pengguna untuk masuk, dan mencabut akses dan penyegaran token mereka.](token-revocation.md) Amazon Cognito mengembalikan `invalid_request` kesalahan dengan pesan `User is not enabled` saat pengguna mencoba masuk ke akun yang Anda nonaktifkan. Perilaku ini tidak berubah dengan [setelan pengungkapan keberadaan pengguna](cognito-user-pool-managing-errors.md) Anda untuk klien aplikasi. Anda dapat menonaktifkan akun pengguna lokal dan profil lokal akun pengguna federasi. Ketika pengguna masuk dengan login terkelola atau UI yang dihosting klasik, maka Anda menonaktifkan akun mereka, dan kemudian mereka mencoba masuk lagi dengan cookie browser yang mempertahankan sesi otentikasi mereka, Amazon Cognito mengarahkan mereka ke halaman login.

**Pengaruh mengaktifkan akun**  
Pengguna dapat langsung masuk ke akun setelah Anda mengaktifkannya. Akun pengguna diaktifkan secara default. Atribut dan kata sandi pengguna tetap sama seperti sebelum akun mereka dinonaktifkan. Token yang dicabut aplikasi Anda, baik Anda menonaktifkan akun pengguna atau mencabut token penyegaran secara terpisah, tetap tidak valid setelah Anda mengaktifkan akun pengguna yang memiliki token tersebut.

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

**Untuk menghapus akun pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan pilih tombol radio di sebelah nama pengguna pengguna dalam daftar.

1. Pilih **Hapus**.

1. Pilih **Nonaktifkan akses pengguna**.

1. Pilih **Hapus**.

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

Pengguna dapat menghapus akun mereka dengan operasi access-token-authorized [DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html)API swalayan. Berikut ini adalah contoh badan `DeleteUser` permintaan.

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

Administrator dapat menghapus akun pengguna dengan operasi API yang diotorisasi oleh IAM [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html). Berikut ini adalah contoh badan `AdminDeleteUser` permintaan.

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

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

**Untuk menonaktifkan akun pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan pilih nama pengguna pengguna dalam daftar.

1. Pada halaman detail pengguna, pilih **Tindakan**, **Nonaktifkan akses pengguna**.

1. Dalam dialog yang dibuat, pilih **Nonaktifkan**.

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

Administrator dapat menonaktifkan akun pengguna dengan operasi API yang diotorisasi oleh IAM [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html). Berikut ini adalah contoh badan `AdminDisableUser` permintaan.

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

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

**Untuk mengaktifkan akun pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan pilih nama pengguna pengguna dalam daftar.

1. Pada halaman detail pengguna, pilih **Tindakan**, **Aktifkan akses pengguna**.

1. Dalam dialog yang dibuat, pilih **Aktifkan**.

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

Administrator dapat mengaktifkan akun pengguna dengan operasi API yang diotorisasi oleh IAM [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html). Berikut ini adalah contoh badan `AdminEnableUser` permintaan.

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

------

## Mencari atribut pengguna
<a name="manage-user-accounts-searching-user-attributes"></a>

Jika Anda telah membuat kolam pengguna, Anda dapat mencari dari panel **Pengguna** di Konsol Manajemen AWS. **Anda juga dapat menggunakan Amazon Cognito [ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html), yang menerima parameter Filter.**

Anda dapat mencari salah satu dari atribut standar berikut. Atribut kustom tidak dapat dicari.
+ nama pengguna (peka huruf besar/kecil)
+ email
+ phone\$1number
+ nama
+ given\$1name
+ family\$1name
+ preferred\$1username
+ cognito:user\$1status (dipanggil **Status** di konsol tersebut) (peka huruf besar/kecil)
+ status (disebut **Diaktifkan** di konsol tersebut) (peka huruf besar/kecil)
+ sub

**catatan**  
Anda juga dapat membuat daftar pengguna dengan filter sisi klien. Filter sisi server cocok tidak lebih dari 1 atribut. Untuk pencarian lanjutan, gunakan filter sisi klien dengan `--query` parameter `list-users` tindakan di file. AWS Command Line Interface Saat Anda menggunakan filter sisi klien, ListUsers mengembalikan daftar paginasi nol atau lebih pengguna. Anda dapat menerima beberapa halaman berturut-turut dengan hasil nol. Ulangi kueri dengan setiap token pagination yang dikembalikan hingga Anda menerima nilai token pagination null, lalu tinjau hasil gabungannya.  
[Untuk informasi selengkapnya tentang pemfilteran sisi server dan sisi klien, lihat Memfilter keluaran di Panduan Pengguna. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html) AWS Command Line Interface 

## Mencari pengguna dengan Konsol Manajemen AWS
<a name="cognito-user-pools-manage-user-accounts-searching-for-users-using-console"></a>

Jika Anda telah membuat kolam pengguna, Anda dapat mencari dari panel **Pengguna** di Konsol Manajemen AWS.

Konsol Manajemen AWS pencarian selalu awalan (“dimulai dengan”) pencarian.

**Untuk mencari pengguna di konsol Amazon Cognito**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Anda mungkin diminta untuk AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna** dan masukkan nama pengguna di bidang pencarian. Perhatikan bahwa beberapa nilai atribut peka huruf besar/kecil (misalnya, **Nama Pengguna**).

   Anda juga dapat menemukan pengguna dengan menyesuaikan filter pencarian untuk mempersempit cakupan ke properti pengguna lainnya, seperti **Email**, **Nomor telepon**, atau **Nama belakang**.

## Mencari pengguna dengan `ListUsers` API
<a name="cognito-user-pools-searching-for-users-using-listusers-api"></a>

 [Untuk mencari pengguna dari aplikasi Anda, gunakan Amazon Cognito APIListUsers .](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) API ini menggunakan parameter berikut: 
+  `AttributesToGet`: Sebuah array dari string, di mana setiap string adalah nama dari atribut pengguna yang akan dikembalikan untuk setiap pengguna dalam hasil pencarian. Untuk mengambil semua atribut, jangan sertakan `AttributesToGet` parameter atau permintaan `AttributesToGet` dengan nilai string `null` literal.
+  `Filter`: Sebuah string filter dari bentuk “`AttributeName` `Filter-Type` “`AttributeValue`“”. Tanda kutip dalam string filter harus diloloskan menggunakan karakter garis miring terbalik (`\`). Misalnya, `"family_name = \"Reddy\""`. Jika string filter kosong, `ListUsers` mengembalikan semua pengguna di kolam pengguna. 
  +  `AttributeName`: Nama atribut yang akan dicari. Anda hanya dapat mencari satu atribut dalam satu waktu. 
**catatan**  
Anda hanya dapat mencari atribut standar. Atribut kustom tidak dapat dicari. Ini karena hanya atribut terindeks yang dapat dicari, dan atribut khusus tidak dapat diindeks.
  +  `Filter-Type`: Untuk pencocokan tepat, gunakan `=`, misalnya, `given_name = "Jon"`. Untuk kecocokan awalan ("dimulai dengan"), gunakan `^=`, misalnya, `given_name ^= "Jon"`. 
  +  `AttributeValue`: Nilai atribut yang harus dicocokkan untuk setiap pengguna.
+  `Limit`: Jumlah maksimum pengguna yang akan dikembalikan.
+  `PaginationToken`: Token untuk mendapatkan lebih banyak hasil dari pencarian sebelumnya. Amazon Cognito kedaluwarsa token pagination setelah satu jam.
+  `UserPoolId`: ID kolam pengguna untuk kolam pengguna tempat pencarian harus dilakukan.

Semua pencarian tidak peka huruf besar/kecil. Hasil pencarian diurutkan berdasarkan atribut yang diberi nama oleh string `AttributeName`, dalam urutan naik.

## Contoh menggunakan `ListUsers` API
<a name="cognito-user-pools-searching-for-users-listusers-api-examples"></a>

Contoh berikut mengembalikan semua pengguna dan mencakup semua atribut.

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

Contoh berikut menampilkan semua pengguna yang nomor teleponnya dimulai dengan "\$11312" dan mencakup semua atribut.

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

Contoh berikut mengembalikan 10 pengguna pertama yang nama keluarganya "Reddy". Untuk setiap pengguna, hasil pencarian mencakup nama pengguna, nomor telepon, dan alamat email. Jika ada lebih dari 10 pengguna yang cocok di kolam pengguna, responsnya mencakup token pemberian nomor halaman.

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

Jika contoh sebelumnya mengembalikan token pemberian nomor halaman, contoh berikut mengembalikan 10 pengguna berikutnya yang cocok dengan string filter yang sama.

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

# Kata sandi, pemulihan akun, dan kebijakan kata sandi
<a name="managing-users-passwords"></a>

Semua pengguna yang masuk ke kumpulan pengguna, bahkan [pengguna federasi](cognito-terms.md#terms-federateduser), memiliki kata sandi yang ditetapkan ke profil pengguna mereka. [Pengguna lokal](cognito-terms.md#terms-localuser) dan [pengguna tertaut](cognito-terms.md#terms-linkeduser) harus memberikan kata sandi saat mereka masuk. Pengguna federasi tidak menggunakan kata sandi kumpulan pengguna, tetapi masuk dengan penyedia identitas mereka (iDP). Anda dapat mengizinkan pengguna untuk mengatur ulang kata sandi mereka sendiri, mengatur ulang atau mengubah kata sandi sebagai administrator, dan [menetapkan kebijakan](#user-pool-settings-policies) untuk kompleksitas dan riwayat kata sandi.

Amazon Cognito tidak menyimpan kata sandi pengguna dalam teks biasa. Sebaliknya, ia menyimpan hash kata sandi setiap pengguna dengan garam khusus pengguna. Karena itu, Anda tidak dapat mengambil kata sandi yang ada dari profil pengguna di kumpulan pengguna Anda. Sebagai praktik terbaik, jangan menyimpan kata sandi pengguna teks biasa di mana pun. Lakukan reset kata sandi saat pengguna lupa kata sandi mereka.

## Reset dan pemulihan kata sandi
<a name="user-pool-password-reset-and-recovery"></a>

Pengguna lupa kata sandi mereka. Anda mungkin ingin mereka dapat mengatur ulang kata sandi mereka sendiri, atau Anda mungkin ingin meminta administrator mengatur ulang kata sandi mereka untuk mereka. Kumpulan pengguna Amazon Cognito memiliki opsi untuk kedua model. Bagian panduan ini mencakup pengaturan kumpulan pengguna dan operasi API untuk pengaturan ulang kata sandi.

Operasi [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API dan opsi login terkelola **Lupa kata sandi Anda?** kirim kode kepada pengguna yang, ketika mereka mengonfirmasi bahwa mereka memiliki kode yang benar, memberi mereka kesempatan untuk mengatur kata sandi baru [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html). Ini adalah model pemulihan kata sandi swalayan.

**Pemulihan pengguna yang tidak diverifikasi**  
Anda dapat mengirim pesan pemulihan ke pengguna yang telah memverifikasi alamat email atau nomor telepon mereka. Jika mereka tidak memiliki email atau telepon pemulihan yang dikonfirmasi, administrator kumpulan pengguna dapat menandai alamat email atau nomor telepon mereka yang diverifikasi. Edit **atribut Pengguna pengguna** di konsol Amazon Cognito dan pilih kotak centang di samping Tandai **nomor telepon sebagai terverifikasi atau **Tandai alamat email** sebagai terverifikasi**. Anda juga dapat mengatur `email_verified` atau `phone_number_verified` menjadi true dalam [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)permintaan. Untuk pengguna baru, operasi [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API mengirimkan kode baru ke alamat email atau nomor telepon mereka dan mereka dapat menyelesaikan konfirmasi dan verifikasi swalayan.

**Setel ulang kata sandi sebagai administrator**  
Operasi [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)dan [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API adalah metode reset kata sandi yang diinititasi administrator. `AdminSetUserPassword`menetapkan kata sandi sementara atau permanen, dan `AdminResetUserPassword` mengirimkan kode reset kata sandi kepada pengguna dengan cara yang sama seperti. `ForgotPassword`

### Konfigurasikan pengaturan ulang dan pemulihan kata sandi
<a name="user-pool-password-reset-and-recovery-configure"></a>

Amazon Cognito secara otomatis memilih opsi pemulihan akun Anda dari atribut yang diperlukan dan opsi masuk yang Anda pilih saat membuat kumpulan pengguna di konsol. Anda dapat mengubah pengaturan default ini.

Metode MFA pilihan pengguna memengaruhi metode yang dapat mereka gunakan untuk memulihkan kata sandi mereka. Pengguna yang MFA pilihannya adalah melalui pesan email tidak dapat menerima kode pengaturan ulang kata sandi melalui email. Pengguna yang MFA pilihannya melalui pesan SMS tidak dapat menerima kode pengaturan ulang kata sandi melalui SMS.

Pengaturan [pemulihan kata sandi](#user-pool-password-reset-and-recovery) Anda harus menyediakan opsi alternatif ketika pengguna tidak memenuhi syarat untuk metode pengaturan ulang kata sandi pilihan Anda. Misalnya, mekanisme pemulihan Anda mungkin memiliki email sebagai prioritas pertama dan email MFA mungkin menjadi opsi di kumpulan pengguna Anda. Dalam hal ini, tambahkan pemulihan akun pesan SMS sebagai opsi kedua atau gunakan operasi API administratif untuk mengatur ulang kata sandi bagi pengguna tersebut.

Amazon Cognito membalas permintaan pengaturan ulang kata sandi dari pengguna yang tidak memiliki metode pemulihan yang valid dengan respons kesalahan. `InvalidParameterException`

**catatan**  
Pengguna tidak dapat menerima kode MFA dan pengaturan ulang kata sandi di alamat email atau nomor telepon yang sama. Jika mereka menggunakan kata sandi satu kali (OTPs) dari pesan email untuk MFA, mereka harus menggunakan pesan SMS untuk pemulihan akun. Jika mereka menggunakan OTPs dari pesan SMS untuk MFA, mereka harus menggunakan pesan email untuk pemulihan akun. Di kumpulan pengguna dengan MFA, pengguna mungkin tidak dapat menyelesaikan pemulihan kata sandi swalayan jika mereka memiliki atribut untuk alamat email mereka tetapi tidak ada nomor telepon, atau nomor telepon mereka tetapi tidak ada alamat email.  
Untuk mencegah status di mana pengguna tidak dapat mengatur ulang kata sandi mereka di kumpulan pengguna dengan konfigurasi ini, setel `phone_number` [atribut `email` dan sesuai kebutuhan](user-pool-settings-attributes.md). Sebagai alternatif, Anda dapat mengatur proses yang selalu mengumpulkan dan mengatur atribut tersebut saat pengguna mendaftar atau ketika administrator membuat profil pengguna. *Ketika pengguna memiliki kedua atribut, Amazon Cognito secara otomatis mengirimkan kode reset kata sandi ke tujuan yang bukan faktor MFA pengguna.*

Prosedur berikut mengonfigurasi pemulihan akun swalayan di kumpulan pengguna.

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

`AccountRecoverySetting`Parameternya adalah parameter kumpulan pengguna yang menetapkan metode yang dapat digunakan pengguna untuk memulihkan kata sandi mereka dalam permintaan [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API atau ketika mereka memilih **Lupa kata sandi?** dalam login terkelola. `ForgotPassword`mengirimkan kode pemulihan ke email terverifikasi atau nomor telepon terverifikasi. Kode pemulihan berlaku selama satu jam. Saat Anda menentukan kumpulan pengguna, Amazon Cognito memilih tujuan pengiriman kode berdasarkan prioritas yang Anda tetapkan. [AccountRecoverySetting](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AccountRecoverySettingType.html)

Saat Anda menentukan `AccountRecoverySetting` dan pengguna memiliki SMS MFA yang terkonfigurasi, SMS tidak dapat digunakan sebagai mekanisme pemulihan akun. Prioritas untuk pengaturan ini ditentukan dengan `1` menjadi prioritas tertinggi. Amazon Cognito mengirimkan verifikasi hanya ke salah satu metode yang ditentukan. Contoh berikut `AccountRecoverySetting` menetapkan alamat email sebagai tujuan utama untuk kode pemulihan akun, kembali ke pesan SMS jika pengguna tidak memiliki atribut alamat email.

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

Nilai `admin_only` mematikan pemulihan akun swalayan, alih-alih mengharuskan pengguna untuk menghubungi administrator mereka untuk mengatur ulang kata sandi. Anda tidak dapat menggunakan `admin_only` dengan mekanisme pemulihan akun lainnya. Berikut e

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

Jika Anda tidak menentukan`AccountRecoverySetting`, Amazon Cognito mengirimkan kode pemulihan ke nomor telepon terverifikasi terlebih dahulu, dan ke alamat email terverifikasi jika pengguna tidak memiliki atribut nomor telepon.

Untuk informasi lebih lanjut tentang`AccountRecoverySetting`, lihat [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)dan [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html).

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

Konfigurasikan opsi pemulihan akun dan pengaturan ulang kata sandi dari menu **Masuk** kumpulan pengguna Anda.

**Untuk mengatur pemulihan akun pengguna**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Pilih **Kolam Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Masuk**. Temukan **Pemulihan akun pengguna** dan pilih **Edit**

1. Untuk mengizinkan pengguna mengatur ulang kata sandi mereka sendiri, pilih **Aktifkan pemulihan akun swalayan**.

1. Konfigurasikan metode pengiriman untuk kode pemulihan kata sandi yang dikirim oleh kumpulan pengguna Anda ke pengguna. Di bawah **Metode pengiriman untuk pesan pemulihan akun pengguna**, pilih opsi yang tersedia. Sebagai praktik terbaik, pilih opsi yang memiliki metode sekunder untuk mengirim pesan, misalnya **Email jika tersedia, jika tidak SMS**. Dengan metode pengiriman sekunder, Amazon Cognito dapat mengirim kode ke pengguna dengan cara yang mengharuskan mereka menggunakan media yang berbeda untuk pengaturan ulang kata sandi daripada untuk MFA.

1. Pilih **Simpan perubahan**.

------

### Lupa perilaku kata sandi
<a name="forgot-password"></a>

Dalam jam tertentu, kami mengizinkan antara 5 dan 20 upaya bagi pengguna untuk meminta atau memasukkan kode reset kata sandi sebagai bagian dari lupa kata sandi dan tindakan. confirm-forgot-password Nilai pasti tergantung pada parameter risiko yang terkait dengan permintaan. Harap dicatat bahwa perilaku ini dapat berubah. 

## Menambahkan persyaratan kata sandi kumpulan pengguna
<a name="user-pool-settings-policies"></a>

Kata sandi yang kuat dan kompleks adalah praktik terbaik keamanan untuk kumpulan pengguna Anda. Terutama dalam aplikasi yang terbuka untuk internet, kata sandi yang lemah dapat mengekspos kredensi pengguna Anda ke sistem yang menebak kata sandi dan mencoba mengakses data Anda. Semakin kompleks kata sandi, semakin sulit untuk ditebak. Amazon Cognito memiliki alat tambahan untuk administrator yang sadar keamanan, seperti [perlindungan ancaman](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-threat-protection.title) dan [AWS WAF web ACLs](user-pool-waf.md#user-pool-waf.title), tetapi kebijakan kata sandi Anda adalah elemen sentral dari keamanan direktori pengguna Anda.

Kata sandi untuk pengguna lokal di kumpulan pengguna Amazon Cognito tidak kedaluwarsa secara otomatis. Sebagai praktik terbaik, catat waktu, tanggal, dan metadata pengaturan ulang kata sandi pengguna di sistem eksternal. Dengan log eksternal usia kata sandi, aplikasi Anda atau pemicu Lambda dapat mencari usia kata sandi pengguna dan memerlukan pengaturan ulang setelah periode tertentu.

Anda dapat mengonfigurasi kumpulan pengguna agar memerlukan kompleksitas kata sandi minimum yang sesuai dengan standar keamanan Anda. Kata sandi yang kompleks memiliki panjang minimal delapan karakter. Mereka juga termasuk campuran huruf besar, numerik, dan karakter khusus.

Dengan tingkatan fitur Essentials atau Plus, Anda juga dapat menetapkan kebijakan untuk penggunaan kembali kata sandi. Anda dapat mencegah pengguna mengatur ulang kata sandi mereka ke kata sandi baru yang cocok dengan kata sandi mereka saat ini atau salah satu dari hingga 23 kata sandi tambahan sebelumnya, dengan total maksimum 24.

**Untuk menyetel kebijakan kata sandi kumpulan pengguna**

1. Buat kumpulan pengguna dan arahkan ke langkah **Konfigurasi persyaratan keamanan**, atau akses kumpulan pengguna yang ada dan arahkan ke menu **Metode otentikasi**.

1. Arahkan ke **kebijakan Kata Sandi**.

1. Pilih **mode kebijakan Kata Sandi**. **Cognito default mengonfigurasi** kumpulan pengguna Anda dengan pengaturan minimum yang disarankan. Anda juga dapat memilih kebijakan kata sandi **khusus**.

1. Tetapkan **panjang minimum Kata Sandi**. Semua pengguna harus mendaftar atau dibuat dengan kata sandi yang panjangnya lebih besar dari atau sama dengan nilai ini. Anda dapat mengatur nilai minimum ini setinggi 99, tetapi pengguna Anda dapat mengatur kata sandi hingga 256 karakter.

1. Konfigurasikan aturan kompleksitas kata **sandi di bawah Persyaratan Kata Sandi**. Pilih jenis karakter—angka, karakter khusus, huruf besar, dan huruf kecil—yang ingin Anda perlukan setidaknya satu dari kata sandi setiap pengguna.

   Anda dapat meminta setidaknya satu dari karakter berikut dalam kata sandi. Setelah Amazon Cognito memverifikasi bahwa kata sandi berisi karakter minimum yang diperlukan, kata sandi pengguna Anda dapat berisi karakter tambahan dari jenis apa pun hingga panjang kata sandi maksimum.
   + [Huruf latin dasar huruf besar dan kecil](https://en.wikipedia.org/wiki/ISO_basic_Latin_alphabet)
   + Nomor
   + Karakter khusus berikut.

     ```
     ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ ` = + - 
     ```
   + Karakter spasi non-terkemuka dan tidak tertinggal.

1. Tetapkan nilai untuk **kata sandi sementara yang ditetapkan oleh administrator kedaluwarsa**. Setelah periode ini berlalu, pengguna baru yang Anda buat di konsol Amazon Cognito atau dengan tidak `AdminCreateUser` dapat masuk dan menetapkan kata sandi baru. Setelah mereka masuk dengan kata sandi sementara mereka, akun pengguna mereka tidak pernah kedaluwarsa. Untuk memperbarui durasi kata sandi di API kumpulan pengguna Amazon Cognito, tetapkan nilai untuk permintaan [TemporaryPasswordValidityDays ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_PasswordPolicyType.html#CognitoUserPools-Type-PasswordPolicyType-TemporaryPasswordValidityDays)Anda [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)atau [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.

1. Tetapkan nilai untuk **Mencegah penggunaan kata sandi sebelumnya**, jika tersedia. Untuk menggunakan fitur ini, pilih [tingkat fitur Essentials atau Plus di kumpulan](cognito-sign-in-feature-plans.md) pengguna Anda. Nilai parameter ini adalah jumlah kata sandi sebelumnya yang dicegah agar tidak cocok dengan kata sandi baru saat pengguna mengatur ulang kata sandi mereka.

Untuk mengatur ulang akses akun pengguna yang kedaluwarsa, lakukan salah satu hal berikut:
+ Kirim kata sandi sementara baru dan atur ulang periode kedaluwarsa dengan permintaan [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API yang telah `MessageAction` disetel ke. `RESEND`
+ Hapus profil pengguna dan buat yang baru.
+ Buat kode konfirmasi baru dalam permintaan [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API.

# Mengimpor pengguna ke kumpulan pengguna
<a name="cognito-user-pools-import-users"></a>

Ada dua cara Anda dapat mengimpor atau melakukan migrasi pengguna dari direktori pengguna atau basis data pengguna yang ada ke dalam kolam pengguna Amazon Cognito. Anda dapat melakukan migrasi pengguna saat mereka masuk menggunakan Amazon Cognito untuk pertama kalinya dengan pemicu migrasi pengguna Lambda. Dengan pendekatan ini, pengguna dapat terus menggunakan sandi yang ada dan tidak perlu mengatur ulang kata sandi setelah migrasi ke kolam pengguna Anda. Atau, Anda dapat melakukan migrasi pengguna secara massal dengan mengunggah file CSV yang berisi atribut profil pengguna untuk semua pengguna. Bagian berikut menjelaskan kedua pendekatan ini.

**Sumber daya lainnya**
+ [Pendekatan untuk memigrasikan pengguna ke kumpulan pengguna Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)
+ [AWS re:inforce 2023 - Bermigrasi ke Amazon Cognito](https://www.youtube.com/watch?v=OkDj9uXWwCc)

**Topics**
+ [Mengimpor pengguna dengan pemicu Lambda migrasi pengguna](cognito-user-pools-import-using-lambda.md)
+ [Mengimpor pengguna ke kumpulan pengguna dari file CSV](cognito-user-pools-using-import-tool.md)

# Mengimpor pengguna dengan pemicu Lambda migrasi pengguna
<a name="cognito-user-pools-import-using-lambda"></a>

Dengan pendekatan ini, Anda dapat dengan lancar memigrasikan pengguna dari direktori pengguna yang ada ke kumpulan pengguna saat pengguna masuk untuk pertama kalinya dengan aplikasi Anda atau meminta pengaturan ulang kata sandi. Tambahkan [Memigrasi pengguna pemicu Lambda](user-pool-lambda-migrate-user.md) fungsi ke kumpulan pengguna Anda dan menerima metadata tentang pengguna yang mencoba masuk, dan mengembalikan informasi profil pengguna dari sumber identitas eksternal. Untuk detail dan kode contoh untuk pemicu Lambda ini, termasuk parameter permintaan dan respons, lihat. [Migrasikan parameter pemicu Lambda pengguna](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration)

Sebelum Anda mulai memigrasikan pengguna, buat fungsi Lambda migrasi pengguna di Akun AWS Anda, dan setel fungsi Lambda sebagai pemicu migrasi pengguna di kumpulan pengguna Anda. Tambahkan kebijakan otorisasi ke fungsi Lambda Anda yang hanya mengizinkan prinsipal akun layanan Amazon Cognito, `cognito-idp.amazonaws.com` untuk menjalankan fungsi Lambda, dan hanya dalam konteks kumpulan pengguna Anda sendiri. Untuk informasi selengkapnya, lihat [Menggunakan kebijakan berbasis sumber daya untuk (kebijakan fungsi AWS Lambda Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)). 

**Proses masuk**

1. Pengguna membuka aplikasi Anda dan masuk dengan API kumpulan pengguna Amazon Cognito atau melalui login terkelola. Untuk informasi selengkapnya tentang cara memfasilitasi masuk dengan Amazon APIs Cognito, lihat. [Mengintegrasikan otentikasi dan otorisasi Amazon Cognito dengan aplikasi web dan seluler](cognito-integrate-apps.md)

1. Aplikasi Anda mengirimkan nama pengguna dan kata sandi ke Amazon Cognito. Jika aplikasi Anda memiliki UI login khusus yang dibuat dengan AWS SDK, aplikasi Anda harus menggunakan [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)atau [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)dengan alur `USER_PASSWORD_AUTH` atau`ADMIN_USER_PASSWORD_AUTH`. Saat aplikasi Anda menggunakan salah satu alur ini, SDK akan mengirimkan kata sandi ke server.
**catatan**  
Sebelum menambahkan pemicu migrasi pengguna, aktifkan `USER_PASSWORD_AUTH` atau `ADMIN_USER_PASSWORD_AUTH` alur di setelan klien aplikasi Anda. Anda harus menggunakan aliran ini alih-alih `USER_SRP_AUTH` aliran default. Amazon Cognito harus mengirim kata sandi ke fungsi Lambda Anda sehingga dapat memverifikasi otentikasi pengguna Anda di direktori lain. SRP mengaburkan kata sandi pengguna Anda dari fungsi Lambda Anda.

1. Amazon Cognito memeriksa apakah nama pengguna yang dikirimkan cocok dengan nama pengguna atau alias di kumpulan pengguna. Anda dapat mengatur alamat email, nomor telepon, atau nama pengguna pilihan pengguna sebagai alias di kumpulan pengguna Anda. Jika pengguna tidak ada, Amazon Cognito mengirimkan parameter, termasuk nama pengguna dan kata sandi, ke fungsi Anda[Memigrasi pengguna pemicu Lambda](user-pool-lambda-migrate-user.md).

1. [Memigrasi pengguna pemicu Lambda](user-pool-lambda-migrate-user.md)Fungsi Anda memeriksa atau mengautentikasi pengguna dengan direktori pengguna atau basis data pengguna yang ada. Fungsi mengembalikan atribut pengguna yang disimpan Amazon Cognito di profil pengguna di kumpulan pengguna. Anda dapat mengembalikan `username` parameter hanya jika nama pengguna yang dikirimkan cocok dengan atribut alias. Jika Anda ingin pengguna terus menggunakan kata sandi yang ada, fungsi Anda akan menyetel atribut `finalUserStatus` `CONFIRMED` dalam respons Lambda. Aplikasi Anda harus mengembalikan semua `"response"` parameter yang ditampilkan di[Migrasikan parameter pemicu Lambda pengguna](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).
**penting**  
Jangan mencatat seluruh objek peristiwa permintaan dalam kode Lambda migrasi pengguna Anda. Objek acara permintaan ini menyertakan kata sandi pengguna. Jika Anda tidak membersihkan log, kata sandi akan muncul di CloudWatch Log.

1. Amazon Cognito membuat profil pengguna di kolam pengguna Anda, dan mengembalikan token ke klien aplikasi Anda.

1. Aplikasi Anda melakukan pengambilan token, menerima autentikasi pengguna, dan melanjutkan ke konten yang diminta.

Setelah memigrasikan pengguna, gunakan `USER_SRP_AUTH` untuk login. Protokol Secure Remote Password (SRP) tidak mengirim kata sandi ke seluruh jaringan, dan memberikan manfaat keamanan atas `USER_PASSWORD_AUTH` alur yang Anda gunakan selama migrasi.

Jika terjadi kesalahan selama migrasi, termasuk masalah perangkat klien atau jaringan, aplikasi Anda menerima respons kesalahan dari API kumpulan pengguna Amazon Cognito. Jika ini terjadi, Amazon Cognito mungkin atau mungkin tidak membuat akun pengguna di kumpulan pengguna Anda. Pengguna kemudian harus mencoba masuk lagi. Jika login gagal berulang kali, coba setel ulang kata sandi pengguna dengan alur lupa kata sandi di aplikasi Anda. 

Alur forgot-password juga memanggil [Memigrasi pengguna pemicu Lambda](user-pool-lambda-migrate-user.md) fungsi Anda dengan sumber peristiwa. `UserMigration_ForgotPassword` Karena pengguna tidak mengirimkan kata sandi saat meminta pengaturan ulang kata sandi, Amazon Cognito tidak menyertakan kata sandi jika dikirimkan ke fungsi Lambda Anda. Fungsi Anda hanya dapat mencari pengguna di direktori pengguna yang ada dan mengembalikan atribut untuk ditambahkan ke profil pengguna di kumpulan pengguna Anda. Setelah fungsi Anda menyelesaikan pemanggilannya dan mengembalikan responsnya ke Amazon Cognito, kumpulan pengguna Anda mengirimkan kode reset kata sandi melalui email atau SMS. Di aplikasi Anda, minta pengguna Anda untuk kode konfirmasi dan kata sandi baru mereka, lalu kirim informasi tersebut ke Amazon Cognito dalam permintaan [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)API. Anda juga dapat menggunakan halaman bawaan untuk alur lupa kata sandi di login terkelola.

**Sumber daya tambahan**
+ [Pendekatan untuk memigrasikan pengguna ke kumpulan pengguna Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)

# Mengimpor pengguna ke kumpulan pengguna dari file CSV
<a name="cognito-user-pools-using-import-tool"></a>

Bila Anda memiliki penyimpanan identitas eksternal dan waktu untuk menyiapkan kumpulan pengguna Anda untuk pengguna lokal baru, impor pengguna massal dari file nilai yang dipisahkan koma (CSV) dapat menjadi opsi berbiaya rendah dan murah untuk migrasi ke kumpulan pengguna Amazon Cognito. Impor file CSV adalah proses mengunduh dan mengisi file template, lalu menyerahkan file ke kumpulan pengguna Anda dalam pekerjaan impor. Anda dapat menggunakan impor CSV untuk membuat pengguna pengujian dengan cepat. Anda juga dapat mengisi file secara terprogram dengan permintaan API baca ke penyimpanan identitas eksternal Anda, diikuti dengan mengurai detail dan atributnya ke dalam operasi penulisan ke file.

Proses impor menetapkan nilai untuk semua atribut pengguna kecuali **kata sandi**. Impor kata sandi tidak didukung, karena praktik terbaik keamanan mengharuskan kata sandi tidak tersedia sebagai teks biasa, dan kami tidak mendukung pengimporan hash. Ini berarti pengguna Anda harus mengubah kata sandi mereka saat pertama kali mereka masuk. Pengguna Anda berada dalam `RESET_REQUIRED` keadaan saat diimpor menggunakan metode ini.

Cara paling rendah untuk mengimpor pengguna dari CSV adalah dengan mengaktifkan login [tanpa kata sandi](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) di kumpulan pengguna Anda. Dengan atribut alamat email dan nomor telepon serta konfigurasi kumpulan pengguna yang tepat, pengguna dapat masuk dengan email atau SMS kata sandi satu kali (OTPs) segera setelah pekerjaan impor Anda selesai. Untuk informasi selengkapnya, lihat [Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka](#cognito-user-pools-using-import-tool-password-reset).

Anda juga dapat mengatur kata sandi pengguna Anda dengan permintaan [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 yang menetapkan `Permanent` parameter ke`true`. Impor CSV tidak berkontribusi pada pengguna aktif bulanan yang ditagih (MAUs) di kumpulan pengguna Anda. Namun, operasi pengaturan ulang kata sandi memang menghasilkan. MAUs Untuk mengelola biaya ketika Anda mengimpor sejumlah besar pengguna dengan kata sandi yang mungkin tidak segera aktif, siapkan aplikasi Anda untuk meminta pengguna untuk kata sandi baru saat mereka masuk dan menerima `RESET_REQUIRED` tantangan.

**catatan**  
Tanggal pembuatan untuk setiap pengguna adalah waktu ketika pengguna tersebut diimpor ke kolam pengguna. Tanggal pembuatan bukan salah satu atribut yang diimpor.

**Langkah-langkah untuk membuat pekerjaan impor pengguna**

1. Buat peran Amazon CloudWatch Logs di konsol AWS Identity and Access Management (IAM).

1. Buat file .csv impor pengguna.

1. Buat dan jalankan tugas impor pengguna.

1. Unggah file .csv impor pengguna.

1. Mulai dan jalankan tugas impor pengguna.

1. Gunakan CloudWatch untuk memeriksa log peristiwa.

1. Haruskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka.

**Sumber daya lainnya**
+ [Profil Pengguna Cognito Ekspor Arsitektur Referensi](https://aws.amazon.com/solutions/implementations/cognito-user-profiles-export-reference-architecture/) untuk mengekspor akun pengguna antar kumpulan pengguna

**Topics**
+ [Membuat peran IAM CloudWatch Log](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role)
+ [Membuat file CSV impor pengguna](#cognito-user-pools-using-import-tool-csv-header)
+ [Membuat dan menjalankan pekerjaan impor kumpulan pengguna Amazon Cognito](#cognito-user-pools-creating-import-job)
+ [Melihat hasil impor kumpulan pengguna di CloudWatch konsol](#cognito-user-pools-using-import-tool-cloudwatch)
+ [Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka](#cognito-user-pools-using-import-tool-password-reset)

## Membuat peran IAM CloudWatch Log
<a name="cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role"></a>

Jika Anda menggunakan Amazon Cognito CLI atau API, maka Anda perlu membuat peran IAM. CloudWatch Prosedur berikut menjelaskan cara membuat peran IAM yang dapat digunakan Amazon Cognito untuk menulis hasil pekerjaan CloudWatch impor Anda ke Log. 

**catatan**  
Saat membuat pekerjaan impor di konsol Amazon Cognito, Anda dapat membuat peran IAM secara bersamaan. Saat Anda memilih untuk **Membuat peran IAM baru**, Amazon Cognito secara otomatis menerapkan kebijakan kepercayaan dan kebijakan IAM yang sesuai ke peran tersebut.

**Untuk membuat peran IAM CloudWatch Log untuk impor kumpulan pengguna (AWS CLI, API)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buat peran IAM baru untuk sebuah Layanan AWS. Untuk petunjuk mendetail, lihat [Membuat peran untuk Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) dalam *Panduan AWS Identity and Access Management Pengguna*.

   1. Bila Anda memilih **kasus Penggunaan** untuk **jenis entitas Tepercaya** Anda, pilih layanan apa pun. Amazon Cognito saat ini tidak terdaftar dalam kasus penggunaan layanan.

   1. Di layar **Tambahkan izin**, pilih **Buat kebijakan** dan masukkan pernyataan kebijakan berikut. Ganti *REGION* dengan kumpulan pengguna Anda, misalnya`us-east-1`. Wilayah AWS Ganti *ACCOUNT* dengan Akun AWS ID Anda, misalnya`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. Karena Anda tidak memilih Amazon Cognito sebagai entitas tepercaya saat membuat peran, Anda sekarang harus mengedit hubungan kepercayaan peran secara manual. Pilih **Peran** dari panel navigasi konsol IAM, lalu pilih peran baru yang Anda buat.

1. Pilih tab **Trust relationship**.

1. Pilih **Edit kebijakan kepercayaan**.

1. Tempelkan pernyataan kebijakan berikut ke dalam **Edit kebijakan kepercayaan**, ganti teks yang ada: 

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

****  

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

------

1. Pilih **Perbarui kebijakan**. 

1. Perhatikan ARN peran. Anda akan memberikan ARN saat Anda membuat pekerjaan impor Anda.

## Membuat file CSV impor pengguna
<a name="cognito-user-pools-using-import-tool-csv-header"></a>

Sebelum dapat mengimpor pengguna yang sudah ada ke kumpulan pengguna, Anda harus membuat file nilai dipisahkan koma (CSV) yang berisi pengguna yang ingin Anda impor, dan atributnya. Dari kumpulan pengguna, Anda dapat mengambil file impor pengguna dengan header yang mencerminkan skema atribut kumpulan pengguna Anda. Anda kemudian dapat menyisipkan informasi pengguna yang cocok dengan persyaratan pemformatan di[Memformat file CSV](#cognito-user-pools-using-import-tool-formatting-csv-file). 

### Mengunduh header file CSV (konsol)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-console"></a>

Gunakan prosedur berikut untuk mengunduh file header CSV.

**Untuk mengunduh header file CSV**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Anda mungkin diminta untuk AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna**.

1. Di bagian **Impor pengguna**, pilih **Buat pekerjaan impor**.

1. Di bawah **Unggah CSV**, pilih tautan *template.csv* dan unduh file CSV.

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

Untuk mendapatkan daftar header yang benar, dari **menu Pengguna** di bawah **Impor pengguna**, pilih **Buat pekerjaan impor**. Dalam dialog berikut, pilih `template.csv` tautan untuk mengunduh file templat dengan atribut kumpulan pengguna Anda.

Anda juga dapat menjalankan perintah CLI berikut, di mana *USER\$1POOL\$1ID* adalah pengidentifikasi kumpulan pengguna untuk kumpulan pengguna yang akan Anda impor pengguna ke:

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

Contoh respons:

```
{
    "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"
}
```

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

 File header CSV impor pengguna yang diunduh terlihat seperti string berikut. Ini juga mencakup atribut khusus apa pun yang telah Anda tambahkan ke kumpulan pengguna Anda.

```
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
```

Edit file CSV Anda sehingga menyertakan header ini dan nilai atribut untuk pengguna Anda, dan diformat sesuai dengan aturan berikut:

**catatan**  
Untuk informasi selengkapnya tentang nilai atribut, seperti format yang tepat untuk nomor telepon, lihat [Bekerja dengan atribut pengguna](user-pool-settings-attributes.md).
+ Baris pertama dalam file adalah baris header yang diunduh, yang berisi nama atribut pengguna.
+ Urutan kolom dalam file CSV tidak masalah.
+ Setiap baris setelah baris pertama berisi nilai atribut untuk pengguna.
+ Semua kolom di header harus ada, tetapi Anda tidak perlu memberikan nilai di setiap kolom.
+ Atribut berikut diperlukan:
  + **cognito:nama pengguna**
  + **email\$1verified** atau **phone\$1number\$1verified**
    + Setidaknya satu dari atribut yang diverifikasi otomatis harus `true` untuk setiap pengguna. Atribut terverifikasi otomatis adalah alamat email atau nomor telepon yang secara otomatis dikirimkan kode Amazon Cognito saat pengguna baru bergabung dengan kumpulan pengguna Anda.
    + Kolam pengguna harus memiliki setidaknya satu atribut terverifikasi otomatis, baik **email\$1verified** atau **phone\$1number\$1verified**. Jika kolam pengguna tidak memiliki atribut yang diverifikasi otomatis, pekerjaan impor tidak akan dimulai.
    + Jika kolam pengguna hanya memiliki satu atribut yang diverifikasi otomatis, atribut tersebut harus diverifikasi untuk setiap pengguna. Sebagai contoh, jika kolam pengguna hanya memiliki **phone\$1number** sebagai atribut yang diverifikasi otomatis, nilai **phone\$1number\$1verified** harus `true` untuk setiap pengguna.
**catatan**  
Agar pengguna dapat mengatur ulang kata sandi mereka, mereka harus memiliki email atau nomor telepon yang diverifikasi. Amazon Cognito mengirimkan pesan yang berisi kode kata sandi reset ke email atau nomor telepon yang ditentukan dalam file CSV. Jika pesan dikirim ke nomor telepon, itu dikirim melalui pesan SMS. Untuk informasi selengkapnya, lihat [Memverifikasi informasi kontak saat mendaftar](signing-up-users-in-your-app.md#allowing-users-to-sign-up-and-confirm-themselves).
  + **Email** (jika **email\$1verified** adalah `true`)
  + **phone\$1number** (jika **phone\$1number\$1verified** adalah `true`)
  + Atribut apa pun yang Anda tandai sebagai dibutuhkan saat Anda membuat kolam pengguna
+ Nilai atribut yang berupa string *tidak* boleh berada dalam tanda kutip.
+ Jika nilai atribut berisi koma, Anda harus meletakkan garis miring terbalik (\$1) sebelum koma. Ini karena bidang dalam file CSV dipisahkan dengan koma.
+ Isi file CSV harus dalam format UTF-8 tanpa tanda urutan byte.
+ Kolom **cognito:username** wajib diisi dan harus unik dalam kolam pengguna Anda. Itu bisa berupa string Unicode apa saja. Namun, itu tidak boleh berisi spasi atau tab.
+ Nilai **tanggal lahir**, jika ada, harus dalam format **mm/dd/yyyy**. Ini berarti, misalnya, bahwa tanggal lahir 1 Februari 1985 harus dikodekan sebagai. **02/01/1985**
+ **Kolom cognito:mfa\$1enabled** harus sesuai dengan persyaratan MFA kumpulan pengguna Anda. Jika Anda telah menetapkan otentikasi multi-faktor (MFA) agar diperlukan di kumpulan pengguna Anda, bidang ini harus kosong `true` atau kosong untuk semua pengguna. Jika Anda telah menetapkan MFA untuk tidak aktif, bidang ini harus `false` atau kosong untuk semua pengguna. Nilai kosong menetapkan status MFA pengguna yang diimpor ke status yang diperlukan oleh kumpulan pengguna. Anda dapat mengimpor pengguna dalam kumpulan pengguna yang diperlukan MFA tanpa faktor MFA yang valid, terlepas dari apakah Anda menetapkan nilai. `cognito:mfa_enabled` Pengguna dalam status ini memiliki MFA aktif tetapi tidak dapat masuk sampai mereka mengonfigurasi atribut email, atribut nomor telepon, atau TOTP, dan konfigurasi tersebut merupakan faktor MFA yang valid di kumpulan pengguna Anda.
+ Panjang baris maksimum adalah 16.000 karakter.
+ Ukuran file CSV maksimum adalah 100 MB.
+ Jumlah maksimum baris (pengguna) dalam file adalah 500.000. Maksimum ini tidak termasuk baris header.
+ Nilai bidang **updated\$1at** diharapkan menjadi waktu epoch dalam hitungan detik, misalnya:. **1471453471**
+ Setiap spasi kosong di depan atau di belakang dalam nilai atribut akan dipangkas.

Daftar berikut adalah contoh file impor CSV untuk kumpulan pengguna tanpa atribut khusus. Skema kumpulan pengguna Anda mungkin berbeda dari contoh ini. Dalam hal ini, Anda harus memberikan nilai pengujian dalam template CSV yang Anda unduh dari kumpulan pengguna Anda.

```
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
```

## Membuat dan menjalankan pekerjaan impor kumpulan pengguna Amazon Cognito
<a name="cognito-user-pools-creating-import-job"></a>

Bagian ini menjelaskan cara membuat dan menjalankan tugas impor kumpulan pengguna menggunakan konsol Amazon Cognito dan AWS Command Line Interface ()AWS CLI.

**Topics**
+ [Mengimpor pengguna dari file CSV (konsol)](#cognito-user-pools-using-import-tool-console)
+ [Mengimpor pengguna ()AWS CLI](#cognito-user-pools-using-import-tool-cli)

### Mengimpor pengguna dari file CSV (konsol)
<a name="cognito-user-pools-using-import-tool-console"></a>

Prosedur berikut menjelaskan cara mengimpor pengguna dari file CSV.

**Untuk mengimpor pengguna dari file CSV (konsol)**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Anda mungkin diminta untuk AWS kredensialnya.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Pilih menu **Pengguna**.

1. Di bagian **Impor pengguna**, pilih **Buat pekerjaan impor**.

1. Pada halaman **Create import job**, masukkan **nama Job**.

1. Pilih untuk **membuat peran IAM baru atau menggunakan peran** **IAM yang ada**.

   1. Jika Anda memilih **Buat peran IAM baru**, masukkan nama untuk peran baru Anda. Amazon Cognito akan secara otomatis membuat peran dengan izin dan hubungan kepercayaan yang benar. Prinsipal IAM yang membuat pekerjaan impor harus memiliki izin untuk membuat peran IAM.

   1. Jika Anda memilih **Gunakan peran IAM yang ada**, pilih peran dari daftar di bawah pemilihan **peran IAM**. Peran ini harus memiliki izin dan kebijakan kepercayaan yang dijelaskan dalam[Membuat peran IAM CloudWatch Log](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role).

1. Di bawah **Unggah CSV**, **pilih Pilih file** dan lampirkan file CSV yang Anda siapkan.

1. Pilih **Buat pekerjaan** untuk mengirimkan pekerjaan Anda, tetapi mulailah nanti. Pilih **Buat dan mulai pekerjaan** untuk mengirimkan pekerjaan Anda dan segera memulainya.

1. Jika Anda membuat pekerjaan Anda tetapi tidak memulainya, Anda dapat memulainya nanti. Di menu **Pengguna** di bawah **Impor pengguna**, pilih pekerjaan impor Anda, lalu pilih **Mulai**. Anda juga dapat mengirimkan permintaan [StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html)API dari AWS SDK.

1. Pantau kemajuan pekerjaan impor pengguna Anda di menu **Pengguna** di bawah **Impor pengguna**. Jika pekerjaan Anda tidak berhasil, Anda dapat memilih nilai **Status**. Untuk detail tambahan, pilih **Lihat CloudWatch log untuk detail selengkapnya** dan tinjau masalah apa pun di konsol CloudWatch Log.

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

Perintah CLI berikut tersedia untuk mengimpor pengguna ke kolam pengguna:
+ `create-user-import-job`
+ `get-csv-header`
+ `describe-user-import-job`
+ `list-user-import-jobs`
+ `start-user-import-job`
+ `stop-user-import-job`

Untuk mendapatkan daftar opsi baris perintah untuk perintah ini, gunakan opsi baris perintah `help`. Sebagai contoh:

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

#### Membuat pekerjaan impor pengguna
<a name="cognito-user-pools-using-import-tool-cli-creating-user-import-job"></a>

Setelah Anda membuat file CSV, buat pekerjaan impor pengguna dengan menjalankan perintah CLI berikut, *JOB\$1NAME* di mana nama yang Anda pilih untuk pekerjaan itu*USER\$1POOL\$1ID*, adalah ID kumpulan pengguna untuk kumpulan pengguna tempat pengguna baru akan ditambahkan, *ROLE\$1ARN* dan merupakan peran ARN yang Anda terima di: [Membuat peran IAM CloudWatch Log](#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"
```

Yang *PRE\$1SIGNED\$1URL* dikembalikan dalam respons berlaku selama 15 menit. Setelah waktu itu, itu akan kedaluwarsa dan Anda harus membuat pekerjaan impor pengguna baru untuk mendapatkan URL baru.

**Example respon:**  

```
{
    "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
    }
}
```

#### Nilai status untuk pekerjaan impor pengguna
<a name="cognito-user-pools-using-import-tool-cli-status-values-for-user-import-job"></a>

Dalam respons terhadap perintah impor pengguna, Anda akan melihat salah satu nilai `Status` berikut:
+ `Created`- Pekerjaan itu dibuat tetapi tidak dimulai.
+ `Pending`- Keadaan transisi. Anda telah memulai pekerjaan, tetapi belum mulai mengimpor pengguna.
+ `InProgress`- Pekerjaan telah dimulai, dan pengguna sedang diimpor.
+ `Stopping`- Anda telah menghentikan pekerjaan, tetapi pekerjaan belum berhenti mengimpor pengguna.
+ `Stopped`- Anda telah menghentikan pekerjaan, dan pekerjaan telah berhenti mengimpor pengguna.
+ `Succeeded`- Pekerjaan telah selesai dengan sukses.
+ `Failed`- Pekerjaan telah berhenti karena kesalahan.
+ `Expired`- Anda menciptakan pekerjaan, tetapi tidak memulai pekerjaan dalam waktu 24-48 jam. Semua data yang terkait dengan pekerjaan telah dihapus, dan pekerjaan tidak dapat dimulai.

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

Gunakan `curl` perintah berikut untuk mengunggah file CSV yang berisi data pengguna Anda ke URL yang telah ditentukan sebelumnya yang Anda peroleh dari respons perintah. `create-user-import-job`

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

Dalam output dari perintah ini, cari frasa `"We are completely uploaded and fine"`. Frasa ini menunjukkan bahwa file telah berhasil diunggah. Kumpulan pengguna Anda tidak menyimpan informasi dalam file impor Anda setelah Anda menjalankan pekerjaan impor Anda. Setelah selesai atau kedaluwarsa, Amazon Cognito menghapus file CSV yang Anda unggah.

#### Menjelaskan pekerjaan impor pengguna
<a name="cognito-user-pools-using-import-tool-cli-describing-user-import-job"></a>

Untuk mendapatkan deskripsi pekerjaan impor pengguna Anda, gunakan perintah berikut, di *USER\$1POOL\$1ID* mana ID kumpulan pengguna Anda, dan *JOB\$1ID* ID pekerjaan yang dikembalikan saat Anda membuat pekerjaan impor pengguna. 

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

**Example Contoh respons:**  

```
{
    "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
    }
}
```

Pada output sampel sebelumnya, URL tempat *PRE\$1SIGNED\$1URL* Anda mengunggah file CSV. *ROLE\$1ARN*Ini adalah peran CloudWatch Log ARN yang Anda terima saat Anda membuat peran.

#### Daftar pekerjaan impor pengguna Anda
<a name="cognito-user-pools-using-import-tool-cli-listing-user-import-jobs"></a>

Untuk membuat daftar pekerjaan impor pengguna Anda, gunakan perintah berikut:

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

**Example Contoh respons:**  

```
{
    "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"
}
```

Pekerjaan terdaftar dalam urutan kronologis dari yang terakhir dibuat hingga yang pertama dibuat. *PAGINATION\$1TOKEN*String setelah pekerjaan kedua menunjukkan bahwa ada hasil tambahan untuk perintah daftar ini. Untuk membuat daftar hasil tambahan, gunakan opsi `--pagination-token` sebagai berikut:

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

#### Memulai pekerjaan impor pengguna
<a name="cognito-user-pools-using-import-tool-cli-starting-user-import-job"></a>

Untuk memulai pekerjaan impor pengguna, gunakan perintah berikut:

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

Hanya satu tugas impor yang dapat aktif pada satu waktu per akun.

**Example Contoh respons:**  

```
{
    "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
    }
}
```

#### Menghentikan pekerjaan impor pengguna
<a name="cognito-user-pools-using-import-tool-cli-stopping-user-import-job"></a>

Untuk menghentikan pekerjaan impor pengguna saat sedang berlangsung, gunakan perintah berikut. Setelah Anda menghentikan pekerjaan, itu tidak dapat dimulai ulang.

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

**Example Contoh respons:**  

```
{
    "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
    }
}
```

## Melihat hasil impor kumpulan pengguna di CloudWatch konsol
<a name="cognito-user-pools-using-import-tool-cloudwatch"></a>

Anda dapat melihat hasil pekerjaan impor Anda di CloudWatch konsol Amazon.

**Topics**
+ [Melihat hasilnya](#cognito-user-pools-using-import-tool-viewing-the-results)
+ [Menafsirkan hasil](#cognito-user-pools-using-import-tool-interpreting-the-results)

### Melihat hasilnya
<a name="cognito-user-pools-using-import-tool-viewing-the-results"></a>

Langkah-langkah berikut menjelaskan cara melihat hasil impor kolam pengguna.

**Untuk melihat hasil impor kolam pengguna**

1. Masuk ke Konsol Manajemen AWS dan buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pilih **Log**.

1. Pilih grup log untuk pekerjaan impor kolam pengguna Anda. Nama grup log berada di formulir `/aws/cognito/userpools/USER_POOL_ID/USER_POOL_NAME`.

1. Pilih log untuk pekerjaan impor pengguna yang baru saja Anda jalankan. Nama log ada di formulir*JOB\$1ID*/*JOB\$1NAME*. Hasil di log merujuk ke pengguna Anda berdasarkan nomor baris. Tidak ada data pengguna yang ditulis ke log. Untuk setiap pengguna, baris yang mirip dengan berikut akan muncul:
   + `[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).`

### Menafsirkan hasil
<a name="cognito-user-pools-using-import-tool-interpreting-the-results"></a>

Pengguna yang berhasil diimpor memiliki status mereka disetel ke "PasswordReset”.

Dalam kasus berikut, pengguna tidak akan diimpor, tetapi pekerjaan impor akan dilanjutkan:
+ Tidak ada atribut terverifikasi otomatis yang disetel ke `true`.
+ Data pengguna tidak cocok dengan skema.
+ Pengguna tidak dapat diimpor karena kesalahan internal.

Dalam kasus berikut, pekerjaan impor akan gagal:
+ Peran Amazon CloudWatch Logs tidak dapat diasumsikan, tidak memiliki kebijakan akses yang benar, atau telah dihapus.
+ Kolam pengguna telah dihapus.
+ Amazon Cognito tidak dapat menguraikan file .csv.

## Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka
<a name="cognito-user-pools-using-import-tool-password-reset"></a>

Jika kumpulan pengguna Anda hanya menawarkan login berbasis kata sandi, pengguna harus mengatur ulang kata sandi mereka setelah diimpor. Pertama kali mereka masuk, mereka dapat memasukkan kata sandi *apa pun*. Amazon Cognito meminta mereka untuk memasukkan kata sandi baru dalam respons API untuk permintaan masuk dari aplikasi Anda.

Jika kumpulan pengguna Anda memiliki faktor autentikasi tanpa kata sandi, Amazon Cognito akan menjadi default untuk pengguna yang diimpor. Mereka tidak diminta untuk kata sandi baru, dan dapat langsung masuk dengan email tanpa kata sandi atau SMS OTP. Anda juga dapat meminta pengguna untuk mengatur kata sandi sehingga mereka dapat menyelesaikan metode masuk lainnya seperti username-password dan passkey. Ketentuan berikut berlaku untuk login tanpa kata sandi setelah impor pengguna.

1. Anda harus mengimpor pengguna dengan atribut yang sesuai dengan faktor masuk tanpa kata sandi yang tersedia. Jika pengguna dapat masuk dengan alamat email, Anda harus mengimpor `email` atribut. Jika nomor telepon, Anda harus mengimpor `phone_number` atribut. Jika keduanya, impor nilai untuk salah satu atribut.

1. Biasanya, pengguna mengimpor dalam `RESET_REQUIRED` keadaan di mana mereka harus mengatur ulang kata sandi mereka. Jika mereka diimpor dengan kemampuan untuk masuk dengan faktor tanpa kata sandi, Amazon Cognito menetapkan statusnya. `CONFIRMED`

Untuk informasi selengkapnya tentang otentikasi tanpa kata sandi termasuk cara mengaturnya dan cara membuat alur otentikasi dalam aplikasi Anda, lihat. [Otentikasi dengan kumpulan pengguna Amazon Cognito](authentication.md)

Prosedur berikut menjelaskan pengalaman pengguna dalam mekanisme login yang dibuat khusus dengan pengguna lokal `RESET_REQUIRED` setelah Anda mengimpor file CSV. Jika pengguna Anda masuk dengan login terkelola, instruksikan mereka untuk memilih **Lupa** kata sandi? pilihan, memberikan kode dari email atau pesan teks mereka, dan mengatur password.

**Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka**

1. Di aplikasi Anda, coba login secara diam-diam untuk pengguna saat ini dengan `InitiateAuth` menggunakan kata sandi acak.

1. Amazon Cognito mengembalikan `NotAuthorizedException` kapan `PreventUserExistenceErrors` diaktifkan. Jika tidak, ia mengembalikan `PasswordResetRequiredException`.

1. Aplikasi Anda membuat permintaan `ForgotPassword` API dan mengatur ulang kata sandi pengguna.

   1. Aplikasi mengirimkan nama pengguna dalam permintaan `ForgotPassword` API.

   1. Amazon Cognito mengirimkan kode ke email atau nomor telepon yang diverifikasi. Tujuan tergantung pada nilai yang Anda berikan untuk `email_verified` dan `phone_number_verified` dalam file CSV Anda. Respons terhadap `ForgotPassword` permintaan menunjukkan tujuan kode.
**catatan**  
Kumpulan pengguna Anda harus dikonfigurasi untuk memverifikasi email atau nomor telepon. Untuk informasi selengkapnya, lihat [Mendaftar dan mengonfirmasi akun pengguna](signing-up-users-in-your-app.md).

   1. Aplikasi Anda menampilkan pesan kepada pengguna Anda untuk memeriksa lokasi pengiriman kode, dan meminta pengguna untuk memasukkan kode dan kata sandi baru.

   1. Pengguna memasukkan kode dan kata sandi baru di dalam aplikasi.

   1. Aplikasi mengirimkan kode dan kata sandi baru dalam permintaan `ConfirmForgotPassword` API.

   1. Aplikasi Anda mengarahkan pengguna Anda untuk masuk.

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