FAQ Amazon Cognito

Umum

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

 

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.

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.

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

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

Tidak. Cognito Identity tidak menerima informasi rahasia apa pun (seperti alamat email, daftar teman, dll.) dari penyedia identitas.

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.

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.

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.

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.

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.

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

Untuk harga kumpulan pengguna Amazon Cognito, harap lihat halaman harga Amazon Cognito.

Untuk menghitung perkiraan biaya, gunakan Kalkulator Harga AWS

 

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.

Untuk harga Sinkronisasi Amazon Cognito, lihat halaman harga Amazon 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.

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.

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

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.

 

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.

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.