Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Manajemen identitas pelanggan
Identitas pelanggan dan manajemen akses (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. CIAMmembantu Anda mengidentifikasi pelanggan Anda, menciptakan pengalaman yang dipersonalisasi, dan menentukan akses yang benar yang mereka butuhkan untuk aplikasi dan layanan yang dihadapi pelanggan. CIAMSolusi juga dapat membantu organisasi memenuhi mandat kepatuhan di seluruh standar dan kerangka peraturan industri. Untuk informasi lebih lanjut, lihat Apa ituCIAM?
Amazon Cognito adalah layanan identitas untuk aplikasi web dan seluler yang menyediakan CIAM kemampuan untuk bisnis dalam skala apa pun. Amazon Cognito mencakup direktori pengguna, server otentikasi, dan layanan otorisasi untuk token akses OAuth 2.0, dan juga dapat memberikan kredensil sementara. AWS 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. Identity pool menyediakan AWS kredensi sementara untuk memberikan pengguna Anda akses ke layanan lainAWS.
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 dan SAML 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 AWS sumber daya. Amazon Cognito terintegrasi IAM untuk menyediakan kontrol akses berbutir halus ke sumber daya. AWS Anda dapat menentukan IAM peran dan kebijakan untuk mengontrol akses ke AWS layanan 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 kredensil 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 kredensi yang dikompromikan, dan kustomisasi token akses.
-
Integrasi dengan AWS layanan 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 menukar token dengan kredensil. AWS
-
Aplikasi mengakses AWS layanan 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 AWS sumber daya, 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 Token JSON Web (JWTs) sebelum memercayainya dengan memverifikasi tanda tangan dan validitasnya. Validasi ini harus dilakukan di sisi klien tanpa mengirim API panggilan ke kumpulan pengguna. Setelah token diverifikasi, Anda dapat mempercayai klaim pada token dan menggunakannya alih-alih melakukan getUser API panggilan tambahan. Untuk informasi selengkapnya, lihat Memverifikasi Token JSON Web di dokumentasi Amazon Cognito. Anda juga dapat menggunakan JWTpustaka tambahan
untuk verifikasi token. -
Aktifkan fitur keamanan lanjutan Amazon Cognito hanya jika Anda tidak menggunakan
CUSTOM_AUTH
alur, pemicu AWS Lambda untuk 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 lebih lanjut, lihat posting AWS blog 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 AWS blog Lindungi klien publik untuk Amazon Cognito dengan menggunakan proxy Amazon
. CloudFront -
Semua API panggilan 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 IAM peran untuk akses umum ke AWS sumber daya. 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 dengan 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 Komunitas. -
Gunakan AWS SDKs untuk mengakses data pengguna dari backend dengan memanggil dan mengambil atribut pengguna, status, dan informasi grup. 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 lain: Application Load Balancers, API Amazon 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 HTTPS listener, 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
Integrasi dengan Amazon API Gateway
Amazon API Gateway adalah layanan API gateway 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 otentikasi 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 JSON Web (JWT) yang dihasilkan oleh Amazon Cognito dan mengotorisasi permintaan berdasarkan cakupan khusus dalam token akses atau token ID yang valid. Untuk mempelajari lebih lanjut tentang implementasi, lihat Bagaimana cara menyiapkan kumpulan pengguna Amazon Cognito sebagai otorisasi di
Izin Terverifikasi - Pengotorisasi Lambda
Anda dapat menggunakan Izin Terverifikasi Amazon untuk mengintegrasikan Amazon Cognito atau penyedia identitas Anda sendiri API dengan Gateway untuk otentikasi 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 JSON atau struktur), cakupan, dan keanggotaan grup. Untuk mulai mengamankan API Gateway REST APIs dengan menggunakan Izin Terverifikasi, lihat posting blog AWS keamanan Otorisasi Gateway API 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 mengimplementasikan skema otorisasi khusus. Skema Anda dapat menggunakan parameter permintaan untuk menentukan identitas pemanggil atau menggunakan strategi otentikasi token pembawa seperti atau. OAuth SAML Opsi ini memberikan fleksibilitas maksimum tetapi mengharuskan Anda untuk kode logika untuk mengamankan AndaAPIs. Untuk informasi selengkapnya, lihat Menggunakan otorisasi API Gateway Lambda di dokumentasi Gateway. API
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