View a markdown version of this page

Mengimpor pengguna ke kumpulan pengguna dari file CSV - Amazon Cognito

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

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

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 algoritme hashing kata sandi selama pembuatan pekerjaan impor dan menyertakan hash kata sandi dalam file CSV Anda, Amazon Cognito mengimpor pengguna dengan kata sandi yang ada. Pengguna ini dibuat dengan CONFIRMED status dan dapat langsung masuk tanpa mengatur ulang kata sandi mereka. Untuk informasi selengkapnya, lihat Mengimpor pengguna dengan hash kata sandi.

Cara paling rendah 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 email atau SMS kata sandi satu kali (OTP) 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 AdminSetUserPasswordAPI yang menetapkan Permanent parameter. true Impor CSV tidak berkontribusi pada pengguna aktif bulanan (MAUs) yang ditagih di kumpulan pengguna Anda. Namun, operasi pengaturan ulang kata sandi memang menghasilkan UI. 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).

  2. Buat file .csv impor pengguna.

  3. Buat dan jalankan tugas impor pengguna. Secara opsional, tentukan algoritma hashing kata sandi untuk mengimpor pengguna dengan hash kata sandi yang ada.

  4. Unggah file .csv impor pengguna.

  5. Mulai dan jalankan tugas impor pengguna.

  6. Gunakan CloudWatch untuk memeriksa log peristiwa.

  7. Jika Anda tidak mengimpor hash kata sandi, minta pengguna yang diimpor untuk mengatur ulang kata sandi mereka.

Sumber daya lainnya

Membuat peran IAM CloudWatch Log

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

  2. Buat peran IAM baru untuk sebuah Layanan AWS. Untuk petunjuk terperinci, lihat Membuat peran untuk Layanan AWS 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.

    2. Di layar Tambahkan izin, pilih Buat kebijakan dan masukkan pernyataan kebijakan berikut. Ganti REGION dengan kumpulan pengguna Anda, misalnyaus-east-1. Wilayah AWS Ganti ACCOUNT dengan Akun AWS ID Anda, misalnya111122223333.

      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/*" ] } ] }
  3. 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.

  4. Pilih tab Trust relationship.

  5. Pilih Edit kebijakan kepercayaan.

  6. 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" } ] }
  7. Pilih Perbarui kebijakan.

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

Membuat file CSV impor pengguna

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 diMemformat file CSV.

Mengunduh header file CSV (konsol)

Gunakan prosedur berikut untuk mengunduh file header CSV.

Untuk mengunduh header file CSV
  1. Masuk ke Konsol Amazon Cognito. Anda mungkin diminta untuk AWS kredensialnya.

  2. Pilih Kolam Pengguna.

  3. Pilih kumpulan pengguna yang ada dari daftar.

  4. Pilih menu Pengguna.

  5. Di bagian Impor pengguna, pilih Buat pekerjaan impor.

  6. 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 templat dengan atribut kumpulan pengguna Anda.

Anda juga dapat menjalankan perintah CLI berikut, di mana USER_POOL_ID 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

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.

  • 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 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_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 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.

    • 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 sebagai. 02/01/1985

  • Kolom cognito:mfa_enabled 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 MFA-enabled status pengguna yang diimpor ke status yang diperlukan oleh kumpulan pengguna. Anda dapat mengimpor pengguna di kumpulan MFA-required pengguna 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_at 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

Bagian ini menjelaskan cara membuat dan menjalankan tugas impor kumpulan pengguna 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)
  1. Masuk ke Konsol Amazon Cognito. Anda mungkin diminta untuk AWS kredensialnya.

  2. Pilih Kolam Pengguna.

  3. Pilih kumpulan pengguna yang ada dari daftar.

  4. Pilih menu Pengguna.

  5. Di bagian Impor pengguna, pilih Buat pekerjaan impor.

  6. Pada halaman Create import job, masukkan nama Job.

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

    2. 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 dalamMembuat peran IAM CloudWatch Log.

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

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

  10. 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 StartUserImportJobAPI dari AWS SDK.

  11. 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, JOB_NAME di mana nama yang Anda pilih untuk pekerjaan ituUSER_POOL_ID, adalah ID kumpulan pengguna untuk kumpulan pengguna tempat pengguna baru akan ditambahkan, ROLE_ARN dan merupakan peran ARN yang Anda terima di: Membuat peran IAM CloudWatch Log

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 respons berlaku selama 15 menit. Setelah waktu itu, itu akan kedaluwarsa dan Anda harus membuat pekerjaan impor pengguna baru untuk mendapatkan URL baru.

contoh 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

Dalam respons terhadap perintah impor pengguna, Anda akan melihat salah satu nilai Status berikut:

  • Created- Pekerjaan itu dibuat tetapi tidak dimulai.

  • Pending- Sebuah 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

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 setelah 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 USER_POOL_ID mana ID kumpulan pengguna Anda, dan JOB_ID 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, URL tempat PRE_SIGNED_URL Anda mengunggah file CSV. ROLE_ARNIni adalah peran CloudWatch Log ARN yang Anda terima saat Anda membuat peran.

Cantumkan 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 hasilnya

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

  2. Pilih Log.

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

  4. Pilih log untuk pekerjaan impor pengguna yang baru saja Anda jalankan. Nama log ada di formulirJOB_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 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

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.

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

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.

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

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

    1. Aplikasi mengirimkan nama pengguna dalam permintaan ForgotPassword API.

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

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

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

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

    6. Aplikasi Anda mengarahkan pengguna Anda untuk masuk.

Mengimpor pengguna dengan hash kata sandi

Saat memigrasikan pengguna dari sistem autentikasi yang ada ke Amazon Cognito, Anda dapat mengimpor hash kata sandi mereka beserta atribut penggunanya. 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 berada di infrastruktur sebelumnya dan AWS akan meningkatkannya ke infrastruktur baru, yang membuka fitur ini. Di konsol Amazon Cognito, kumpulan pengguna yang memenuhi syarat menampilkan opsi algoritme hashing kata sandi saat membuat pekerjaan impor, dan kumpulan yang tidak memenuhi syarat tidak menampilkan opsi ini. Untuk informasi selengkapnya, lihat Amazon Cognito membuka kunci kemampuan lanjutan dengan infrastruktur generasi berikutnya di Blog Keamanan. AWS

Cara kerja impor hash kata sandi

Dengan impor hash kata sandi, Anda dapat memigrasikan pengguna sambil mempertahankan kemampuan mereka untuk masuk dengan kata sandi yang ada. Proses impor berfungsi sebagai berikut:

  1. Anda membuat pekerjaan impor dan menentukan algoritma hashing kata sandi yang digunakan sistem sumber Anda untuk membuat hash kata sandi.

  2. Anda menyertakan password_hash kolom dalam file CSV Anda dengan nilai hash kata sandi setiap pengguna.

  3. Amazon Cognito mengimpor pengguna dengan hash kata sandi mereka dan membuatnya dengan status. CONFIRMED Pengguna dapat langsung masuk.

  4. Saat pengguna masuk untuk pertama kalinya, Amazon Cognito memverifikasi kata sandi mereka terhadap hash yang diimpor. Setelah verifikasi berhasil, Amazon Cognito memigrasikan kredenal pengguna ke sistem otentikasi asli.

  5. 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 algoritme di tingkat pekerjaan saat Anda membuat pekerjaan impor.

catatan

Hingga pengguna menyelesaikan proses masuk pertama mereka dan Amazon Cognito memigrasikan kredensialnya, Anda tidak dapat menggunakan autentikasi Secure Remote Password (SRP) untuk pengguna tersebut. Gunakan USER_PASSWORD_AUTH atau ADMIN_USER_PASSWORD_AUTH alur untuk pengguna dengan hash kata sandi impor 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/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6

Faktor biaya maksimum: 10

SCRYPT

Fungsi derivasi kunci berbasis kata sandi scrypt. Amazon Cognito mengekstrak semua parameter yang diperlukan dari string hash.

Format: N$r$p$hexSalt$hexHash

Contoh: 65536$8$1$304dbaef7c5e828dc19c98f0600d18fe$4f69c498c12cd102d057356facf8d77e8d42407090491ea32c5b038f5a18c099

Parameter 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$hash

Contoh: $argon2id$v=19$m=19456,t=2,p=1$ko/G5o1ms+ML08P95sQ8DA$AkVbvWSOqz7Hs3qthhWKxicOWnGLN+MBmpwc3emi5VA

Parameter 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$hash

Contoh: $pbkdf2-sha256$600000$1XZlmwLQ2hhM3JYuCPiArQ$Pfheg9Zi/v5lXU4yyLA0WFUYEd/rlaVbzrM9oMD6IrA

Iterasi maksimum: 600000

catatan

Semua algoritma yang didukung mendeskripsikan diri, 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 algoritme saat 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 ke status. RESET_REQUIRED

  • Jika pekerjaan impor Anda menentukan algoritma hashing kata sandi tetapi file CSV Anda tidak menyertakan password_hash kolom, pekerjaan gagal.

  • Jika nilai hash kata sandi salah bentuk atau tidak cocok dengan format yang diharapkan untuk algoritme yang ditentukan, impor gagal untuk pengguna tersebut. Amazon Cognito tidak membuat pengguna dan mencatat kegagalan di CloudWatch log Amazon Log Anda.

  • Nilai hash kata sandi peka huruf besar/kecil. Pastikan mereka cocok dengan format yang tepat yang diharapkan algoritme.

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 dalam 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-algorithm BCRYPT

Ganti BCRYPT dengan salah satu algoritma yang didukung:BCRYPT,, SCRYPTARGON2ID, 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 } }

Responsnya mencakup PasswordHashingAlgorithm bidang yang mengonfirmasi algoritma yang Anda tentukan. Unggah file CSV Anda ke URL yang telah ditentukan sebelumnya dan mulai pekerjaan seperti yang dijelaskan di. Mengunggah file CSV

Pengalaman pengguna setelah impor hash kata sandi

Pengguna yang diimpor dengan hash kata sandi memiliki pengalaman berikut:

  • Masuk segera: Pengguna dapat masuk dengan kata sandi yang ada segera setelah impor. Pengguna tidak menerima prompt untuk mengatur ulang kata sandi mereka.

  • Status pengguna: Amazon Cognito membuat pengguna ini dengan CONFIRMED status, 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 kredensialnya ke sistem otentikasi asli.

  • Reset kata sandi: Jika pengguna menyetel ulang kata sandi 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 dalam log CloudWatch Amazon Log Anda. Skenario kesalahan umum meliputi:

Hash cacat

Hash kata sandi tidak cocok dengan format yang diharapkan untuk algoritme yang ditentukan. Verifikasi bahwa format hash sudah benar dan cocok dengan salah satu format yang tercantum di dalamnyaAlgoritma 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_hash bidang kosong. Amazon Cognito menyetelnya ke RESET_REQUIRED status dan mereka harus mengatur ulang kata sandi mereka saat masuk pertama.

  • Gunakan pemicu Lambda migrasi pengguna untuk memigrasikan pengguna tersebut saat login, 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 pekerjaan impor harus menggunakan algoritma yang sama. Jika Anda memiliki pengguna dengan algoritme yang berbeda, buat pekerjaan impor terpisah untuk setiap algoritme.

Kolom password_hash tidak ada

Anda menentukan algoritma hashing kata sandi saat membuat pekerjaan, tetapi file CSV Anda tidak menyertakan kolom. password_hash Tambahkan kolom ke file CSV Anda atau buat pekerjaan baru tanpa menentukan algoritme.

Ketika impor hash kata sandi gagal untuk pengguna, Amazon Cognito tidak membuat pengguna. Pengguna lain dalam pekerjaan impor terus diproses. Tinjau CloudWatch log Amazon Log 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 algoritme aslinya.

  • Migrasi otomatis: Setelah otentikasi pertama berhasil, Amazon Cognito memigrasikan kredensil 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.