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 menyertakan beberapa metode untuk mengotentikasi pengguna Anda. Pengguna dapat masuk dengan kata sandi dan kunci WebAuthn 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 tanggapan Anda sendiri. Ini adalah aliran otentikasi. Dalam aliran otentikasi, pengguna memberikan rahasia dan Amazon Cognito memverifikasi rahasia, kemudian mengeluarkan token web JSON (JWT) untuk aplikasi untuk diproses dengan pustaka OIDC. Pada bagian ini, kita akan membahas cara mengonfigurasi kumpulan pengguna dan klien aplikasi untuk berbagai aliran otentikasi di berbagai lingkungan aplikasi. Anda akan mempelajari tentang opsi untuk penggunaan halaman masuk yang dihosting 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 mengotentikasi 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 kata sandi satu kali dan kunci sandi email dan pesan SMS.
Topik
Menerapkan alur otentikasi
Baik Anda menerapkan login ter kelola atau front end aplikasi yang dibuat khusus dengan AWS SDK untuk otentikasi, Anda harus mengonfigurasi klien aplikasi untuk jenis otentikasi yang ingin Anda terapkan. Informasi berikut menjelaskan penyiapan alur otentikasi di klien aplikasi dan aplikasi Anda.
Hal yang perlu diketahui tentang otentikasi dengan kumpulan pengguna
Pertimbangkan informasi berikut dalam desain model otentikasi Anda dengan kumpulan pengguna Amazon Cognito.
- Aliran otentikasi dalam login terkelola dan UI yang dihosting
-
Login ter kelola memiliki lebih banyak opsi untuk otentikasi daripada UI yang dihosting klasik. Misalnya, pengguna dapat melakukan otentikasi tanpa kata sandi dan kunci sandi hanya dalam login terkelola.
- Alur otentikasi khusus hanya tersedia di otentikasi AWS SDK
-
Anda tidak dapat melakukan alur otentikasi khusus, atau otentikasi khusus dengan pemicu Lambda, dengan login terkelola atau UI yang dihosting klasik. Otentikasi khusus tersedia dalam otentikasi dengan AWS SDK.
- Login terkelola untuk login penyedia identitas eksternal (IdP)
-
Anda tidak dapat memasukkan pengguna melalui pihak ketiga IdPs dalam otentikasi dengan AWS SDK. Anda harus menerapkan login terkelola atau UI yang dihosting klasik, mengalihkan 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 Masuk tanpa kata sandi dengan kunci sandi WebAuthn 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 place
{###}holder kata sandi. Untuk informasi selengkapnya, lihat Membuat akun pengguna sebagai administrator. -
Untuk SDK-based SignUp operasi, pengguna tidak diharuskan memberikan kata sandi saat mereka mendaftar. Login terkelola dan UI yang dihosting memerlukan kata sandi di halaman pendaftaran, bahkan jika 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.
-
Otentikasi tanpa kata sandi tidak memanggil pemicu Lambda migrasi pengguna.
-
Pengguna yang masuk dengan faktor pertama kata sandi satu kali (OTP) tidak dapat menambahkan faktor otentikasi multi-faktor (MFA) ke sesi mereka. Kunci sandi dengan verifikasi pengguna dapat memenuhi persyaratan MFA saat dikonfigurasi dengan.
MULTI_FACTOR_WITH_USER_VERIFICATION
-
- URL pihak yang bergantung pada kunci sandi tidak dapat berada di daftar akhiran publik
-
Anda dapat menggunakan nama domain yang Anda miliki, misalnya
www.example.com, sebagai ID pihak yang bergantung (RP) dalam konfigurasi kunci sandi Anda. Konfigurasi ini dimaksudkan untuk mendukung aplikasi yang dibuat khusus 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 Anda ke domain di PSL.
Durasi aliran sesi otentikasi
Bergantung pada fitur kumpulan pengguna Anda, Anda dapat menanggapi beberapa tantangan ke InitiateAuth dan RespondToAuthChallenge sebelum aplikasi Anda mengambil token dari Amazon Cognito. Amazon Cognito menyertakan string sesi dalam respons terhadap setiap permintaan. Untuk menggabungkan permintaan API Anda ke dalam alur otentikasi, sertakan string sesi dari respons terhadap permintaan sebelumnya di setiap permintaan berikutnya. Secara default, pengguna Anda memiliki tiga menit untuk menyelesaikan setiap tantangan sebelum string sesi berakhir. Untuk menyesuaikan periode ini, ubah durasi sesi alur otentikasi klien aplikasi Anda. Prosedur berikut menjelaskan cara mengubah setelan ini di konfigurasi klien aplikasi Anda.
catatan
Peng aturan durasi sesi alur otentikasi berlaku untuk otentikasi dengan API kumpulan pengguna Amazon Cognito. Login terkelola menetapkan durasi sesi menjadi 3 menit untuk otentikasi multi-faktor dan 8 menit untuk kode reset 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 gagal dengan kata sandi pengguna, terlepas dari apakah itu diminta dengan operasi yang tidak diautentikasi atau IAM-authorized API, Amazon Cognito mengunci pengguna Anda selama satu detik. Durasi lockout kemudian berlipat ganda setelah setiap upaya gagal tambahan, hingga maksimum sekitar 15 menit.
Upaya yang dilakukan selama periode lockout menghasilkan peng Password attempts exceeded ecualian, dan tidak mempengaruhi durasi periode lockout 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 lockout ke status awal n=0, pengguna Anda harus berhasil masuk setelah periode lockout berakhir, atau tidak memulai upaya masuk apa pun 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 panduan langkah demi langkah berikut menggambarkan skenario tipikal 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.
-
Sign-in prompt: Aplikasi Anda menampilkan layar beranda dengan tombol Masuk.
-
Minta masuk: Pengguna memilih Mas uk. 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
InitiateAuthAPI dengan alurUSER_AUTH, meminta metode masuk yang tersedia untuk pengguna. -
Opsi pengiriman masuk: Amazon Cognito merespons dengan
PASSWORD,EMAIL_OTP, dan.WEB_AUTHNRespons menyertakan pengenal sesi untuk Anda putar ulang kembali 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 option/Enter kredenSIAL: Pengguna memasukkan nama pengguna dan kata sandi mereka.
-
Memulai otentikasi: Aplikasi Anda menyediakan informasi masuk pengguna dengan permintaan
RespondToAuthChallengeAPI yang mengonfirmasi login nama pengguna dan kata sandi dan memberikan nama pengguna dan kata sandi. -
Validasi kredenSIAL: Amazon Cognito mengonfirmasi kredenSIAL pengguna.
-
Tantangan tambahan: Pengguna memiliki otentikasi multi-faktor yang dikonfigurasi dengan aplikasi otentikator. Amazon Cognito mengembalikan
SOFTWARE_TOKEN_MFAtantangan. -
Prompt tantangan: Aplikasi Anda menampilkan formulir yang meminta kata sandi satu kali berbasis waktu (TOTP) dari aplikasi otentikator pengguna.
-
Tant angan jawaban: Pengguna mengirimkan TOTP.
-
Tanggapi tantangan: Dalam
RespondToAuthChallengepermintaan 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 penerbit an: Amazon Cognito mengembalikan ID, akses, dan menyegarkan token web JSON (JWT). Otentikasi awal pengguna selesai.
-
Simpan token: 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 mengirimkan konten aplikasi.
-
Ak ses 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
InitiateAuthpermintaan dengan token penyegaran yang disimpan pengguna. -
Token penerbit an: Amazon Cognito mengembalikan ID baru dan mengakses JWT. Sesi pengguna disegarkan dengan aman tanpa permintaan tambahan untuk kredenSIAL.
Anda dapat menggunakan AWS Lambda pemicu untuk menyesuaikan cara pengguna melakukan otentikasi. 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 otentikasi migrasi pengguna untuk memungkinkan migrasi pengguna tanpa mengharuskan pengguna untuk mengatur ulang kata sandi mereka.