Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi dengan kumpulan pengguna Amazon Cognito
Amazon Cognito mencakup beberapa metode untuk mengautentikasi pengguna Anda. Pengguna dapat masuk dengan kata sandi dan WebAuthn kunci sandi. Amazon Cognito dapat mengirimi mereka kata sandi satu kali dalam email atau pesan SMS. Anda dapat menerapkan fungsi Lambda yang mengatur urutan tantangan dan respons Anda sendiri. Ini adalah aliran otentikasi. Dalam alur otentikasi, pengguna memberikan rahasia dan Amazon Cognito memverifikasi rahasia, kemudian mengeluarkan token web JSON JWTs () untuk aplikasi untuk diproses dengan pustaka OIDC. Dalam Bab ini, kita akan berbicara tentang cara mengkonfigurasi kumpulan pengguna dan klien aplikasi Anda untuk berbagai aliran otentikasi di berbagai lingkungan aplikasi. Anda akan mempelajari tentang opsi untuk penggunaan halaman login yang di-host dari login terkelola, dan untuk membangun logika dan front end Anda sendiri dalam AWS SDK.
Semua kumpulan pengguna, apakah Anda memiliki domain atau tidak, dapat mengautentikasi pengguna di API kumpulan pengguna. Jika Anda menambahkan domain ke kumpulan pengguna, Anda dapat menggunakan titik akhir kumpulan pengguna. API kumpulan pengguna mendukung berbagai model otorisasi dan alur permintaan untuk permintaan API.
Untuk memverifikasi identitas pengguna, Amazon Cognito mendukung alur otentikasi yang menggabungkan jenis tantangan selain kata sandi seperti email dan pesan SMS kata sandi dan kunci sandi satu kali.
Topik
Menerapkan alur otentikasi
Baik Anda menerapkan login terkelola atau front end aplikasi yang dibuat khusus dengan AWS SDK untuk autentikasi, Anda harus mengonfigurasi klien aplikasi untuk jenis autentikasi yang ingin Anda terapkan. Informasi berikut menjelaskan penyiapan alur autentikasi di klien aplikasi dan aplikasi Anda.
Hal-hal yang perlu diketahui tentang otentikasi dengan kumpulan pengguna
Pertimbangkan informasi berikut dalam desain model otentikasi Anda dengan kumpulan pengguna Amazon Cognito.
- Alur otentikasi dalam login terkelola dan UI yang dihosting
-
Login terkelola dan UI yang dihosting klasik memiliki opsi berbeda untuk otentikasi. Anda hanya dapat melakukan otentikasi tanpa kata sandi dan kunci sandi di login terkelola.
- Alur otentikasi khusus hanya tersedia dalam otentikasi AWS SDK
-
Anda tidak dapat melakukan alur autentikasi kustom, atau autentikasi khusus dengan pemicu Lambda, dengan login terkelola atau UI yang dihosting klasik. Otentikasi khusus tersedia dalam otentikasi dengan. AWS SDKs
- Login terkelola untuk login penyedia identitas eksternal (iDP)
-
Anda tidak dapat memasukkan pengguna melalui pihak ketiga IdPs dalam autentikasi dengan AWS SDKs. Anda harus menerapkan login terkelola atau UI host klasik, mengarahkan ulang ke IdPs, dan kemudian memproses objek otentikasi yang dihasilkan dengan pustaka OIDC di aplikasi Anda. Untuk informasi selengkapnya tentang login terkelola, lihatLogin terkelola kumpulan pengguna.
- Efek otentikasi tanpa kata sandi pada fitur pengguna lainnya
-
Aktivasi login tanpa kata sandi dengan kata sandi atau kunci sandi satu kali di kumpulan pengguna dan klien aplikasi Anda berpengaruh pada pembuatan dan migrasi pengguna. Saat login tanpa kata sandi aktif:
-
Administrator dapat membuat pengguna tanpa kata sandi. Templat pesan undangan default berubah menjadi tidak lagi menyertakan placeholder
{###}
kata sandi. Untuk informasi selengkapnya, lihat Membuat akun pengguna sebagai administrator. -
Untuk SignUpoperasi berbasis SDK, pengguna tidak diharuskan untuk memberikan kata sandi saat mereka mendaftar. Login terkelola dan UI yang dihosting memerlukan kata sandi di halaman pendaftaran, meskipun otentikasi tanpa kata sandi diizinkan. Untuk informasi selengkapnya, lihat Mendaftar dan mengonfirmasi akun pengguna.
-
Pengguna yang diimpor dari file CSV dapat langsung masuk dengan opsi tanpa kata sandi, tanpa pengaturan ulang kata sandi, jika atribut mereka menyertakan alamat email atau nomor telepon untuk opsi masuk tanpa kata sandi yang tersedia. Untuk informasi selengkapnya, lihat Mengimpor pengguna ke kumpulan pengguna dari file CSV.
-
Autentikasi tanpa kata sandi tidak memanggil pemicu Lambda migrasi pengguna.
-
Pengguna yang masuk dengan faktor pertama tanpa kata sandi tidak dapat menambahkan faktor otentikasi multi-faktor (MFA) ke sesi mereka. Hanya alur otentikasi berbasis kata sandi yang mendukung MFA.
-
- Pihak yang mengandalkan passkey tidak URLs bisa berada di daftar akhiran publik
-
Anda dapat menggunakan nama domain yang Anda miliki, seperti
www.example.com
, sebagai ID pihak yang bergantung (RP) dalam konfigurasi kunci sandi Anda. Konfigurasi ini dimaksudkan untuk mendukung aplikasi custom-built yang berjalan pada domain yang Anda miliki. Daftar akhiran publik, atau PSL, berisi domain tingkat tinggi yang dilindungi. Amazon Cognito mengembalikan kesalahan saat Anda mencoba menyetel URL RP ke domain di PSL.
Durasi aliran sesi otentikasi
Bergantung pada fitur kumpulan pengguna, Anda dapat merespons beberapa tantangan RespondToAuthChallenge
sebelum InitiateAuth
dan sebelum aplikasi mengambil token dari Amazon Cognito. Amazon Cognito menyertakan string sesi dalam menanggapi setiap permintaan. Untuk menggabungkan permintaan API Anda ke dalam alur autentikasi, sertakan string sesi dari respons ke permintaan sebelumnya di setiap permintaan berikutnya. Secara default, pengguna Anda memiliki waktu tiga menit untuk menyelesaikan setiap tantangan sebelum string sesi berakhir. Untuk menyesuaikan periode ini, ubah durasi sesi Authentication client aplikasi Anda. Prosedur berikut menjelaskan cara mengubah setelan ini dalam konfigurasi klien aplikasi Anda.
catatan
Pengaturan durasi sesi alur otentikasi berlaku untuk autentikasi dengan API kumpulan pengguna Amazon Cognito. Login terkelola menetapkan durasi sesi menjadi 3 menit untuk otentikasi multi-faktor dan 8 menit untuk kode pengaturan ulang kata sandi.
Untuk informasi selengkapnya tentang klien aplikasi, lihatPengaturan khusus aplikasi dengan klien aplikasi.
Perilaku penguncian untuk upaya masuk yang gagal
Setelah lima upaya masuk yang tidak diautentikasi atau yang diotorisasi oleh IAM gagal dengan kata sandi, Amazon Cognito mengunci pengguna Anda selama satu detik. Durasi penguncian kemudian berlipat ganda setelah setiap upaya tambahan gagal, hingga maksimum sekitar 15 menit. Upaya yang dilakukan selama periode penguncian menghasilkan Password attempts exceeded
pengecualian, dan tidak memengaruhi durasi periode penguncian berikutnya. Untuk jumlah kumulatif upaya masuk yang gagal n, tidak termasuk Password attempts
exceeded
pengecualian, Amazon Cognito mengunci pengguna Anda selama 2^ (n-5) detik. Untuk mengatur ulang penguncian ke status awal n=0, pengguna Anda harus berhasil masuk setelah periode penguncian berakhir, atau tidak memulai upaya masuk selama 15 menit berturut-turut kapan saja setelah penguncian. Perilaku ini dapat berubah. Perilaku ini tidak berlaku untuk tantangan khusus kecuali mereka juga melakukan otentikasi berbasis kata sandi.
Contoh sesi otentikasi
Diagram dan step-by-step panduan berikut menggambarkan skenario khas di mana pengguna masuk ke aplikasi. Aplikasi contoh menyajikan pengguna dengan beberapa opsi masuk. Mereka memilih satu dengan memasukkan kredensialnya, memberikan faktor otentikasi tambahan, dan masuk.

Bayangkan aplikasi dengan halaman masuk tempat pengguna dapat masuk dengan nama pengguna dan kata sandi, meminta kode satu kali dalam pesan email, atau memilih opsi sidik jari.
-
Prompt masuk: Aplikasi Anda menampilkan layar beranda dengan tombol Masuk.
-
Permintaan masuk: Pengguna memilih Masuk. Dari cookie atau cache, aplikasi Anda mengambil nama pengguna mereka, atau meminta mereka untuk memasukkannya.
-
Opsi permintaan: Aplikasi Anda meminta opsi masuk pengguna dengan permintaan
InitiateAuth
API denganUSER_AUTH
alur, meminta metode login yang tersedia untuk pengguna. -
Kirim opsi masuk: Amazon Cognito merespons
PASSWORD
denganEMAIL_OTP
,, dan.WEB_AUTHN
Responsnya mencakup pengenal sesi untuk Anda putar ulang di respons berikutnya. -
Opsi tampilan: Aplikasi Anda menampilkan elemen UI bagi pengguna untuk memasukkan nama pengguna dan kata sandi mereka, mendapatkan kode satu kali, atau memindai sidik jari mereka.
-
Pilih Opsi/Masukkan kredensil: Pengguna memasukkan nama pengguna dan kata sandi mereka.
-
Memulai otentikasi: Aplikasi Anda menyediakan informasi login pengguna dengan permintaan
RespondToAuthChallenge
API yang mengonfirmasi login nama pengguna dan kata sandi dan menyediakan nama pengguna dan kata sandi. -
Validasi kredensil: Amazon Cognito mengonfirmasi kredensitas pengguna.
-
Tantangan tambahan: Pengguna memiliki otentikasi multi-faktor yang dikonfigurasi dengan aplikasi autentikator. Amazon Cognito mengembalikan tantangan.
SOFTWARE_TOKEN_MFA
-
Challenge prompt: Aplikasi Anda menampilkan formulir yang meminta kata sandi satu kali berbasis waktu (TOTP) dari aplikasi autentikator pengguna.
-
Tantangan jawaban: Pengguna mengirimkan TOTP.
-
Menanggapi tantangan: Dalam
RespondToAuthChallenge
permintaan lain, aplikasi Anda menyediakan TOTP pengguna. -
Validasi respons tantangan: Amazon Cognito mengonfirmasi kode pengguna dan menentukan bahwa kumpulan pengguna Anda dikonfigurasi untuk tidak mengeluarkan tantangan tambahan kepada pengguna saat ini.
-
Token masalah: Amazon Cognito mengembalikan ID, mengakses, dan menyegarkan token web JSON (). JWTs Otentikasi awal pengguna selesai.
-
Token toko: Aplikasi Anda menyimpan token pengguna sehingga dapat mereferensikan data pengguna, mengotorisasi akses ke sumber daya, dan memperbarui token saat kedaluwarsa.
-
Render konten resmi: Aplikasi Anda menentukan akses pengguna ke sumber daya berdasarkan identitas dan peran mereka, dan memberikan konten aplikasi.
-
Akses konten: Pengguna masuk dan mulai menggunakan aplikasi.
-
Minta konten dengan token kedaluwarsa: Kemudian, pengguna meminta sumber daya yang memerlukan otorisasi. Token cache pengguna telah kedaluwarsa.
-
Refresh token: Aplikasi Anda membuat
InitiateAuth
permintaan dengan token penyegaran yang disimpan pengguna. -
Token masalah: Amazon Cognito mengembalikan ID dan akses baru. JWTs Sesi pengguna disegarkan dengan aman tanpa permintaan tambahan untuk kredensil.
Anda dapat menggunakan AWS Lambda pemicu untuk menyesuaikan cara pengguna mengautentikasi. Pemicu ini mengeluarkan dan memverifikasi tantangan mereka sendiri sebagai bagian dari alur autentikasi.
Anda juga dapat menggunakan alur otentikasi admin untuk server backend yang aman. Anda dapat menggunakan alur autentikasi migrasi pengguna untuk memungkinkan migrasi pengguna tanpa mengharuskan pengguna untuk mengatur ulang kata sandi mereka.