FAQ Amazon Cognito
Umum
Apa itu Amazon Cognito?
Amazon Cognito memungkinkan Anda menambahkan fungsi pendaftaran, masuk, kontrol akses, akses layanan AWS pengguna yang diperantarai ke aplikasi web dan seluler Anda dalam hitungan menit. Ini adalah layanan yang hemat biaya, berpusat pada developer yang menyediakan penyimpanan identitas berbasis penghuni yang aman dan opsi federasi yang dapat diskalakan ke jutaan pengguna. Amazon Cognito membantu Anda menciptakan pengalaman pelanggan bermerek, meningkatkan keamanan, dan menyesuaikan dengan kebutuhan pelanggan Anda. Misalnya, Amazon Cognito mendukung akses masuk dengan penyedia identitas sosial dan akses masuk tanpa kata sandi menggunakan kunci sandi WebAuthn atau kata sandi satu kali pakai untuk SMS dan email. Amazon Cognito mendukung berbagai standar kepatuhan, beroperasi pada standar identitas terbuka, dan terintegrasi dengan katalog sumber daya pengembangan serta pustaka SDK yang lengkap.
Dengan Amazon Cognito, Anda dapat fokus pada penciptaan pengalaman aplikasi yang hebat alih-alih mengkhawatirkan tentang membangun, mengamankan, serta menskalakan solusi untuk menangani manajemen dan autentikasi pengguna.
Bagaimana cara mulai menggunakan Amazon Cognito?
Anda dapat memulai secara mudah dengan mengunjungi Konsol AWS. Jika tidak memiliki akun Amazon Web Services, Anda dapat membuat akun saat masuk ke konsol. Setelah Anda membuat kumpulan pengguna untuk manajemen pengguna atau kolam identitas untuk identitas gabungan, Anda dapat mengintegrasikan aplikasi dan API Anda dengan OAuth dan OpenID Connect (OIDC).
Lihat sumber daya memulai kami untuk informasi selengkapnya.
Siapa yang harus menggunakan Amazon Cognito?
Amazon Cognito dirancang untuk developer yang ingin menambahkan manajemen pengguna dan fungsionalitas sinkronisasi ke aplikasi seluler dan web mereka. Developer dapat menggunakan Cognito Identity untuk menambahkan proses pendaftaran dan masuk ke aplikasi mereka serta untuk memungkinkan pengguna mengakses sumber daya aplikasi mereka dengan aman. Cognito juga memungkinkan developer untuk menyinkronkan data di seluruh perangkat, platform, dan aplikasi.
Apakah Amazon Cognito mengekspos API sisi server?
Ya. Cognito mengekspos API sisi server. Anda dapat membuat antarmuka kustom Anda sendiri untuk Cognito dengan memanggil API ini secara langsung. API sisi server dijelaskan dalam Panduan Developer.
Platform apa saja yang didukung Amazon Cognito?
Dukungan untuk Cognito disertakan dalam AWS Mobile SDK opsional, yang tersedia untuk iOS, Android, Unity, dan Kindle Fire. Cognito juga tersedia di AWS SDK for .NET, C++, Go, Java, JavaScript, PHP v3, Python, Ruby v3, dan antarmuka baris perintah.
Kunjungi halaman sumber daya kami untuk melihat dan mengunduh SDK yang tersedia.
Apakah saya harus menggunakan AWS Mobile SDK?
Tidak. Cognito mengekspos API kontrol dan datanya sebagai layanan web. Anda dapat mengimplementasikan pustaka klien Anda sendiri dengan memanggil API sisi server secara langsung.
Tambahkan fungsi pendaftaran dan masuk ke aplikasi web dan seluler Anda
Bentuk autentikasi apa yang didukung Amazon Cognito?
Untuk autentikator faktor pertama, Amazon Cognito mendukung nama pengguna/kata sandi, OTP email tanpa kata sandi, OTP SMS tanpa kata sandi, dan kunci sandi WebAuthn. Cognito mendukung autentikator multi-faktor (MFA) berikut: OTP email, OTP SMS, dan autentikator TOTP. Selain itu, pelanggan dan partner dapat menerapkan dukungan untuk produk pihak ketiga dan autentikator yang dipesan lebih dahulu dengan alur autentikasi khusus, menggunakan ekstensi AWS Lambda.
Dapatkah saya memiliki penyedia identitas sendiri untuk mendukung pendaftaran dan masuk pengguna?
Ya, Anda dapat menambahkan fungsionalitas pendaftaran dan masuk ke aplikasi Anda dengan mudah dan aman menggunakan Amazon Cognito. Pengguna Anda dapat mendaftar dan masuk menggunakan email, nomor telepon, atau nama pengguna. Anda juga dapat mengimplementasikan fitur keamanan tingkat lanjut, seperti verifikasi email, verifikasi nomor telepon, dan autentikasi multifaktor. Cognito memungkinkan Anda menyesuaikan alur kerja, misalnya, dengan menambahkan logika khusus aplikasi ke pendaftaran pengguna untuk deteksi penipuan dan validasi pengguna melalui AWS Lambda. Untuk mempelajari selengkapnya, kunjungi dokumen kami.
Apa itu kumpulan pengguna Amazon Cognito?
Kumpulan pengguna adalah direktori pengguna berbasis penghuni yang dapat dikonfigurasikan untuk aplikasi web dan seluler Anda. Kumpulan pengguna menyimpan atribut profil pengguna Anda dengan aman dan mendukung skema khusus. Anda dapat membuat dan mengelola kumpulan pengguna menggunakan konsol AWS, AWS CLI, atau AWS SDK.
Informasi profil pengguna apa yang didukung oleh Amazon Cognito?
Developer dapat menggunakan atribut profil pengguna berbasis OpenID Connect standar (seperti nama pengguna, nomor telepon, alamat, zona waktu, dll.) atau menyesuaikan untuk menambahkan atribut pengguna khusus aplikasi.
Dapatkah saya mengizinkan pengguna aplikasi untuk mendaftar atau masuk dengan alamat email atau nomor telepon?
Ya, Anda dapat menggunakan fitur aliasing untuk memungkinkan pengguna mendaftar atau masuk dengan alamat email dan kata sandi atau nomor telepon dan kata sandi.
Untuk mempelajari selengkapnya, kunjungi dokumentasi kami.
Dapatkah saya mengatur kebijakan kata sandi?
Ya, Anda dapat mengatur kebijakan kata sandi, seperti panjang kata sandi, kompleksitas karakter, dan persyaratan riwayat kata sandi saat mengatur atau mengonfigurasi kumpulan pengguna Anda. Selain itu, Amazon Cognito mendukung pemeriksaan kredensial yang dikompromikan atas setiap aktivitas pendaftaran, masuk, dan perubahan kata sandi pengguna untuk memastikan bahwa pengguna tidak masuk dengan kata sandi yang telah dikompromikan di situs lain.
Dapatkah saya memverifikasi alamat email dan nomor telepon pengguna aplikasi saya?
Ya, dengan Amazon Cognito Anda dapat meminta alamat email dan nomor telepon pengguna untuk diverifikasi sebelum memberi mereka akses ke aplikasi Anda. Selama pendaftaran, kode verifikasi akan dikirim ke nomor telepon atau alamat email pengguna, dan pengguna harus memasukkan kode verifikasi untuk menyelesaikan pendaftaran dan mendapatkan konfirmasi.
Apakah Amazon Cognito mendukung autentikasi multifaktor (MFA) berbasis SMS?
Ya, Anda dapat mengaktifkan pengguna akhir aplikasi untuk masuk dengan MFA berbasis SMS. Dengan mengaktifkan MFA berbasis SMS, pengguna Anda akan dimintai kata sandi (faktor pertama—apa yang mereka ketahui), dan kode keamanan yang hanya dapat diterima di ponsel mereka melalui SMS (faktor kedua—apa yang mereka miliki).
Apakah mungkin untuk menyesuaikan alur kerja pendaftaran dan masuk pengguna?
Ya, Anda dapat menyesuaikan alur pendaftaran dan masuk menggunakan AWS Lambda. Misalnya, Anda dapat membuat fungsi AWS Lambda untuk mengidentifikasi penipuan atau melakukan validasi tambahan pada data pengguna. Anda dapat memicu fungsi Lambda khusus saat prapendaftaran, pascakonfirmasi (pendaftaran), praautentikasi, selama autentikasi, dan saat pascaautentikasi. Anda juga dapat menggunakan fungsi Lambda untuk menyesuaikan pesan yang dikirim sebagai bagian dari verifikasi email atau nomor telepon dan autentikasi multifaktor.
Dapatkah saya mengingat perangkat yang terkait dengan pengguna aplikasi saya di kumpulan pengguna Cognito?
Ya, Anda dapat memilih untuk mengingat perangkat yang digunakan untuk mengakses aplikasi Anda, dan Anda mengaitkan perangkat yang diingat ini dengan pengguna aplikasi dalam kumpulan pengguna Cognito. Anda juga dapat memilih untuk menggunakan perangkat yang diingat guna menekan tantangan faktor kedua (autentikasi adaptif) bagi pengguna saat Anda telah mengatur autentikasi multi-faktor.
Bagaimana cara memigrasi pengguna aplikasi saya yang ada ke kumpulan pengguna Amazon Cognito?
Ada dua cara untuk memigrasi pengguna dari direktori pengguna yang sudah ada atau basis data aplikasi Anda ke kumpulan pengguna: migrasi tepat waktu (JIT) dan migrasi massal.
Amazon Cognito membantu Anda memigrasi pengguna secara tepat waktu saat mereka masuk ke aplikasi Anda menggunakan pemicu AWS Lambda bawaan. Pemicu Lambda memungkinkan Anda untuk memigrasikan data pengguna dari sistem eksternal tanpa memaksanya untuk melakukan reset kata sandi mereka.
Alternatifnya, Anda dapat memigrasi pengguna secara massal dengan mengunggah file CSV yang berisi data profil semua pengguna aplikasi Anda. Anda dapat mengunggah file CSV melalui konsol Amazon Cognito, API, atau AWS CLI. Saat masuk untuk pertama kalinya, pengguna harus memverifikasi akun mereka dan membuat kata sandi baru menggunakan kode verifikasi yang dikirim ke alamat email atau nomor telepon mereka.
Untuk mempelajari selengkapnya, lihat Mengimpor Pengguna Ke Dalam kumpulan pengguna.
Aktifkan akses ke sumber daya AWS
Apakah saya dapat menggunakan kolam identitas Cognito untuk menggabungkan identitas dan mengamankan akses ke sumber daya AWS?
Ya, kolam identitas Cognito memungkinkan Anda mengautentikasi pengguna melalui penyedia identitas eksternal dan menyediakan kredensial keamanan sementara untuk mengakses sumber daya backend aplikasi Anda di AWS atau layanan apa pun di balik Amazon API Gateway. Amazon Cognito bekerja dengan penyedia identitas eksternal yang mendukung SAML atau OpenID Connect, penyedia identitas sosial (seperti Facebook, Twitter, Amazon) dan Anda juga dapat mengintegrasikan penyedia identitas Anda sendiri.
Penyedia identitas publik mana yang dapat saya gunakan dengan kolam identitas Amazon Cognito?
Anda dapat menggunakan Amazon, Facebook, Twitter, masuk dengan Apple, penyedia identitas sosial Google, penyedia identitas OpenID Connect (OIDC), penyedia identitas SAML, kumpulan pengguna Amazon Cognito, dan penyedia developer khusus.
Apa itu Kolam Identitas?
Kolam identitas memungkinkan Anda membuat identitas unik untuk pengguna Anda dan menggabungkannya dengan penyedia layanan AWS secara aman. Pelanggan memanfaatkan kolam identitas Amazon Cognito sebagai broker kredensial untuk mendapatkan kredensial AWS hak istimewa terbatas sementara untuk mengakses sumber daya AWS.
Pengguna dapat masuk melalui kumpulan pengguna Amazon Cognito, penyedia identitas OIDC, penyedia identitas SAML, atau penyedia identitas sosial dan mendapatkan akses berbasis peran ke layanan AWS, seperti bucket Amazon S3 atau catatan Amazon DynamoDB. Kolam Identitas tidak menyimpan profil pengguna mana pun. Kolam identitas dapat dikaitkan dengan satu atau banyak aplikasi. Jika Anda menggunakan dua kolam identitas yang berbeda untuk dua aplikasi, pengguna akhir yang sama akan memiliki pengidentifikasi unik yang berbeda di setiap Kolam Identitas.
Bagaimana cara kerja alur masuk dengan penyedia identitas publik?
Aplikasi seluler Anda diautentikasi dengan Penyedia Identitas (IdP) menggunakan SDK penyedia. Setelah pengguna akhir diautentikasi dengan IdP, token OpenID Connect atau pernyataan SAML yang dikembalikan dari IdP diteruskan oleh aplikasi Anda ke kolam identitas Cognito, yang mengembalikan ID Cognito baru untuk pengguna dan set kredensial AWS sementara dengan hak istimewa terbatas.
Dapatkah saya mendaftar dan mengautentikasi pengguna saya sendiri?
Kolam identitas Cognito dapat terintegrasi dengan sistem autentikasi Anda yang sudah ada. Dengan panggilan API sederhana, Anda dapat mengambil ID Cognito untuk pengguna akhir berdasarkan pengidentifikasi unik Anda sendiri bagi pengguna Anda. Setelah Anda mengambil ID Cognito dan Token OpenID, Anda dapat menggunakan SDK klien kolam identitas Cognito untuk mengakses sumber daya AWS dan menyinkronkan data pengguna.
Bagaimana Cognito Identity membantu saya mengontrol izin dan mengakses layanan AWS dengan aman?
Kolam identitas Cognito memberikan set kredensial hak istimewa sementara dan terbatas kepada pengguna Anda untuk mengakses sumber daya AWS sehingga Anda tidak perlu menggunakan kredensial akun AWS Anda. Izin untuk setiap pengguna dikontrol melalui peran AWS IAM yang Anda buat. Anda dapat menentukan aturan untuk memilih peran IAM bagi setiap pengguna, atau jika Anda menggunakan grup dalam kumpulan pengguna Cognito, Anda dapat menetapkan peran IAM berdasarkan grup. Kolam identitas Cognito juga memungkinkan Anda menentukan peran IAM terpisah dengan izin terbatas untuk pengguna tamu yang tidak diautentikasi. Selain itu, Anda dapat menggunakan pengidentifikasi unik yang dibuat Cognito bagi pengguna Anda untuk mengontrol akses ke sumber daya tertentu. Misalnya, Anda dapat membuat kebijakan untuk bucket S3 yang hanya mengizinkan setiap pengguna mengakses folder mereka sendiri di dalam bucket tersebut.
Saat menggunakan penyedia identitas publik, apakah kolam identitas Amazon Cognito menyimpan kredensial pengguna?
Tidak, aplikasi Anda berkomunikasi langsung dengan penyedia identitas publik yang didukung (Amazon, Facebook, Twitter, masuk dengan Apple, Google, SAML, atau penyedia yang sesuai dengan Open ID Connect) untuk mengautentikasi pengguna. Cognito Identity tidak menerima atau menyimpan kredensial pengguna. Cognito Identity menggunakan token dari penyedia identitas untuk memperoleh pengidentifikasi unik bagi pengguna, kemudian melakukan hash menggunakan hash satu arah sehingga pengguna yang sama dapat dikenali lagi di kemudian hari tanpa menyimpan pengidentifikasi pengguna yang sebenarnya.
Apakah kolam identitas Cognito menerima atau menyimpan informasi rahasia tentang pengguna saya dari penyedia identitas?
Tidak. Cognito Identity tidak menerima informasi rahasia apa pun (seperti alamat email, daftar teman, dll.) dari penyedia identitas.
Bagaimana jika saya tidak ingin memaksa pengguna saya untuk masuk?
Kolam identitas Cognito mendukung proses pembuatan dan penjualan token untuk pengguna yang tidak terautentikasi maupun pengguna yang terautentikasi. Hal ini menghilangkan kerumitan layar login tambahan di aplikasi Anda, tetapi masih memungkinkan Anda menggunakan kredensial hak istimewa sementara dan terbatas untuk mengakses sumber daya AWS.
Apakah saya masih memerlukan sistem autentikasi backend saya sendiri dengan Cognito Identity?
Tidak. Cognito Identity mendukung login melalui Amazon, Facebook, Twitter, Digits, dan Google, serta menyediakan dukungan untuk pengguna yang tidak diautentikasi. Dengan Cognito Identity, Anda dapat mendukung autentikasi gabungan, penyimpanan sinkronisasi data profil, dan distribusi token akses AWS tanpa menulis kode backend apa pun.
Apa itu pengguna yang tidak diautentikasi?
Pengguna yang tidak diautentikasi adalah pengguna yang tidak mengautentikasi dengan penyedia identitas mana pun, melainkan mengakses aplikasi Anda sebagai tamu. Anda dapat menentukan peran IAM terpisah bagi pengguna ini guna memberikan izin terbatas untuk mengakses sumber daya backend Anda.
Apakah kolam Identitas Cognito mendukung identitas terpisah untuk pengguna yang berbeda pada perangkat yang sama?
Ya, kolam identitas Cognito mendukung identitas terpisah pada satu perangkat, seperti iPad keluarga. Setiap identitas diperlakukan secara terpisah dan Anda memiliki kendali penuh atas cara aplikasi memasukkan dan mengeluarkan pengguna serta cara menyimpan data aplikasi lokal dan jarak jauh.
Bagaimana cara menyimpan data yang terkait dengan kolam identitas Cognito?
Anda dapat membuat set data yang terkait dengan kolam identitas Cognito secara terprogram dan mulai menyimpan data dalam bentuk pasangan kunci/nilai. Data disimpan secara lokal pada perangkat dan di penyimpanan sinkronisasi Cognito. Cognito juga dapat menyinkronkan data ini di seluruh perangkat pengguna akhir.
Apakah jumlah identitas di konsol kolam identitas Cognito menunjukkan jumlah pengguna yang menggunakan aplikasi saya?
Jumlah identitas di konsol kolam identitas Cognito menunjukkan jumlah identitas yang dibuat melalui API kolam identitas Cognito kepada Anda. Untuk Identitas yang Diautentikasi (mereka yang masuk dengan penyedia masuk, seperti Facebook atau penyedia OpenID Connect), setiap panggilan ke API GetId kolam identitas Cognito hanya akan membuat satu identitas untuk setiap pengguna. Namun, untuk identitas yang tidak diautentikasi, setiap kali klien dalam aplikasi memanggil API GetId akan menghasilkan identitas baru. Oleh karena itu, jika aplikasi Anda memanggil GetId untuk identitas yang tidak diautentikasi beberapa kali untuk satu pengguna, akan tampak bahwa satu pengguna tersebut memiliki beberapa identitas. Jadi, penting bagi Anda untuk menyimpan respons dari GetId dalam cache saat menggunakan identitas yang tidak diautentikasi dan tidak memanggilnya beberapa kali per pengguna.
Mobile SDK menyediakan logika untuk menyimpan data kolam identitas Cognito dalam cache secara otomatis sehingga Anda tidak perlu khawatir tentang hal ini. Jika Anda mencari solusi analitik lengkap untuk aplikasi Anda, termasuk kemampuan untuk melacak pengguna unik, harap lihat Analitik Amazon Mobile.
Harga
Berapa biaya kumpulan pengguna Amazon Cognito?
Untuk harga kumpulan pengguna Amazon Cognito, harap lihat halaman harga Amazon Cognito.
Untuk menghitung perkiraan biaya, gunakan Kalkulator Harga AWS
Apa itu Pengguna Aktif Bulanan (MAU)?
Anda membayar kumpulan pengguna Amazon Cognito berdasarkan pengguna aktif bulanan (MAU). Pengguna dihitung sebagai MAU jika, dalam satu bulan kalender, aplikasi Anda menghasilkan operasi identitas untuk pengguna tersebut, seperti pembuatan atau perubahan administratif, pendaftaran, masuk, keluar, penyegaran token, perubahan kata sandi, perubahan atribut akun pengguna, atau kueri atribut pada pengguna (AdminGetUser API). Anda tidak akan terkena biaya untuk sesi setelahnya atau untuk pengguna tidak aktif dalam bulan kalender tersebut. Biasanya, jumlah total pengguna dan jumlah operasi Anda akan jauh lebih besar daripada jumlah total MAU Anda.
Berapa biaya Sinkronisasi Amazon Cognito?
Untuk harga Sinkronisasi Amazon Cognito, lihat halaman harga Amazon Cognito.
Berapa biaya untuk menggunakan pesan SMS dengan Cognito?
Penggunaan pesan SMS untuk memverifikasi nomor telepon, untuk mengirim kode untuk kata sandi yang terlupa atau diatur ulang, atau untuk autentikasi multifaktor dikenakan biaya terpisah. Lihat halaman Harga SMS Seluruh Dunia untuk informasi selengkapnya.
Apa itu operasi sinkronisasi?
Saat Anda memanggil metode synchronize() menggunakan AWS Mobile SDK, panggilan ini dihitung sebagai operasi sinkronisasi. Jika Anda memanggil API server secara langsung, operasi sinkronisasi dimulai saat token sesi sinkronisasi baru dipancarkan dan diselesaikan dengan penulisan yang berhasil atau batas waktu token sesi. Baik Anda menggunakan metode synchronize() SDK atau memanggil API server secara langsung, operasi sinkronisasi dikenai biaya yang sama.
Apakah Amazon Cognito bagian dari AWS Tingkat Free?
Ya, SKU kumpulan pengguna Amazon Cognito dan SKU Dasar gratis untuk 10.000 MAU pertama. Akun pelanggan dengan kumpulan pengguna Amazon Cognito yang aktif sebelum tanggal 21 November 2024 memenuhi syarat untuk tingkat gratis 50.000 MAU.
Sebagai bagian dari Tingkat Gratis AWS, pelanggan AWS yang memenuhi syarat menerima 10 GB penyimpanan sinkronisasi cloud dan 1.000.000 operasi sinkronisasi per bulan selama 12 bulan.
Penggunaan kolam identitas Amazon Cognito untuk mengautentikasi pengguna dan menghasilkan pengidentifikasi unik disediakan secara gratis
Berapa biaya penggunaan Lambda dengan Amazon Cognito Events?
Tidak ada biaya tambahan atas penggunaan peristiwa Cognito untuk memicu fungsi Lambda, tetapi tarif normal untuk penggunaan AWS Lambda dan layanan AWS lainnya akan berlaku saat fungsi Lambda Anda dijalankan.
Harap lihat halaman harga AWS Lambda untuk detailnya.
Apakah setiap penulisan atau pembacaan dari aplikasi dihitung sebagai operasi sinkronisasi?
Tidak. Anda memutuskan kapan memanggil metode synchronize(). Setiap penulisan atau pembacaan dari perangkat ditujukan ke penyimpanan SQLite lokal. Dengan cara ini, Anda memiliki kendali penuh atas biaya Anda.
Berapa biaya sinkronisasi push
Cognito memanfaatkan Amazon SNS untuk mengirim notifikasi push senyap. Tidak ada biaya tambahan atas penggunaan Cognito untuk sinkronisasi push, tetapi tarif normal Amazon SNS akan berlaku untuk notifikasi yang dikirim ke perangkat.