Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengimpor pengguna ke kumpulan pengguna dari file CSV
Jika Anda memiliki penyimpanan identitas eksternal dan waktu untuk menyiapkan kumpulan pengguna untuk pengguna lokal baru, impor pengguna massal dari file nilai yang dipisahkan koma (CSV) dapat menjadi opsi berupaya rendah dan berbiaya rendah untuk migrasi ke kumpulan pengguna Amazon Cognito. Impor file CSV adalah proses mengunduh dan mengisi file template, kemudian menyerahkan file ke kumpulan pengguna Anda dalam pekerjaan impor. Anda dapat menggunakan impor CSV untuk membuat pengguna uji dengan cepat. Anda juga dapat secara terprogram mengisi file dengan permintaan API baca ke penyimpanan identitas eksternal Anda, diikuti dengan mengurai detail dan atributnya ke dalam operasi penulisan ke file.
Secara default, proses impor menetapkan nilai untuk semua atribut pengguna kecuali kata sandi. 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.
Atau, Anda dapat mengimpor pengguna dengan hash kata sandi yang ada. Saat Anda menentukan algoritma hashing kata sandi selama pembuatan pekerjaan impor dan menyertakan hash kata sandi dalam file CSV Anda, Amazon Cognito akan mengimpor pengguna dengan kata sandi yang ada. Pengguna ini dibuat dengan CONFIRMED status dan dapat segera masuk tanpa mengatur ulang kata sandi mereka. Untuk informasi selengkapnya, lihat Mengimpor pengguna dengan hash kata sandi.
Cara terendah untuk mengimpor pengguna dari CSV adalah dengan mengaktifkan login tanpa kata sandi di kumpulan pengguna Anda. Dengan atribut alamat email dan nomor telepon serta konfigurasi kumpulan pengguna yang tepat, pengguna dapat masuk dengan kata sandi satu kali (OTP) email atau SMS segera setelah pekerjaan impor Anda selesai. Untuk informasi selengkapnya, lihat Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka.
Anda juga dapat mengatur kata sandi pengguna Anda dengan permintaan AdminSetUserPassword API yang menetapkan Permanent parameter ketrue. Impor CSV tidak berkontribusi pada pengguna aktif bulanan (MAU) yang ditagih di kumpulan pengguna Anda. Namun, operasi reset kata sandi memang menghasilkan MAU. Untuk mengelola biaya saat Anda mengimpor sejumlah besar pengguna dengan kata sandi yang mungkin tidak segera aktif, atur aplikasi Anda untuk meminta pengguna memasukkan 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
-
Buat peran Amazon CloudWatch Logs di konsol AWS Identity and Access Management (IAM).
-
Buat file .csv impor pengguna.
-
Buat dan jalankan tugas impor pengguna. Secara opsional, tentukan algoritma hashing kata sandi untuk mengimpor pengguna dengan hash kata sandi yang ada.
-
Unggah file .csv impor pengguna.
-
Mulai dan jalankan tugas impor pengguna.
-
Gunakan CloudWatch untuk memeriksa log peristiwa.
-
Jika Anda tidak mengimpor hash kata sandi, minta pengguna yang diimpor untuk mengatur ulang kata sandi mereka.
Sumber daya lainnya
-
Arsitektur Referensi Ekspor Profil Pengguna Cognito
untuk mengekspor akun pengguna antar kumpulan pengguna
Topik
Membuat peran CloudWatch Logs IAM
Jika Anda menggunakan Amazon COGNITO CLI atau API, maka Anda perlu membuat peran CloudWatch IAM. Prosedur berikut menjelaskan cara membuat peran IAM yang dapat digunakan Amazon Cognito untuk menulis hasil pekerjaan impor Anda ke CloudWatch 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 CloudWatch Log IAM untuk impor kumpulan pengguna (AWS CLI, API)
Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Buat peran IAM baru untuk. Layanan AWS Untuk petunjuk terperinci, lihat Membuat peran untuk sebuah Layanan AWS di Panduan AWS Identity and Access Management Pengguna.
-
Saat Anda memilih Kasus penggunaan untuk jenis entitas tepercaya, pilih layanan apa pun. Amazon Cognito saat ini tidak terdaftar dalam kasus penggunaan layanan.
-
Di layar Tambah izin, pilih Buat kebijakan dan masukkan pernyataan kebijakan berikut. Ganti
REGIONdengan Wilayah AWS kumpulan pengguna Anda, misalnyaus-east-1. GantiACCOUNTdengan Akun AWS ID Anda, misalnya111122223333.
-
-
Karena Anda tidak memilih Amazon Cognito sebagai entitas tepercaya saat membuat peran, Anda sekarang harus mengedit hubungan kepercayaan peran secara manual. Pilih Per an dari panel navigasi konsol IAM, lalu pilih peran baru yang Anda buat.
-
Pilih tab Relasi kepercayaan.
-
Pilih Edit kebijakan kepercayaan.
-
Tempelkan pernyataan kebijakan berikut ke dalam Edit kebijakan kepercayaan, menggantikan teks yang ada:
-
Pilih Perbarui kebijakan.
-
Perhatikan ARN peran. Anda akan memberikan ARN saat membuat pekerjaan impor Anda.
Membuat file CSV impor pengguna
Sebelum Anda dapat mengimpor pengguna yang sudah ada ke kumpulan pengguna, Anda harus membuat file nilai yang 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 memasukkan informasi pengguna yang sesuai dengan persyaratan pemformatan diMemformat file CSV.
Mengunduh header file CSV (konsol)
Gunakan prosedur berikut untuk mengunduh file header CSV.
Untuk mengunduh header file CSV
-
Masuk ke Konsol Amazon Cognito
. Anda mungkin diminta untuk memberikan AWS kredensibilitas Anda. -
Pilih Kumpulan Pengguna.
-
Pilih kumpulan pengguna yang ada dari daftar.
-
Pilih menu Pengguna.
-
Di bagian Impor pengguna, pilih Buat pekerjaan impor.
-
Di bawah Unggah CSV, pilih tautan template.csv dan unduh file CSV.
Mengunduh header file CSV (AWS CLI)
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 template dengan atribut kumpulan pengguna Anda.
Anda juga dapat menjalankan perintah CLI berikut, di mana pen USER_POOL_ID gidentifikasi 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
File header CSV impor pengguna yang diunduh terlihat seperti string berikut. Ini juga mencakup atribut khusus 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.
-
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_verified atau phone_number_verified
-
Setidaknya satu dari atribut yang diverifikasi otomatis harus
trueuntuk setiap pengguna. Atribut verifikasi otomatis adalah alamat email atau nomor telepon yang secara otomatis mengirimkan kode Amazon Cognito saat pengguna baru bergabung dengan kumpulan pengguna Anda. -
Kolam pengguna harus memiliki setidaknya satu atribut terverifikasi otomatis, baik email_verified atau phone_number_verified. 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_number sebagai atribut yang diverifikasi otomatis, nilai phone_number_verified harus
trueuntuk 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 reset kata sandi 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.
-
-
Email (jika email_verified adalah
true) -
phone_number (jika phone_number_verified 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 (\) sebelum koma. Ini karena bidang dalam file CSV dipisahkan dengan koma.
-
Isi file CSV harus dalam UTF-8 format 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 sebagai02/01/1985. -
Bidang cognito:mfa_enabled harus sesuai dengan persyaratan MFA kumpulan pengguna Anda. Jika Anda telah menyetel otentikasi multi-faktor (MFA) menjadi wajib di kumpulan pengguna Anda, bidang ini harus kosong
trueatau kosong untuk semua pengguna. Jika Anda telah menyetel MFA menjadi nonaktif, bidang ini harus kosongfalseatau kosong untuk semua pengguna. Nilai kosong menetapkan MFA-enabled status pengguna yang diimpor ke status yang diperlukan oleh kumpulan pengguna. Anda dapat mengimpor pengguna dalam MFA-required kumpulan pengguna tanpa faktor MFA yang valid, terlepas dari apakah Anda menetapkancognito:mfa_enablednilai. 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_at diharapkan menjadi waktu zaman 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.
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
Bagian ini menjelaskan cara membuat dan menjalankan tugas impor kumpulan pengguna dengan menggunakan konsol Amazon Cognito dan AWS Command Line Interface (AWS CLI).
Mengimpor pengguna dari file CSV (konsol)
Prosedur berikut menjelaskan cara mengimpor pengguna dari file CSV.
Untuk mengimpor pengguna dari file CSV (konsol)
-
Masuk ke Konsol Amazon Cognito
. Anda mungkin diminta untuk memberikan AWS kredensibilitas Anda. -
Pilih Kumpulan Pengguna.
-
Pilih kumpulan pengguna yang ada dari daftar.
-
Pilih menu Pengguna.
-
Di bagian Impor pengguna, pilih Buat pekerjaan impor.
-
Pada halaman Buat pekerjaan impor, masukkan nama pekerjaan.
-
Pilih untuk Membuat peran IAM baru atau Menggunakan peran IAM yang sudah ada.
-
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. Prinsip IAM yang membuat pekerjaan impor harus memiliki izin untuk membuat peran IAM.
-
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 diMembuat peran CloudWatch Logs IAM.
-
-
Di bawah Unggah CSV, pilih Pilih file dan lampirkan file CSV yang Anda siapkan.
-
Pilih Buat pekerjaan untuk mengirimkan pekerjaan Anda, tetapi mulailah nanti. Pilih Buat dan mulai pekerjaan untuk mengirimkan pekerjaan Anda dan segera memulainya.
-
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 API dari AWS SDK.
-
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)
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
Setelah Anda membuat file CSV, buat pekerjaan impor pengguna dengan menjalankan perintah CLI berikut, di mana JOB_NAME nama yang Anda pilih untuk pekerjaan, USER_POOL_ID adalah ID kumpulan pengguna untuk kumpulan pengguna tempat pengguna baru akan ditambahkan, dan ROLE_ARN merupakan peran ARN yang Anda terima di: Membuat peran CloudWatch Logs IAM
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_SIGNED_URL dikembalikan dalam tanggapan berlaku selama 15 menit. Setelah waktu itu, itu akan kedaluwarsa dan Anda harus membuat pekerjaan impor pengguna baru untuk mendapatkan URL baru.
contoh tanggapan:
{ "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
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 membuat pekerjaan, tetapi tidak memulai pekerjaan dalam 24-48 jam. Semua data yang terkait dengan pekerjaan telah dihapus, dan pekerjaan tidak dapat dimulai.
Mengunggah file CSV
Gunakan curl perintah berikut untuk mengunggah file CSV yang berisi data pengguna Anda ke URL yang telah ditandatangani sebelumnya yang Anda peroleh dari respons create-user-import-job perintah.
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 setelah Anda menjalankan pekerjaan impor. Setelah selesai atau kedaluwarsa, Amazon Cognito menghapus file CSV yang Anda unggah.
Menjelaskan pekerjaan impor pengguna
Untuk mendapatkan deskripsi pekerjaan impor pengguna Anda, gunakan perintah berikut, di mana USER_POOL_ID ID kumpulan pengguna Anda, dan JOB_ID merupakan 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"
contoh 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, PRE_SIGNED_URL adalah URL tempat Anda mengunggah file CSV. Ini ROLE_ARN adalah peran CloudWatch Logs ARN yang Anda terima saat Anda membuat peran.
Mendaftarkan pekerjaan impor pengguna Anda
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
contoh 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_TOKENString 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
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.
contoh 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
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"
contoh 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
Anda dapat melihat hasil pekerjaan impor Anda di CloudWatch konsol Amazon.
Melihat hasil
Langkah-langkah berikut menjelaskan cara melihat hasil impor kolam pengguna.
Untuk melihat hasil impor kolam pengguna
Masuk ke Konsol Manajemen AWS dan buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Pilih Log.
-
Pilih grup log untuk pekerjaan impor kolam pengguna Anda. Nama grup log berada di formulir
/aws/cognito/userpools/.USER_POOL_ID/USER_POOL_NAME -
Pilih log untuk pekerjaan impor pengguna yang baru saja Anda jalankan. Nama log ada dalam bentuk
JOB_ID/JOB_NAME. 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
Pengguna yang berhasil diimpor memiliki status 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
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 terhadap permintaan masuk dari aplikasi Anda.
Jika kumpulan pengguna Anda memiliki faktor otentikasi tanpa kata sandi, Amazon Cognito akan menjadikannya 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 menetapkan kata sandi sehingga mereka dapat menyelesaikan metode masuk lainnya seperti username-password dan kunci sandi. Ketentuan berikut berlaku untuk masuk tanpa kata sandi setelah impor pengguna.
-
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
emailatribut. Jika nomor telepon, Anda harus mengimporphone_numberatribut. Jika keduanya, impor nilai untuk salah satu atribut. -
Biasanya, pengguna mengimpor dalam
RESET_REQUIREDkeadaan 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 ke.CONFIRMED
Untuk informasi selengkapnya tentang otentikasi tanpa kata sandi termasuk cara mengaturnya dan cara membuat alur otentikasi di aplikasi Anda, lihat. Otentikasi dengan kumpulan pengguna Amazon Cognito
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 L upa kata sandi? pilihan, berikan kode dari email atau pesan teks mereka, dan atur kata sandi.
Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka
-
Di aplikasi Anda, coba masuk secara diam-diam untuk pengguna saat ini dengan
InitiateAuthmenggunakan kata sandi acak. -
Amazon Cognito mengembalikan
NotAuthorizedExceptionwaktuPreventUserExistenceErrorsdiaktifkan. Jika tidak, ia mengembalikanPasswordResetRequiredException. -
Aplikasi Anda membuat permintaan
ForgotPasswordAPI dan mengatur ulang kata sandi pengguna.-
Aplikasi mengirimkan nama pengguna dalam permintaan
ForgotPasswordAPI. -
Amazon Cognito mengirimkan kode ke email atau nomor telepon yang diverifikasi. Tujuan tergantung pada nilai yang Anda berikan untuk
email_verifieddanphone_number_verifieddalam file CSV Anda. Tanggapan terhadapForgotPasswordpermintaan menunjukkan tujuan kode.catatan
Kumpulan pengguna Anda harus dikonfigurasi untuk memverifikasi email atau nomor telepon. Untuk informasi selengkapnya, lihat Mendaftar dan mengonfirmasi akun pengguna.
-
Aplikasi Anda menampilkan pesan kepada pengguna untuk memeriksa lokasi di mana kode dikirim, dan meminta pengguna untuk memasukkan kode dan kata sandi baru.
-
Pengguna memasukkan kode dan kata sandi baru di dalam aplikasi.
-
Aplikasi mengirimkan kode dan kata sandi baru dalam permintaan
ConfirmForgotPasswordAPI. -
Aplikasi Anda mengarahkan pengguna Anda ke login.
-
Mengimpor pengguna dengan hash kata sandi
Saat Anda memigrasikan pengguna dari sistem otentikasi yang ada ke Amazon Cognito, Anda dapat mengimpor hash kata sandi mereka bersama dengan atribut pengguna mereka. Pengguna Anda kemudian dapat langsung masuk dengan kata sandi yang ada, tanpa pengaturan ulang kata sandi. Setelah pengguna masuk untuk pertama kalinya, Amazon Cognito secara transparan memigrasikan kredensialnya ke sistem otentikasi Amazon Cognito asli.
penting
Impor hash kata sandi tidak tersedia untuk semua kumpulan pengguna saat ini. Impor hash kata sandi memerlukan infrastruktur Amazon Cognito modern dengan kemampuan dan skalabilitas yang ditingkatkan. Beberapa kumpulan pengguna masih menggunakan infrastruktur sebelumnya dan AWS akan memutakhirkannya ke infrastruktur baru, yang membuka kunci fitur ini. Di konsol Amazon Cognito, kumpulan pengguna yang memenuhi syarat menampilkan opsi algoritma hashing kata sandi saat membuat pekerjaan impor, dan kumpulan yang tidak memenuhi syarat tidak menampilkan opsi ini. Untuk informasi selengkapnya, lihat Amazon Cognito membuka kemampuan canggih dengan infrastruktur generasi berikutnya
Cara kerja impor hash kata sandi
Dengan impor hash kata sandi, Anda dapat memigrasi pengguna sambil mempertahankan kemampuan mereka untuk masuk dengan kata sandi yang ada. Proses impor bekerja sebagai berikut:
-
Anda membuat pekerjaan impor dan menentukan algoritma hashing kata sandi yang digunakan sistem sumber Anda untuk membuat hash kata sandi.
-
Anda menyertakan
password_hashkolom dalam file CSV Anda dengan nilai hash kata sandi setiap pengguna. -
Amazon Cognito mengimpor pengguna dengan hash kata sandi mereka dan membuatnya dengan
CONFIRMEDstatus. Pengguna dapat segera masuk. -
Saat pengguna masuk untuk pertama kalinya, Amazon Cognito memverifikasi kata sandi mereka terhadap hash yang diimpor. Setelah verifikasi berhasil, Amazon Cognito memigrasikan kredensional pengguna ke sistem otentikasi asli.
-
Semua login berikutnya menggunakan sistem otentikasi Amazon Cognito asli.
penting
Semua hash kata sandi dalam satu pekerjaan impor harus menggunakan algoritma yang sama. Anda menentukan algoritma pada tingkat pekerjaan saat Anda membuat pekerjaan impor.
catatan
Sampai pengguna menyelesaikan proses masuk pertama mereka dan Amazon Cognito memigrasikan kredensialnya, Anda tidak dapat menggunakan otentikasi Secure Remote Password (SRP) untuk pengguna tersebut. Gunakan USER_PASSWORD_AUTH atau ADMIN_USER_PASSWORD_AUTH alur untuk pengguna dengan hash kata sandi yang diimpor yang belum masuk.
Algoritma hashing kata sandi yang didukung
Amazon Cognito mendukung algoritma hashing kata sandi berikut untuk impor:
BCRYPT-
Fungsi hash adaptif bcrypt. Amazon Cognito mengekstrak semua parameter yang diperlukan (garam, faktor biaya) dari string hash.
Format:
$2<a/b/x/y>$[cost]$[22-char salt][31-char hash]Contoh:
$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6Faktor biaya maksimum: 12
SCRYPT-
Fungsi derivasi kunci berbasis kata sandi scrypt. Amazon Cognito mengekstrak semua parameter yang diperlukan dari string hash.
Format:
N$r$p$hexSalt$hexHashContoh:
65536$8$1$304dbaef7c5e828dc19c98f0600d18fe$4f69c498c12cd102d057356facf8d77e8d42407090491ea32c5b038f5a18c099Parameter maksimum: N (CPU/memory biaya) = 65536, r (ukuran blok) = 8, p (paralelisme) = 1
ARGON2ID-
Algoritma hashing kata sandi Argon2ID. Amazon Cognito mengekstrak semua parameter yang diperlukan dari string hash.
Format:
$argon2id$v=N$m=M,t=T,p=P$salt$hashContoh:
$argon2id$v=19$m=19456,t=2,p=1$ko/G5o1ms+ML08P95sQ8DA$AkVbvWSOqz7Hs3qthhWKxicOWnGLN+MBmpwc3emi5VAParameter maksimum: m (memori dalam KiB) = 19456, t (iterasi) = 2, p (paralelisme) = 1
PBKDF2_SHA256-
Password-Based Fungsi Derivasi Kunci 2 dengan SHA-256. Amazon Cognito mengekstrak semua parameter yang diperlukan dari string hash.
Format:
$pbkdf2-sha256$iterations$salt$hashContoh:
$pbkdf2-sha256$600000$1XZlmwLQ2hhM3JYuCPiArQ$Pfheg9Zi/v5lXU4yyLA0WFUYEd/rlaVbzrM9oMD6IrAIterasi maksimum: 600000
catatan
Semua algoritma yang didukung menggambarkan diri sendiri, yang berarti Amazon Cognito dapat mengekstrak semua parameter yang diperlukan (seperti garam, faktor biaya, dan iterasi) langsung dari string hash. Anda hanya perlu menentukan nama algoritma saat Anda membuat pekerjaan impor.
Jika hash kata sandi Anda memiliki nilai parameter yang melebihi batas maksimum yang tercantum di atas, impor gagal untuk pengguna tersebut. Tinjau konfigurasi hashing kata sandi sistem sumber Anda sebelum mengimpor untuk memastikan kompatibilitas.
Menambahkan hash kata sandi ke file CSV Anda
Saat Anda mengunduh template CSV untuk impor pengguna, templat menyertakan password_hash kolom. Isi kolom ini dengan nilai hash kata sandi untuk pengguna yang ingin Anda impor dengan kata sandi yang ada.
Aturan pemformatan CSV untuk impor hash kata sandi
-
password_hashKolom diperlukan saat pekerjaan impor Anda menentukan algoritma hashing kata sandi. Jika Anda membiarkan nilai kosong untuk pengguna tertentu, Amazon Cognito mengimpor pengguna tersebut tanpa kata sandi dan menyetel pengguna keRESET_REQUIREDstatus. -
Jika pekerjaan impor Anda menentukan algoritma hashing kata sandi tetapi file CSV Anda tidak menyertakan
password_hashkolom, pekerjaan gagal. -
Jika nilai hash kata sandi salah bentuk atau tidak cocok dengan format yang diharapkan untuk algoritma yang ditentukan, impor gagal untuk pengguna tersebut. Amazon Cognito tidak membuat pengguna dan mencatat kegagalan di CloudWatch log Amazon Logs Anda.
-
Nilai hash kata sandi peka huruf besar/kecil. Pastikan mereka cocok dengan format yang tepat yang diharapkan algoritma.
contoh Contoh CSV dengan hash kata sandi
Contoh berikut menunjukkan file CSV yang mengimpor pengguna dengan hash kata sandi bcrypt:
cognito:username,email,email_verified,phone_number,phone_number_verified,password_hash alejandro_rosalez,alejandro_rosalez@example.com,TRUE,+12345550100,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6 mary_major,mary_major@example.com,TRUE,+12345550199,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6
Membuat pekerjaan impor dengan hash kata sandi (AWS CLI)
Untuk mengimpor pengguna dengan hash kata sandi, Anda harus menentukan algoritma hashing kata sandi saat Anda membuat pekerjaan impor. Semua pengguna dalam pekerjaan impor harus menggunakan algoritma yang sama.
Gunakan AWS Command Line Interface perintah berikut untuk membuat pekerjaan impor dengan hash kata sandi. --password-hashing-algorithmParameter menentukan algoritma yang digunakan untuk membuat hash kata sandi di file CSV Anda.
aws cognito-idp create-user-import-job \ --job-name "JOB_NAME" \ --user-pool-id "USER_POOL_ID" \ --cloud-watch-logs-role-arn "ROLE_ARN" \ --password-hashing-algorithmBCRYPT
Ganti BCRYPT dengan salah satu algoritma yang didukung:BCRYPT,SCRYPT,ARGON2ID, atauPBKDF2_SHA256.
contoh Respons sampel
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "PasswordHashingAlgorithm": "BCRYPT", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Respons mencakup PasswordHashingAlgorithm bidang yang mengonfirmasi algoritma yang Anda tentukan. Unggah file CSV Anda ke URL yang telah ditandatangani sebelumnya dan mulai pekerjaan seperti yang dijelaskan dalamMengunggah file CSV.
Pengalaman pengguna setelah impor hash kata sandi
Pengguna yang diimpor dengan hash kata sandi memiliki pengalaman berikut:
-
Masuk langsung: Pengguna dapat masuk dengan kata sandi yang ada segera setelah impor. Pengguna tidak menerima perintah untuk mengatur ulang kata sandi mereka.
-
Status pengguna: Amazon Cognito membuat pengguna ini dengan
CONFIRMEDstatus, bukan.RESET_REQUIRED -
Migrasi transparan: Saat pengguna masuk untuk pertama kalinya, Amazon Cognito memverifikasi kata sandi mereka terhadap hash yang diimpor. Setelah verifikasi berhasil, Amazon Cognito memigrasikan kredensialnya ke sistem otentikasi asli. Semua login berikutnya menggunakan sistem asli.
-
Latensi masuk awal: Masuk pertama untuk pengguna dengan hash kata sandi yang diimpor mungkin memakan waktu sedikit lebih lama daripada login berikutnya. Amazon Cognito harus memverifikasi kata sandi terhadap hash yang diimpor dan memigrasikan kredenSIAL ke sistem otentikasi asli.
-
Reset kata sandi: Jika pengguna mengatur ulang kata sandinya sebelum masuk pertama, hash kata sandi yang diimpor diganti dengan kata sandi baru menggunakan sistem otentikasi Amazon Cognito asli.
Memecahkan masalah kesalahan impor hash kata sandi
Jika impor hash kata sandi gagal untuk pengguna, Amazon Cognito mencatat kegagalan tersebut di CloudWatch log Amazon Logs Anda. Skenario kesalahan umum meliputi:
- Hash yang cacat
-
Hash kata sandi tidak cocok dengan format yang diharapkan untuk algoritma yang ditentukan. Pastikan format hash benar dan cocok dengan salah satu format yang tercantum diAlgoritma hashing kata sandi yang didukung.
- Parameter di luar batas
-
Hash kata sandi berisi nilai parameter (seperti faktor biaya atau iterasi) yang melebihi nilai maksimum yang diizinkan. Untuk pengguna dengan hash yang tidak kompatibel, pilih salah satu opsi berikut:
-
Impor pengguna tersebut tanpa hash kata sandi dengan membiarkan
password_hashbidang kosong. Amazon Cognito menyetel mereka keRESET_REQUIREDstatus dan mereka harus mengatur ulang kata sandi mereka saat masuk pertama kali. -
Gunakan pemicu Lambda migrasi pengguna untuk memigrasikan pengguna tersebut pada saat masuk, bukan melalui impor CSV.
-
Sebelum menonaktifkan sistem sumber Anda, hash ulang kata sandi dengan parameter yang kompatibel saat pengguna masuk ke sistem Anda yang ada.
-
- Ketidakcocokan algoritma
-
Hash kata sandi dibuat dengan algoritma yang berbeda dari yang ditentukan dalam pekerjaan impor. Semua hash dalam satu tugas impor harus menggunakan algoritma yang sama. Jika Anda memiliki pengguna dengan algoritma yang berbeda, buat pekerjaan impor terpisah untuk setiap algoritma.
- Kolom password_hash hilang
-
Anda menentukan algoritma hashing kata sandi saat membuat pekerjaan, tetapi file CSV Anda tidak menyertakan
password_hashkolom tersebut. Tambahkan kolom ke file CSV Anda atau buat pekerjaan baru tanpa menentukan algoritma.
Ketika impor hash kata sandi gagal untuk pengguna, Amazon Cognito tidak membuat pengguna tersebut. Pengguna lain dalam pekerjaan impor terus diproses. Tinjau CloudWatch log Amazon Logs Anda untuk mengidentifikasi pengguna mana yang gagal dan alasan setiap kegagalan.
Pertimbangan keamanan untuk impor hash kata sandi
Amazon Cognito menerapkan langkah-langkah keamanan tambahan untuk hash kata sandi yang diimpor:
-
Hashing ganda: Amazon Cognito melakukan hash ulang semua hash kata sandi yang diimpor dengan lapisan perlindungan kriptografi tambahan sebelum penyimpanan, terlepas dari kekuatan algoritma aslinya.
-
Migrasi otomatis: Setelah autentikasi pertama berhasil, Amazon Cognito memigrasikan kredensional pengguna ke protokol Secure Remote Password (SRP) asli yang digunakan oleh Amazon Cognito. Ini memastikan semua pengguna akhirnya menggunakan mekanisme otentikasi keamanan tinggi asli.
-
Pembersihan data: Setelah pekerjaan impor selesai, Amazon Cognito menghapus file CSV yang diunggah yang berisi hash kata sandi dari penyimpanan sementara.
penting
Perlakukan file CSV Anda yang berisi hash kata sandi sebagai data sensitif. Lindungi saat transit dan hapus dengan aman setelah impor selesai.