Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Customer Identity and Access Management (CIAM) adalah teknologi yang memungkinkan organisasi untuk mengelola identitas pelanggan. Ini memberikan keamanan dan pengalaman pengguna yang ditingkatkan untuk mendaftar, masuk, dan mengakses aplikasi konsumen, portal web, atau layanan digital yang ditawarkan oleh organisasi. CIAM membantu Anda mengidentifikasi pelanggan Anda, menciptakan pengalaman yang dipersonalisasi, dan menentukan akses yang benar yang mereka butuhkan untuk aplikasi dan layanan yang dihadapi pelanggan. Solusi CIAM juga dapat membantu organisasi memenuhi mandat kepatuhan di seluruh standar dan kerangka peraturan industri. Untuk informasi lebih lanjut, lihat Apa itu CIAM?
Amazon Cognito adalah layanan identitas untuk aplikasi web dan seluler yang menyediakan kemampuan CIAM untuk bisnis dalam skala apa pun. Amazon Cognito menyertakan direktori pengguna, server otentikasi, dan layanan otorisasi untuk token akses OAuth 2.0, dan juga dapat memberikan kredensyal AWS sementara. Anda dapat menggunakan Amazon Cognito untuk mengautentikasi dan mengotorisasi pengguna dari direktori pengguna bawaan, dari penyedia identitas federasi seperti direktori perusahaan Anda, atau dari penyedia identitas sosial seperti Google dan Facebook.
Dua komponen utama Amazon Cognito adalah kumpulan pengguna dan kumpulan identitas. Kumpulan pengguna adalah direktori pengguna yang menyediakan opsi pendaftaran dan masuk untuk pengguna web dan aplikasi seluler Anda. Kumpulan identitas menyediakan kredensyal AWS sementara untuk memberi pengguna Anda akses ke layanan AWS lainnya.
Kapan menggunakan Amazon Cognito
Amazon Cognito adalah pilihan yang baik ketika Anda memerlukan solusi manajemen pengguna yang aman dan hemat biaya untuk aplikasi web dan seluler Anda. Berikut adalah beberapa skenario di mana Anda mungkin memutuskan untuk menggunakan Amazon Cognito:
-
Otentikasi. Jika Anda membuat prototipe aplikasi atau ingin menerapkan fungsionalitas login pengguna dengan cepat, Anda dapat menggunakan kumpulan pengguna Amazon Cognito dan UI yang dihosting untuk mempercepat pengembangan. Anda dapat fokus pada fitur aplikasi inti Anda sementara Amazon Cognito menangani pendaftaran, masuk, dan keamanan pengguna.
Amazon Cognito mendukung berbagai metode otentikasi, termasuk nama pengguna dan kata sandi, penyedia identitas sosial. dan penyedia identitas perusahaan melalui SAMP dan OpenID Connect (OIDC).
-
Manajemen pengguna. Amazon Cognito mendukung manajemen pengguna, termasuk pendaftaran pengguna, verifikasi, dan pemulihan akun. Pengguna dapat mendaftar dan masuk dengan penyedia identitas pilihan mereka, dan Anda dapat menyesuaikan proses pendaftaran sesuai dengan persyaratan aplikasi Anda.
-
Akses aman ke sumber daya AWS. Amazon Cognito terintegrasi dengan IAM untuk menyediakan kontrol akses berbutir halus ke sumber daya AWS. Anda dapat menentukan peran dan kebijakan IAM untuk mengontrol akses ke layanan AWS berdasarkan identitas pengguna dan keanggotaan grup.
-
Identitas federasi. Amazon Cognito mendukung identitas federasi, yang memungkinkan pengguna untuk masuk dengan menggunakan identitas sosial atau perusahaan yang ada. Ini menghilangkan kebutuhan pengguna untuk membuat kredensyal baru untuk aplikasi Anda, sehingga meningkatkan pengalaman pengguna dan mengurangi gesekan selama proses pendaftaran.
-
Aplikasi seluler dan web. Amazon Cognito sangat cocok untuk aplikasi seluler dan web. Ini menyediakan SDKs berbagai platform, dan membuatnya mudah untuk mengintegrasikan otentikasi dan kontrol akses ke dalam kode aplikasi Anda. Ini mendukung akses offline dan sinkronisasi untuk aplikasi seluler, sehingga pengguna dapat mengakses data mereka bahkan ketika mereka sedang offline.
-
Skalabilitas. Amazon Cognito adalah layanan yang sangat tersedia dan dikelola sepenuhnya yang dapat menskalakan jutaan pengguna. Ini memproses lebih dari 100 miliar otentikasi per bulan.
-
Keamanan. Amazon Cognito memiliki beberapa fitur keamanan bawaan, seperti enkripsi data sensitif, otentikasi multi-faktor (MFA), dan perlindungan terhadap serangan web umum seperti cross-site scripting (XSS) dan cross-site request forgery (CSRF). Amazon Cognito juga menyediakan fitur keamanan canggih seperti otentikasi adaptif, memeriksa penggunaan kredensyal yang dikompromikan, dan kustomisasi token akses.
-
Integrasi dengan layanan AWS yang ada. Amazon Cognito terintegrasi secara mulus dengan layanan AWS. Ini dapat menyederhanakan pengembangan dan merampingkan manajemen pengguna untuk fungsionalitas yang bergantung pada sumber daya AWS.
Diagram berikut menggambarkan beberapa skenario ini.

-
Aplikasi mengautentikasi dengan kumpulan pengguna Amazon Cognito dan mendapatkan token.
-
Aplikasi ini menggunakan kumpulan identitas Amazon Cognito untuk bertukar token dengan kredensyal AWS.
-
Aplikasi mengakses layanan AWS dengan kredensyal.
Kami menyarankan Anda menggunakan Amazon Cognito kapan pun Anda perlu menambahkan autentikasi pengguna, otorisasi, dan kemampuan manajemen pengguna ke aplikasi web atau seluler Anda, terutama jika Anda memiliki beberapa penyedia identitas, memerlukan akses aman ke sumber daya AWS, dan memiliki persyaratan skalabilitas.
Pertimbangan desain
-
Buat kumpulan pengguna Amazon Cognito atau kumpulan identitas berdasarkan kebutuhan Anda.
-
Jangan terlalu sering memperbarui profil pengguna (misalnya, dengan setiap permintaan masuk). Jika pembaruan diperlukan, simpan atribut yang diperbarui dalam database eksternal seperti Amazon DynamoDB.
-
Jangan gunakan manajemen identitas tenaga kerja Amazon Cognito.
-
Aplikasi Anda harus selalu memvalidasi JSON Web Tokens (JWTs) sebelum memercayainya dengan memverifikasi tanda tangan dan validitasnya. Validasi ini harus dilakukan di sisi klien tanpa mengirim panggilan API ke kumpulan pengguna. Setelah token diverifikasi, Anda dapat mempercayai klaim pada token dan menggunakannya alih-alih membuat panggilan API GetUser tambahan. Untuk informasi selengkapnya, lihat Memverifikasi Token Web JSON di dokumentasi Amazon Cognito. Anda juga dapat menggunakan pustaka JWT tambahan untuk verifikasi token
. -
Aktifkan fitur keamanan lanjutan Amazon Cognito hanya jika Anda tidak menggunakan
CUSTOM_AUTH
alur, AWS Lambda memicu tantangan autentikasi khusus, atau login gabungan. Untuk pertimbangan dan batasan seputar fitur keamanan tingkat lanjut, lihat dokumentasi Amazon Cognito. -
Aktifkan AWS WAF untuk melindungi kumpulan pengguna Amazon Cognito dengan menggunakan aturan berbasis tarif dan menggabungkan beberapa parameter permintaan. Untuk informasi selengkapnya, lihat postingan blog AWS Lindungi kumpulan pengguna Amazon Cognito Anda dengan AWS WAF
. -
Jika Anda menginginkan lapisan perlindungan tambahan, gunakan CloudFront proxy Amazon untuk pemrosesan tambahan dan validasi permintaan masuk, seperti yang dijelaskan dalam posting blog AWS Lindungi klien publik untuk Amazon Cognito dengan menggunakan proxy Amazon
. CloudFront -
Semua panggilan API setelah login pengguna harus dilakukan dari layanan backend. Misalnya, gunakan AWS WAF untuk menolak panggilan ke
UpdateUserAttribute
, tetapi kemudian memanggilAdminUpdateUserAttribute
dari backend aplikasi sebagai gantinya, untuk memperbarui atribut pengguna. -
Saat membuat kumpulan pengguna, Anda memilih cara pengguna masuk ― misalnya, dengan nama pengguna, alamat email, atau nomor telepon. Konfigurasi ini tidak dapat diubah setelah kumpulan pengguna dibuat. Demikian pula, atribut kustom tidak dapat diubah atau dihapus setelah ditambahkan ke kumpulan pengguna.
-
Kami menyarankan Anda mengaktifkan otentikasi multi-faktor (MFA) di kumpulan pengguna Anda.
-
Amazon Cognito saat ini tidak menyediakan fungsi pencadangan atau ekspor bawaan. Untuk mencadangkan atau mengekspor data pengguna, Anda dapat menggunakan Arsitektur Referensi Ekspor Profil Amazon Cognito
. -
Gunakan peran IAM untuk akses umum ke sumber daya AWS. Untuk persyaratan otorisasi berbutir halus, gunakan Izin Terverifikasi Amazon. Layanan manajemen izin ini terintegrasi secara native dengan Amazon Cognito
. Anda juga dapat menggunakan kustomisasi token akses untuk memperkaya klaim khusus aplikasi untuk menentukan tingkat akses dan konten yang tersedia bagi pengguna. Jika aplikasi Anda menggunakan Amazon API Gateway sebagai titik masuk, gunakan fitur Amazon Cognito untuk mengamankan Amazon API Gateway menggunakan Izin Terverifikasi Amazon. Layanan ini mengelola dan mengevaluasi kebijakan keamanan terperinci yang mereferensikan atribut dan grup pengguna. Anda dapat memastikan bahwa hanya pengguna di grup Amazon Cognito resmi yang memiliki akses ke aplikasi. APIs Untuk informasi selengkapnya, lihat artikel Lindungi API Gateway dengan Izin Terverifikasi Amazon di situs web AWS Community. -
Gunakan AWS SDKs untuk mengakses data pengguna dari backend dengan memanggil dan mengambil atribut, status, dan informasi grup pengguna. Anda dapat menyimpan data aplikasi khusus di atribut pengguna Amazon Cognito dan membuatnya tetap disinkronkan di seluruh perangkat.
Bagian berikut membahas tiga pola untuk mengintegrasikan Amazon Cognito dengan layanan AWS lainnya: Application Load Balancers, Amazon API Gateway, dan Amazon Service. OpenSearch
Integrasi dengan Application Load Balancer
Anda dapat mengonfigurasi Application Load Balancer dengan Amazon Cognito untuk mengautentikasi pengguna aplikasi, seperti yang diilustrasikan dalam diagram berikut.

Dengan mengonfigurasi aturan default pendengar HTTPS, Anda dapat menurunkan identifikasi pengguna ke Application Load Balancer dan membuat proses otentikasi otomatis. Untuk detailnya, lihat Bagaimana cara mengatur Application Load Balancer untuk mengautentikasi pengguna melalui kumpulan pengguna Amazon Cognito di
Integrasi dengan Amazon API Gateway
Amazon API Gateway adalah layanan gateway API berbasis cloud yang dikelola sepenuhnya yang memudahkan pembuatan, penerbitan, dan pengelolaan APIs dalam skala besar. Ini adalah titik masuk untuk lalu lintas pengguna ke layanan backend. Anda dapat mengintegrasikan Amazon Cognito dengan API Gateway untuk menerapkan autentikasi dan kontrol akses, baik untuk melindungi APIs dari penyalahgunaan atau untuk kasus keamanan atau penggunaan bisnis lainnya. Anda dapat menerapkan autentikasi dan kontrol akses untuk mengamankan API Gateway APIs dengan menggunakan otorisasi Amazon Cognito, Izin Terverifikasi Amazon, atau otorisasi Lambda. Tabel berikut menjelaskan bagaimana ketiga pendekatan ini mendukung otorisasi.
Jenis otorisasi | Otorisasi yang didukung |
---|---|
Otorisasi Amazon Cognito |
Token akses: cakupan Token ID: validitas |
Izin Terverifikasi - Pengotorisasi Lambda |
Izin Terverifikasi melakukan validasi token (tanda tangan, kedaluwarsa) untuk token yang dikonfigurasi. Token akses: Setiap atribut sederhana, atribut kompleks, cakupan, atau grup. Token ID: Setiap atribut sederhana, atribut kompleks, cakupan, atau grup. Kebijakan juga dapat menggunakan data kontekstual untuk otorisasi tanpa kepercayaan (misalnya, alamat IP, konteks permintaan, atau sidik jari perangkat). |
Otorisasi Lambda Kustom |
Anda dapat menerapkan validasi token kustom dan skema otorisasi. |
Otorisasi Amazon Cognito
Anda dapat mengintegrasikan Amazon Cognito dengan API Gateway untuk menerapkan otentikasi dan kontrol akses, seperti yang diilustrasikan dalam diagram berikut. Otorisasi Amazon Cognito memvalidasi Token Web JSON (JWT) yang dihasilkan oleh Amazon Cognito dan mengotorisasi permintaan berdasarkan cakupan khusus dalam token akses atau token ID yang valid. Untuk mempelajari implementasi lebih lanjut, lihat Bagaimana cara menyiapkan kumpulan pengguna Amazon Cognito sebagai otorisasi pada API REST API Gateway API?

Izin Terverifikasi - Pengotorisasi Lambda
Anda dapat menggunakan Izin Terverifikasi Amazon untuk mengintegrasikan Amazon Cognito atau penyedia identitas Anda sendiri dengan API Gateway untuk autentikasi dan kontrol akses berbutir halus. Izin Terverifikasi mendukung validasi ID dan token akses dari Amazon Cognito atau penyedia OpenID Connect (OIDC) apa pun dan dapat mengotorisasi akses berdasarkan atribut token sederhana, atribut token kompleks (seperti array atau struktur JSON), cakupan, dan keanggotaan grup. Untuk mulai mengamankan REST API Gateway APIs dengan menggunakan Izin Terverifikasi, lihat posting blog keamanan AWS Otorisasi API Gateway menggunakan Izin Terverifikasi APIs Amazon dengan Amazon Cognito atau bawa penyedia identitas Anda sendiri dan video Izin Terverifikasi Amazon

Pengotorisasi Lambda
Anda dapat menggunakan otorisasi AWS Lambda untuk menerapkan skema otorisasi khusus. Skema Anda dapat menggunakan parameter permintaan untuk menentukan identitas pemanggil atau menggunakan strategi otentikasi token pembawa seperti OAuth atau SAMP. Opsi ini memberikan fleksibilitas maksimum tetapi mengharuskan Anda untuk kode logika untuk mengamankan Anda APIs. Untuk informasi selengkapnya, lihat Menggunakan otorisasi API Gateway Lambda dalam dokumentasi API Gateway.
Integrasi dengan Amazon OpenSearch Service
Anda dapat menggunakan Amazon Cognito untuk mengamankan domain OpenSearch Layanan Amazon. Misalnya, jika pengguna mungkin memerlukan akses ke OpenSearch Dasbor dari internet, seperti yang diilustrasikan dalam diagram berikut. Dalam skenario ini, Amazon Cognito dapat memberikan izin akses, termasuk izin berbutir halus, dengan memetakan grup Amazon Cognito dan pengguna ke izin Layanan internal. OpenSearch Untuk informasi selengkapnya, lihat Mengonfigurasi autentikasi Amazon Cognito OpenSearch untuk Dasbor di dokumentasi Layanan. OpenSearch
