Bekerja dengan otentikasi adaptif - Amazon Cognito

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan otentikasi adaptif

Dengan autentikasi adaptif, Anda dapat mengonfigurasi kumpulan pengguna untuk memblokir login yang mencurigakan atau menambahkan otentikasi faktor kedua sebagai respons terhadap peningkatan tingkat risiko. Untuk setiap upaya masuk, Amazon Cognito menghasilkan skor risiko untuk seberapa besar kemungkinan permintaan masuk berasal dari sumber yang dikompromikan. Skor risiko ini didasarkan pada faktor perangkat dan pengguna yang disediakan aplikasi Anda, dan faktor lain yang diperoleh Amazon Cognito dari permintaan tersebut. Beberapa faktor yang berkontribusi terhadap evaluasi risiko oleh Amazon Cognito adalah alamat IP, agen pengguna, dan jarak geografis dari upaya masuk lainnya. Autentikasi adaptif dapat mengaktifkan atau memerlukan otentikasi multi-faktor (MFA) untuk pengguna di kumpulan pengguna Anda saat Amazon Cognito mendeteksi risiko dalam sesi pengguna, dan pengguna belum memilih metode MFA. Ketika Anda mengaktifkan MFA untuk pengguna, mereka selalu menerima tantangan untuk menyediakan atau mengatur faktor kedua selama otentikasi, terlepas dari bagaimana Anda mengonfigurasi otentikasi adaptif. Dari sudut pandang pengguna, aplikasi Anda menawarkan untuk membantu mereka menyiapkan MFA, dan secara opsional Amazon Cognito mencegah mereka masuk lagi hingga mereka mengonfigurasi faktor tambahan.

Amazon Cognito menerbitkan metrik tentang upaya masuk, tingkat risikonya, dan tantangan yang gagal ke Amazon. CloudWatch Untuk informasi selengkapnya, lihat Melihat metrik perlindungan ancaman.

Untuk menambahkan autentikasi adaptif ke kolam pengguna Anda, lihat Keamanan tingkat lanjut dengan perlindungan ancaman.

Ikhtisar otentikasi adaptif

Dari menu Perlindungan ancaman di konsol Amazon Cognito, Anda dapat memilih pengaturan untuk otentikasi adaptif, termasuk tindakan apa yang harus diambil pada tingkat risiko yang berbeda dan penyesuaian pesan notifikasi kepada pengguna. Anda dapat menetapkan konfigurasi perlindungan ancaman global untuk semua klien aplikasi Anda, tetapi menerapkan konfigurasi tingkat klien ke klien aplikasi individual.

Autentikasi adaptif Amazon Cognito menetapkan salah satu tingkat risiko berikut untuk setiap sesi pengguna: Tinggi, Sedang, Rendah, atau Tanpa Risiko.

Pertimbangkan opsi Anda dengan cermat saat mengubah metode Penegakan dari hanya Audit ke Fungsi Penuh. Respons otomatis yang Anda terapkan pada tingkat risiko memengaruhi tingkat risiko yang diberikan Amazon Cognito ke sesi pengguna berikutnya dengan karakteristik yang sama. Misalnya, setelah Anda memilih untuk tidak mengambil tindakan, atau Izinkan, sesi pengguna yang awalnya dievaluasi Amazon Cognito berisiko tinggi, Amazon Cognito menganggap sesi serupa memiliki risiko lebih rendah.

Untuk setiap tingkat risiko, Anda dapat memilih dari opsi berikut:

Opsi

Tindakan

Izinkan Pengguna dapat masuk tanpa faktor tambahan.
MFA Opsional Pengguna yang memiliki faktor kedua yang dikonfigurasi harus menyelesaikan tantangan faktor kedua untuk masuk. Nomor telepon untuk SMS dan token perangkat lunak TOTP adalah faktor kedua yang tersedia. Pengguna tanpa faktor kedua yang dikonfigurasi dapat masuk hanya dengan satu set kredensil.
Memerlukan MFA Pengguna yang memiliki faktor kedua yang dikonfigurasi harus menyelesaikan tantangan faktor kedua untuk masuk. Amazon Cognito memblokir proses masuk untuk pengguna yang tidak memiliki faktor kedua yang dikonfigurasi.
Blokir Amazon Cognito memblokir semua upaya masuk pada tingkat risiko yang ditentukan.
catatan

Anda tidak perlu memverifikasi nomor telepon untuk menggunakannya untuk SMS sebagai faktor otentikasi kedua.

Menambahkan perangkat pengguna dan data sesi ke permintaan API

Anda dapat mengumpulkan dan meneruskan informasi tentang sesi pengguna Anda ke perlindungan ancaman Amazon Cognito saat Anda menggunakan API untuk mendaftarkannya, masuk, dan mengatur ulang kata sandi mereka. Informasi ini mencakup alamat IP pengguna Anda dan pengenal perangkat unik.

Anda mungkin memiliki perangkat jaringan perantara antara pengguna dan Amazon Cognito, seperti layanan proxy atau server aplikasi. Anda dapat mengumpulkan data konteks pengguna dan meneruskannya ke Amazon Cognito sehingga autentikasi adaptif menghitung risiko Anda berdasarkan karakteristik titik akhir pengguna, bukan server atau proxy Anda. Jika aplikasi sisi klien Anda memanggil operasi Amazon Cognito API secara langsung, autentikasi adaptif secara otomatis mencatat alamat IP sumber. Namun, itu tidak merekam informasi perangkat lain seperti user-agent kecuali Anda juga mengumpulkan sidik jari perangkat.

Hasilkan data ini dengan pustaka pengumpulan data konteks Amazon Cognito dan kirimkan ke perlindungan ancaman Amazon Cognito dengan ContextDataparameter dan. UserContextData Pustaka pengumpulan data konteks disertakan dalam file AWS SDKs. Untuk informasi selengkapnya, lihat Mengintegrasikan otentikasi dan otorisasi Amazon Cognito dengan aplikasi web dan seluler. Anda dapat mengirimkan ContextData jika Anda memiliki paket fitur Plus. Untuk informasi selengkapnya, lihat Menyiapkan perlindungan ancaman.

Saat Anda memanggil operasi API yang diautentikasi Amazon Cognito berikut dari server aplikasi Anda, teruskan IP perangkat pengguna dalam parameter. ContextData Selain itu, berikan nama server, jalur server, dan data sidik jari perangkat yang dikodekan.

Saat Anda memanggil operasi API Amazon Cognito yang tidak diautentikasi, Anda dapat mengirimkan ke perlindungan ancaman Amazon UserContextData Cognito. Data ini mencakup sidik jari perangkat dalam EncodedData parameter. Anda juga dapat mengirimkan IpAddress parameter di Anda UserContextData jika Anda memenuhi ketentuan berikut:

Aplikasi Anda dapat mengisi UserContextData parameter dengan data sidik jari perangkat yang dikodekan dan alamat IP perangkat pengguna dalam operasi API Amazon Cognito yang tidak diautentikasi berikut.

Menerima data konteks pengguna tambahan ()AWS Management Console

Kumpulan pengguna Anda menerima alamat IP dalam UserContextData parameter setelah Anda mengaktifkan fitur Terima data konteks pengguna tambahan. Anda tidak perlu mengaktifkan fitur ini jika:

  • Pengguna Anda hanya masuk dengan operasi API yang diautentikasi seperti AdminInitiateAuth , dan Anda menggunakan ContextData parameternya.

  • Anda hanya ingin operasi API Anda yang tidak diautentikasi mengirim sidik jari perangkat, tetapi bukan alamat IP, ke perlindungan ancaman Amazon Cognito.

Perbarui klien aplikasi Anda sebagai berikut di konsol Amazon Cognito untuk menambahkan dukungan untuk data konteks pengguna tambahan.

  1. Masuk ke konsol Amazon Cognito.

  2. Di panel navigasi, pilih Kelola Kolam Pengguna Anda, lalu pilih kolam pengguna yang ingin Anda edit.

  3. Pilih menu Klien aplikasi.

  4. Pilih atau buat klien aplikasi. Untuk informasi selengkapnya, lihat Mengonfigurasi klien aplikasi kumpulan pengguna.

  5. Pilih Edit dari wadah informasi klien App.

  6. Di pengaturan autentikasi lanjutan untuk klien aplikasi Anda, pilih Terima data konteks pengguna tambahan.

  7. Pilih Simpan perubahan.

Untuk mengonfigurasi klien aplikasi agar menerima data konteks pengguna di Amazon Cognito API, setel EnablePropagateAdditionalUserContextData ke true dalam permintaan CreateUserPoolClientatau UpdateUserPoolClientpermintaan. Untuk informasi tentang cara bekerja dengan perlindungan ancaman di web atau aplikasi seluler Anda, lihatMengumpulkan data untuk perlindungan ancaman dalam aplikasi. Saat aplikasi memanggil Amazon Cognito dari server, kumpulkan data konteks pengguna dari sisi klien. Berikut ini adalah contoh yang menggunakan metode JavaScript getData SDK.

var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);

Saat mendesain aplikasi untuk menggunakan autentikasi adaptif, kami sarankan Anda memasukkan SDK Amazon Cognito terbaru ke dalam aplikasi Anda.. Versi terbaru SDK mengumpulkan informasi sidik jari perangkat seperti ID perangkat, model, dan zona waktu. Untuk informasi selengkapnya tentang Amazon Cognito SDKs, lihat Menginstal SDK kumpulan pengguna. Perlindungan ancaman Amazon Cognito hanya menyimpan dan menetapkan skor risiko untuk peristiwa yang dikirimkan aplikasi Anda dalam format yang benar. Jika Amazon Cognito mengembalikan respons kesalahan, periksa apakah permintaan Anda menyertakan hash rahasia yang valid dan IPaddress parameternya valid IPv4 atau alamat. IPv6

ContextDatadan UserContextData sumber daya

Melihat dan mengekspor riwayat acara pengguna

Amazon Cognito menghasilkan log untuk setiap peristiwa autentikasi oleh pengguna saat Anda mengaktifkan perlindungan ancaman. Secara default, Anda dapat melihat log pengguna di menu Pengguna di konsol Amazon Cognito atau dengan operasi AdminListUserAuthEventsAPI. Anda juga dapat mengekspor peristiwa ini ke sistem eksternal seperti CloudWatch Log, Amazon S3, atau Amazon Data Firehose. Fitur ekspor dapat membuat informasi keamanan tentang aktivitas pengguna di aplikasi Anda lebih mudah diakses oleh sistem analisis keamanan Anda sendiri.

Melihat riwayat acara pengguna (AWS Management Console)

Untuk melihat riwayat login pengguna, Anda dapat memilih pengguna dari menu Pengguna di konsol Amazon Cognito. Amazon Cognito mempertahankan riwayat peristiwa pengguna selama dua tahun.

Riwayat peristiwa pengguna

Setiap acara masuk memiliki ID acara. Acara ini juga memiliki data konteks yang sesuai, seperti lokasi, detail perangkat, dan hasil deteksi risiko.

Anda juga dapat menghubungkan ID acara dengan token yang dikeluarkan Amazon Cognito pada saat merekam acara. ID dan token akses menyertakan ID peristiwa ini dalam muatannya. Amazon Cognito juga menghubungkan penggunaan token refresh dengan ID acara asli. Anda dapat melacak ID peristiwa asli kembali ke ID peristiwa login yang mengakibatkan penerbitan token Amazon Cognito. Anda dapat melacak penggunaan token dalam sistem Anda ke acara otentikasi tertentu. Untuk informasi selengkapnya, lihat Memahami kumpulan pengguna token web JSON () JWTs.

Melihat riwayat acara pengguna (API/CLI)

Anda dapat melakukan kueri riwayat peristiwa pengguna dengan operasi Amazon Cognito API AdminListUserAuthEventsatau dengan AWS Command Line Interface (AWS CLI) dengan admin-list-user-auth -events.

AdminListUserAuthEvents request

Badan permintaan berikut untuk AdminListUserAuthEvents mengembalikan log aktivitas terbaru untuk satu pengguna.

{ "UserPoolId": "us-west-2_EXAMPLE", "Username": "myexampleuser", "MaxResults": 1 }
admin-list-user-auth-events request

Permintaan berikut untuk admin-list-user-auth-events mengembalikan log aktivitas terbaru untuk satu pengguna.

aws cognito-idp admin-list-user-auth-events --max-results 1 --username myexampleuser --user-pool-id us-west-2_EXAMPLE
Response

Amazon Cognito mengembalikan badan respons JSON yang sama ke kedua permintaan. Berikut ini adalah contoh respons untuk peristiwa login login terkelola yang tidak ditemukan mengandung faktor risiko:

{ "AuthEvents": [ { "EventId": "[event ID]", "EventType": "SignIn", "CreationDate": "[Timestamp]", "EventResponse": "Pass", "EventRisk": { "RiskDecision": "NoRisk", "CompromisedCredentialsDetected": false }, "ChallengeResponses": [ { "ChallengeName": "Password", "ChallengeResponse": "Success" } ], "EventContextData": { "IpAddress": "192.168.2.1", "DeviceName": "Chrome 125, Windows 10", "Timezone": "-07:00", "City": "Bellevue", "Country": "United States" } } ], "NextToken": "[event ID]#[Timestamp]" }

Mengekspor acara otentikasi pengguna

Konfigurasikan kumpulan pengguna Anda untuk mengekspor peristiwa pengguna dari perlindungan ancaman ke sistem eksternal. Sistem eksternal yang didukung—Amazon S3, CloudWatch Log, dan Amazon Data Firehose—dapat menambah biaya AWS tagihan Anda untuk data yang Anda kirim atau ambil. Untuk informasi selengkapnya, lihat Mengekspor log aktivitas pengguna perlindungan ancaman.

AWS Management Console
  1. Masuk ke konsol Amazon Cognito.

  2. Pilih Kolam Pengguna.

  3. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  4. Pilih menu Log streaming. Pilih Edit.

  5. Di bawah Status pencatatan, pilih kotak centang di samping Aktifkan ekspor log aktivitas pengguna.

  6. Di bagian Tujuan pencatatan, pilih Layanan AWS yang ingin Anda tangani log: grup CloudWatch log, aliran Amazon Data Firehose, atau bucket S3.

  7. Pilihan Anda akan mengisi pemilih sumber daya dengan jenis sumber daya yang sesuai. Pilih grup log, aliran, atau bucket dari daftar. Anda juga dapat memilih tombol Buat untuk menavigasi ke AWS Management Console untuk layanan yang dipilih dan membuat sumber daya baru.

  8. Pilih Simpan perubahan.

API

Pilih satu jenis tujuan untuk log aktivitas pengguna Anda.

Berikut ini adalah contoh badan SetLogDeliveryConfiguration permintaan yang menetapkan aliran Firehose sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "FirehoseConfiguration": { "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Berikut ini adalah contoh badan SetLogDeliveryConfiguration permintaan yang menetapkan bucket Amazon S3 sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Berikut ini adalah contoh badan SetLogDeliveryConfiguration permintaan yang menetapkan grup CloudWatch log sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Memberikan umpan balik acara

Umpan balik peristiwa mempengaruhi evaluasi risiko secara real time dan meningkatkan algoritma evaluasi risiko dari waktu ke waktu. Anda dapat memberikan umpan balik tentang validitas upaya masuk melalui konsol Amazon Cognito dan operasi API.

catatan

Umpan balik acara Anda memengaruhi tingkat risiko yang diberikan Amazon Cognito ke sesi pengguna berikutnya dengan karakteristik yang sama.

Di konsol Amazon Cognito, pilih pengguna dari menu Pengguna dan pilih Berikan umpan balik peristiwa. Anda dapat meninjau detail acara dan Set sebagai valid atau Set sebagai tidak valid.

Konsol mencantumkan riwayat masuk dalam detail pengguna di menu Pengguna. Jika Anda memilih entri, Anda dapat menandai acara sebagai valid atau tidak valid. Anda juga dapat memberikan umpan balik melalui operasi API kumpulan pengguna AdminUpdateAuthEventFeedback, dan melalui AWS CLI perintah admin-update-auth-event-feedback.

Saat Anda memilih Setel sebagai valid di konsol Amazon Cognito atau memberikan FeedbackValue nilai valid di API, Anda memberi tahu Amazon Cognito bahwa Anda mempercayai sesi pengguna di mana Amazon Cognito telah mengevaluasi beberapa tingkat risiko. Jika Anda memilih Setel sebagai tidak valid di konsol Amazon Cognito atau memberikan FeedbackValue nilai invalid di API, Anda memberi tahu Amazon Cognito bahwa Anda tidak mempercayai sesi pengguna, atau Anda tidak percaya bahwa Amazon Cognito mengevaluasi tingkat risiko yang cukup tinggi.

Mengirim pesan notifikasi

Dengan perlindungan ancaman, Amazon Cognito dapat memberi tahu pengguna Anda tentang upaya masuk yang berisiko. Amazon Cognito juga dapat meminta pengguna untuk memilih tautan untuk menunjukkan apakah proses masuk valid atau tidak valid. Amazon Cognito menggunakan umpan balik ini untuk meningkatkan akurasi deteksi risiko untuk kumpulan pengguna Anda.

Di bagian Respons risiko otomatis pilih Beri tahu Pengguna untuk kasus berisiko rendah, sedang, atau tinggi.

Beri tahu pengguna

Amazon Cognito mengirimkan pemberitahuan email kepada pengguna Anda terlepas dari apakah mereka telah memverifikasi alamat email mereka.

Anda dapat menyesuaikan pesan email pemberitahuan, dan memberikan versi teks biasa dan HTML dari pesan-pesan ini. Untuk menyesuaikan notifikasi email Anda, buka Templat email dari pesan autentikasi adaptif dalam konfigurasi perlindungan ancaman Anda. Untuk mempelajari selengkapnya tentang templat email, lihat Template pesan.