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 dan agen pengguna, 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 menyiapkanMFA, 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 Fitur keamanan lanjutan kumpulan pengguna.

Ikhtisar otentikasi adaptif

Dari tab Keamanan lanjutan 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 keamanan lanjutan global ke 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.
Opsional MFA Pengguna yang memiliki faktor kedua yang dikonfigurasi harus menyelesaikan tantangan faktor kedua untuk masuk. Nomor telepon untuk SMS dan token TOTP perangkat lunak adalah faktor kedua yang tersedia. Pengguna tanpa faktor kedua yang dikonfigurasi dapat masuk hanya dengan satu set kredensil.
Membutuhkan 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 SMS sebagai faktor otentikasi kedua.

Menambahkan perangkat pengguna dan data sesi ke API permintaan

Anda dapat mengumpulkan dan meneruskan informasi tentang sesi pengguna Anda ke keamanan lanjutan Amazon Cognito saat Anda menggunakannya 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 API Cognito 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 keamanan lanjutan Amazon Cognito dengan ContextDataparameter dan. UserContextData Pustaka pengumpulan data konteks disertakan dalam file AWS SDKs. Untuk informasi selengkapnya, silakan lihat Mengintegrasikan Amazon Cognito dengan aplikasi web dan seluler. Anda dapat mengirimkan ContextData jika Anda telah mengaktifkan fitur keamanan lanjutan di kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi fitur keamanan lanjutan.

Saat Anda memanggil API operasi otentikasi 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 API operasi Amazon Cognito yang tidak diautentikasi, Anda dapat mengirimkan ke fitur keamanan lanjutan 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 Amazon Cognito yang tidak diautentikasi berikut. API

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 API operasi yang diautentikasi seperti AdminInitiateAuth , dan Anda menggunakan ContextData parameternya.

  • Anda hanya ingin API operasi Anda yang tidak diautentikasi mengirim sidik jari perangkat, tetapi bukan alamat IP, ke fitur keamanan lanjutan 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 tab Integrasi aplikasi.

  4. Di bawah Klien dan analitik aplikasi, 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 CognitoAPI, setel EnablePropagateAdditionalUserContextData ke true dalam permintaan CreateUserPoolClientatau UpdateUserPoolClientpermintaan. Untuk informasi tentang cara mengaktifkan keamanan lanjutan dari web atau aplikasi seluler, lihat Mengaktifkan keamanan lanjutan kumpulan pengguna dari aplikasi Anda. Saat aplikasi memanggil Amazon Cognito dari server, kumpulkan data konteks pengguna dari sisi klien. Berikut ini adalah contoh yang menggunakan JavaScript SDK metode inigetData.

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

Saat Anda mendesain aplikasi untuk menggunakan autentikasi adaptif, kami sarankan Anda memasukkan Amazon SDK 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 CognitoSDKs, lihat Menginstal kumpulan pengguna. SDK Keamanan lanjutan 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 keamanan tingkat lanjut. Secara default, Anda dapat melihat log pengguna di tab 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 tab 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 mengkorelasikan ID acara dengan token yang dikeluarkan Amazon Cognito pada saat merekam acara tersebut. 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 token JSON web kumpulan pengguna (JWTs).

Melihat riwayat acara pengguna (API/CLI)

Anda dapat menanyakan riwayat peristiwa pengguna dengan API operasi Amazon Cognito 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 JSON respons yang sama ke kedua permintaan. Berikut ini adalah contoh respons untuk peristiwa login UI yang dihosting 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 keamanan tingkat lanjut 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 keamanan tingkat lanjut.

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 tab Keamanan lanjutan. Temukan Ekspor log aktivitas pengguna dan 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 dan operasi Amazon Cognito. 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 tab 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 di tab Pengguna dan grup. Jika Anda memilih entri, Anda dapat menandai acara sebagai valid atau tidak valid. Anda juga dapat memberikan umpan balik melalui API operasi kumpulan pengguna AdminUpdateAuthEventFeedback, dan melalui AWS CLI perintah admin-update-auth-event-feedback.

Saat Anda memilih Setel sebagai valid di konsol Amazon Cognito atau berikan FeedbackValue nilai valid di konsolAPI, Anda memberi tahu Amazon Cognito bahwa Anda mempercayai sesi pengguna di mana Amazon Cognito telah mengevaluasi beberapa tingkat risiko. Saat Anda memilih Setel sebagai tidak valid di konsol Amazon Cognito atau berikan FeedbackValue nilai invalid di API konsol, 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 keamanan tingkat lanjut, 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 teks biasa dan HTML versi pesan ini. Untuk menyesuaikan notifikasi email Anda, buka template Email dari pesan autentikasi adaptif dalam konfigurasi keamanan lanjutan Anda. Untuk mempelajari selengkapnya tentang templat email, lihat Template pesan.