Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan Masalah Amazon Cognito
Bab ini memberikan solusi untuk masalah umum yang mungkin Anda temui saat bekerja dengan Amazon Cognito. Implementasi Amazon Cognito dapat menghadapi berbagai tantangan di seluruh alur autentikasi, konfigurasi kumpulan pengguna, dan pengaturan federasi identitas. Apakah Anda sedang mengembangkan aplikasi baru atau memelihara yang sudah ada, panduan pemecahan masalah ini membantu Anda mengidentifikasi dan menyelesaikan masalah umum dengan cepat.
Kesalahan konfigurasi domain kustom
Saat mengonfigurasi nama domain khusus di Amazon Cognito, Anda mungkin menerima pesan kesalahan. Kesalahan umum termasuk masalah validasi, masalah sertifikat, atau konflik domain.
Custom domain is not a valid
subdomain
Kesalahan ini menunjukkan masalah dengan resolusi DNS untuk domain induk. Amazon Cognito tidak mendukung domain tingkat atas dan mengharuskan domain induk memiliki catatan DNS A untuk validasi.
- Masalah
-
Kesalahan ini menunjukkan masalah dengan resolusi DNS untuk domain induk. Amazon Cognito tidak mendukung domain tingkat atas dan mengharuskan domain induk memiliki catatan DNS A untuk validasi.
- Solusi
-
-
Buat Rekaman untuk Domain Induk: Anda harus membuat catatan A dalam konfigurasi DNS untuk domain induk domain kustom Anda.
-
Contoh: Jika domain kustom Anda
auth.xyz.yourdomain.com, domain induknya adalahxyz.yourdomain.com. Jika Anda ingin mengonfigurasixyz.yourdomain.comsebagai domain khusus, induknya adalahyourdomain.com. -
Domain induk harus menyelesaikan ke alamat IP yang valid. Jika tidak menunjuk ke alamat IP asli, Anda dapat menggunakan alamat IP dummy, seperti
8.8.8.8.
-
-
Verifikasi Propagasi DNS (Opsional tetapi Disarankan): Untuk memastikan penyedia DNS Anda telah menyebarkan perubahan, Anda dapat menjalankan perintah.
dig-
Jika menggunakan
auth.xyz.yourdomain.comsebagai domain khusus:dig A xyz.yourdomain.com +short -
Jika menggunakan
xyz.yourdomain.comsebagai domain khusus:dig A yourdomain.com +short -
Perintah harus mengembalikan alamat IP yang Anda konfigurasikan. Jika tidak, tunggu sampai perubahan sepenuhnya disebarkan.
-
-
Hapus domain induk A Record: Setelah berhasil membuat domain kustom di Amazon Cognito, Anda dapat menghapus catatan A yang Anda buat untuk domain induk jika itu adalah dummy.
-
Untuk informasi selengkapnya, lihat Menggunakan domain Anda sendiri untuk UI yang dihosting.
Domain already associated
with another user pool
Nama domain khusus harus unik di semua Akun AWS dan Wilayah.
- Masalah
-
Nama domain khusus harus unik di semua Akun AWS dan Wilayah.
- Solusi
-
-
Untuk menggunakan nama domain untuk kumpulan pengguna baru, Anda harus menghapus domain kustom dari kumpulan pengguna yang saat ini terkait dengannya.
-
Tunggu setelah penghapusan: Dibutuhkan waktu untuk domain kustom untuk sepenuhnya menghapus dari kumpulan pengguna pertama. Membuat domain kustom baru dengan nama yang sama segera setelah penghapusan mungkin masih mengakibatkan kesalahan ini. Tunggu beberapa menit sebelum mencoba lagi.
-
One or more of the CNAMEs that
you provided are already associated with a different resource
Saat Anda membuat domain khusus, Amazon Cognito membuat distribusi Amazon CloudFront yang AWS dikelola. Nama domain hanya dapat digunakan dengan satu CloudFront distribusi Amazon. Kesalahan ini terjadi jika nama domain sudah digunakan sebagai domain alternatif untuk CloudFront distribusi Amazon lainnya.
- Masalah
-
Saat Anda membuat domain khusus, Amazon Cognito membuat distribusi Amazon CloudFront yang AWS dikelola. Nama domain hanya dapat digunakan dengan satu CloudFront distribusi Amazon. Kesalahan ini terjadi jika nama domain sudah digunakan sebagai domain alternatif untuk CloudFront distribusi Amazon lainnya.
- Solusi
-
-
Opsi 1: Gunakan nama domain yang berbeda untuk domain khusus Amazon Cognito Anda.
-
Opsi 2: Jika Anda menggunakan nama domain untuk Amazon Cognito, jangan gunakan dengan distribusi Amazon CloudFront lainnya.
-
The specified SSL certificate
doesn't exist
Amazon Cognito menggunakan Amazon CloudFront, yang mengharuskan sertifikat AWS Certificate Manager (ACM) berada di us-east-1 (Virginia N.) Wilayah AWS, terlepas dari Wilayah kumpulan pengguna.
- Masalah
-
Amazon Cognito menggunakan Amazon CloudFront, yang mengharuskan sertifikat AWS Certificate Manager (ACM) berada di
us-east-1(Virginia N.) Wilayah AWS, terlepas dari Wilayah kumpulan pengguna. - Solusi
-
-
Pastikan Wilayah Sertifikat: Konfirmasikan sertifikat ACM ada di
us-east-1Wilayah. -
Periksa Validitas Sertifikat: Pastikan sertifikat yang dipilih tidak kedaluwarsa.
-
Sertifikat Impor: Jika Anda mengimpor sertifikat ke ACM, pastikan:
-
Itu dikeluarkan oleh otoritas sertifikat publik.
-
Ini termasuk rantai sertifikat yang benar.
-
-
AWS KMS Pemeriksaan Kebijakan:
denyPernyataan eksplisit dalam kebijakan AWS Key Management Service (AWS KMS) untuk pengguna IAM atau peran yang membuat domain dapat menyebabkan kesalahan ini. Secara khusus, periksa penolakan eksplisit padakms:DescribeKey,kms:CreateGrant, atau tindakan.kms:*
-
Invalid refresh token kesalahan
- Masalah
-
Anda menerima
Invalid refresh tokenkesalahan saat mencoba menggunakan token penyegaran untuk mendapatkan akses baru dan token ID dari kumpulan pengguna Amazon Cognito menggunakan operasiAdminInitiateAuthatauInitiateAuthAPI. - Solusi
-
Terapkan langkah-langkah pemecahan masalah berikut berdasarkan konfigurasi kumpulan pengguna dan penggunaan API Anda:
-
Pastikan ID klien aplikasi yang konsisten: Saat memanggil
AdminInitiateAuthatauInitiateAuthAPI untuk penyegaran token, Anda harus menggunakan ID klien aplikasi yang sama persis yang digunakan selama autentikasi awal yang menghasilkan token penyegaran. -
Konfirmasikan perangkat: Jika pelacakan perangkat diaktifkan di kumpulan pengguna, tetapi perangkat pengguna belum dikonfirmasi, Anda harus memanggil ConfirmDeviceAPI terlebih dahulu. Setelah pengguna mengonfirmasi perangkat mereka, Anda dapat menukar token penyegaran.
-
Sertakan kunci perangkat dalam permintaan penyegaran: Jika pelacakan perangkat diaktifkan, sertakan kunci perangkat unik sebagai
AuthParametersaat menggunakanREFRESH_TOKEN_AUTHalur:{ "AuthFlow": "REFRESH_TOKEN_AUTH", "AuthParameters": { "REFRESH_TOKEN": "example_refresh_token", "SECRET_HASH": "example_secret_hash", // Required if your app client uses a client secret "DEVICE_KEY": "example_device_key" } } -
Gunakan
USER_SRP_AUTHuntuk pelacakan perangkat: Jika Anda menggunakan pelacakan perangkat, alur otentikasi awal harusUSER_SRP_AUTH.
-
Untuk informasi selengkapnya, lihat Bekerja dengan perangkat pengguna di kumpulan pengguna Anda.
Kesalahan respons SAMP tidak valid di federasi
Pengguna menerima berbagai Invalid SAML response kesalahan serupa saat mencoba bergabung ke Amazon Cognito menggunakan SAMP 2.0. Kesalahan ini dapat terjadi karena masalah pemetaan atribut, masalah sertifikat, atau ketidakcocokan konfigurasi.
Invalid user attributes:
Required attribute
- Masalah
-
Pengguna kehilangan nilai untuk atribut yang diperlukan di kumpulan pengguna Anda, atau idP mencoba menghapus atau memperbarui atribut yang tidak dapat diubah.
- Solusi
-
-
Periksa atribut yang diperlukan yang ditentukan dalam konfigurasi kumpulan pengguna Anda.
-
Menggunakan alat pengambilan jaringan di browser Anda, ambil respons SAMP. Anda mungkin perlu melakukan decoding URL dan base64. Verifikasi atribut hadir dalam pernyataan SAMP.
-
Masuk ke penyedia identitas Anda dan tinjau atribut yang dikirimkan ke Amazon Cognito. Verifikasi bahwa iDP dikonfigurasi untuk mengirim atribut yang diperlukan menggunakan nama yang benar.
-
Untuk atribut yang tidak dapat diubah, jalankan AWS CLI perintah berikut untuk mengidentifikasinya:.
aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name' -
Dalam pemetaan atribut SAMP dari IDP Anda, hapus pemetaan apa pun yang menargetkan atribut Amazon Cognito yang tidak dapat diubah. Bergantian, perbarui atribut tujuan ke atribut yang berbeda dan bisa berubah.
-
Invalid SAML response received:
SAML Response signature is invalid
- Masalah
-
IDP Anda telah memperbarui sertifikat penandatanganan SAML-nya, menyebabkan ketidakcocokan antara sertifikat dalam respons SAMP dan file metadata yang disimpan di Amazon Cognito.
- Solusi
-
-
Unduh file metadata terbaru dari IDP Anda.
-
Di konsol Amazon Cognito, navigasikan ke penyedia Sosial dan eksternal untuk kumpulan pengguna Anda, edit penyedia SAMP, dan ganti file metadata yang ada dengan file yang baru diunduh.
-
Audience restriction atau Application with identifier not found
- Masalah
-
ID Entitas yang salah dikonfigurasi di IDP Anda, atau pernyataan menggunakan Uniform Resource Name (URN) kumpulan pengguna lain.
- Solusi
-
-
Dapatkan ID kumpulan pengguna Amazon Cognito Anda dari bagian Ikhtisar di konsol.
-
Di konsol manajemen untuk iDP Anda, perbarui ID entitas di aplikasi SAMP untuk kumpulan pengguna Anda. Konfigurasikan ID entitas agar sesuai dengan formatnya
urn:amazon:cognito:sp:. GantiUSER_POOL_IDUSER_POOL_IDdengan ID kumpulan pengguna dari langkah sebelumnya.
-
An error was encountered with the
requested page
- Masalah
-
URL Assertion Consumer Service (ACS) yang terdaftar dengan iDP Anda tidak dikonfigurasi dengan benar, atau iDP tidak mengirimkan respons SAMP menggunakan pengikatan POST yang diperlukan.
- Solusi
-
-
Di konsol manajemen untuk iDP Anda, perbarui aplikasi dengan format URL ACS yang benar, pastikan aplikasi menggunakan
HTTP POSTpengikatan. -
Format domain default:
https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse -
Format domain kustom:
https://auth.example.com/saml2/idpresponse
-
Invalid relayState from identity
provider
- Masalah
-
RelayStateParameter hilang atau tidak valid, atau URL tidak cocok antara IDP dan Amazon Cognito. - Solusi
-
-
Untuk alur yang dimulai oleh penyedia layanan (dimulai SP): Selalu mulai autentikasi di titik akhir kumpulan pengguna Anda.
/oauth2/authorizePernyataan SAMP yang tidak mengembalikanRelayStateparameter dari kunjungan awal pengguna ke Amazon Cognito bukanlah permintaan yang diprakarsai SP yang valid. -
Untuk alur yang dimulai oleh penyedia identitas (IDP-initiated): IDP harus menyertakan
RelayStateparameter dengan pernyataan SAMP ke titik akhir, menggunakan format yang diperlukan:./saml2/idpresponseredirect_uri=REDIRECT_URI&state=STATE
-
Untuk informasi selengkapnya, lihat Menggunakan penyedia identitas SAMP dengan kumpulan pengguna.
Pengguna login terkelola tidak dapat memilih faktor MFA
- Masalah
-
Pengguna tidak dapat memilih metode MFA pilihan mereka saat masuk melalui login terkelola, atau mereka tidak diminta untuk metode MFA yang Anda harapkan.
- Solusi
-
Amazon Cognito mengikuti logika khusus untuk menentukan faktor MFA mana yang tersedia bagi pengguna berdasarkan pengaturan kumpulan pengguna, atribut pengguna, dan konfigurasi pemulihan akun. Misalnya, pengguna tidak dapat menggunakan MFA email jika email dikonfigurasi sebagai metode pemulihan akun utama mereka.
Untuk mengganti pemilihan faktor MFA default, Anda dapat menerapkan salah satu dari pendekatan ini:
-
Untuk aplikasi publik: Gunakan SetUserMFAPreferencedengan token akses yang valid untuk memungkinkan pengguna mengatur preferensi MFA mereka sendiri
-
Untuk aplikasi yang dikelola administrator: Gunakan AdminSetUserMFAPreferencedengan AWS kredensil untuk mengonfigurasi preferensi MFA pengguna
Kedua operasi memungkinkan Anda untuk mengaktifkan atau menonaktifkan metode SMS, email, dan TOTP MFA untuk pengguna individu, dan menetapkan satu metode sesuai keinginan.
-
Untuk informasi selengkapnya, lihat Menambahkan MFA ke kumpulan pengguna.
Pengguna tanpa kata sandi dan kunci sandi tidak dapat menggunakan MFA
- Masalah
-
Pengguna yang masuk dengan metode otentikasi tanpa kata sandi atau kunci sandi tidak dapat menambahkan atau menggunakan otentikasi multi-faktor.
- Solusi
-
Ini adalah batasan yang dimaksudkan. Anda dapat mengonfigurasi kumpulan pengguna sehingga pengguna memiliki MFA atau masuk dengan faktor tanpa kata sandi, tetapi tidak keduanya. MFA hanya tersedia untuk alur otentikasi berbasis kata sandi.
Untuk informasi selengkapnya, lihat Otentikasi dengan kumpulan pengguna.
Tidak dapat menerima kode reset kata sandi melalui email/SMS
- Masalah
-
Pengguna tidak dapat menerima kode verifikasi selama alur kerja lupa kata sandi melalui email atau SMS mereka.
- Solusi
-
Ada berbagai alasan mengapa kode verifikasi mungkin tidak diterima. Ikuti daftar periksa ini untuk memecahkan masalah:
-
Periksa spam email pengguna dan folder sampah.
-
Konfirmasikan bahwa pengguna ada di kumpulan pengguna.
-
Verifikasi bahwa status pengguna tidak
FORCE_CHANGE_PASSWORD. Jika ini masalahnya, pengguna dibuat oleh administrator dan Amazon Cognito akan meminta mereka untuk mengatur kata sandi saat mereka masuk dengan kata sandi sementara mereka. -
Periksa apakah pengguna memiliki atribut email atau nomor telepon yang diverifikasi.
-
Periksa batas pengeluaran akun Anda untuk pesan SMS
-
Periksa kuota pengiriman pesan Amazon Simple Email Service (Amazon SES).
-
Periksa apakah SMS dan Amazon SES (jika kumpulan pengguna Anda dikonfigurasi untuk Mengirim email dengan Amazon SES) telah dipindahkan dari kotak pasir. Jika mereka tidak dipindahkan dari kotak pasir, alamat email atau nomor telepon yang belum diverifikasi oleh Amazon SES atau tidak AWS End User Messaging SMS akan dapat menerima kode reset kata sandi.
-
Jika pengguna memiliki faktor MFA aktif, periksa apakah mereka tidak mencoba menghasilkan pesan ke faktor yang sama. Misalnya, pengguna dengan email MFA aktif tidak dapat mengirim kode reset kata sandi melalui email.
-
Untuk informasi selengkapnya, lihat Pengaturan email untuk kumpulan pengguna Amazon Cognito dan Pengaturan pesan SMS untuk kolam pengguna Amazon Cognito.
Kesalahan SECRET_HASH
- Masalah
-
Permintaan API otentikasi ke klien aplikasi dengan rahasia klien mengembalikan kesalahan seperti
An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received. - Solusi
-
Aplikasi Anda harus menghitung
SECRET_HASHuntuk pengguna saat ini, klien aplikasi, dan rahasia klien. Metode perhitungannya adalah:Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )Untuk mendapatkan rahasia klien, Anda dapat:
-
Buka konsol Amazon Cognito dan navigasikan ke klien aplikasi Anda dari menu Klien aplikasi. Di bagian Informasi klien App, cari rahasia Klien. Pilih Tampilkan rahasia klien dan rahasia klien aplikasi Anda muncul.
-
Hasilkan DescribeUserPoolClientpermintaan. Rahasia klien termasuk dalam tanggapan.
-
Untuk informasi selengkapnya, lihat Menghitung nilai hash rahasia.
Konsol Amazon Cognito memilih konfigurasi default untuk kumpulan pengguna baru
- Masalah
-
Saat Anda menyiapkan kumpulan pengguna baru di konsol, Amazon Cognito memilih beberapa pengaturan default untuk Anda. Beberapa pengaturan tidak dapat diubah setelah kumpulan pengguna dibuat. Bagaimana Anda bisa membuat pilihan berdasarkan informasi dan memahami apa yang dipilih Amazon Cognito secara otomatis?
- Solusi
-
Pengaturan kumpulan pengguna baru di konsol Amazon Cognito dirancang untuk pengujian dan pembuatan prototipe cepat. Konsol hanya memberi Anda pilihan konfigurasi yang paling penting - yang tidak dapat diubah setelah pembuatan kumpulan pengguna. Semua pengaturan lain yang dikonfigurasi Amazon Cognito secara otomatis dapat dimodifikasi nanti.
Sebaiknya lakukan pendekatan berikut:
-
Gunakan konsol untuk membuat kumpulan pengguna pengujian saat Anda menyempurnakan implementasi.
-
Setelah Anda menentukan konfigurasi produksi, terapkan pengaturan tersebut ke kumpulan pengguna pengujian Anda.
-
Operasi penggunaan DescribeUserPooldan DescribeUserPoolClientAPI untuk menghasilkan templat JSON dari konfigurasi yang Anda uji.
-
Gunakan template ini dengan alat penerapan seperti AWS SDKs, CDK, REST API, atau CloudFormation untuk membuat sumber daya produksi Anda.
-
Untuk informasi selengkapnya, lihat Memulai dengan kumpulan pengguna.
Sumber daya pemecahan masalah tambahan
Untuk panduan pemecahan masalah tambahan dan solusi kontribusi komunitas, Anda juga dapat menjelajahi sumber daya eksternal berikut:
-
AWS re:posting komunitas Amazon Cognito
- Jelajahi pertanyaan dan solusi komunitas -
AWS Pusat Pengetahuan Artikel Amazon Cognito - Artikel pemecahan
masalah yang dikuratori