Mengaktifkan SMS defense reCAPTCHA untuk autentikasi berbasis SMS
Dokumen ini menjelaskan cara menggunakan SMS defense reCAPTCHA untuk membantu melindungi alur berbasis SMS Identity Platform Anda, seperti autentikasi ponsel dan autentikasi multi-faktor, dari penipuan pulsa SMS (juga dikenal sebagai serangan pumping SMS). Integrasi ini membantu mencegah traffic SMS yang tidak sah berdampak negatif pada pengguna dan resource Anda.
Ringkasan
Jika aplikasi Anda mengandalkan SMS untuk autentikasi, sebaiknya aktifkan
integrasi SMS defense reCAPTCHA. Setelah diaktifkan,
Firebase Authentication dan Identity Platform akan otomatis memanggil
fitur SMS defense reCAPTCHA setiap kali pengguna akhir meminta pesan SMS
verifikasi dari aplikasi atau situs Anda
menggunakan operasi phoneProvider berikut:
| Operasi | Metode | |
|---|---|---|
| Pendaftaran atau login dengan nomor telepon | sendVerificationCode |
|
| Pendaftaran nomor telepon MFA | mfaSmsEnrollment |
|
| Login dengan nomor telepon MFA | mfaSmsSignIn |
reCAPTCHA kemudian memberikan skor risiko kepada Firebase Authentication atau Identity Platform yang menunjukkan kemungkinan penipuan pulsa SMS untuk nomor telepon pengguna. Skor ini kemudian dibandingkan dengan nilai minimum yang Anda konfigurasi. Jika permintaan pengguna lulus penilaian penipuan pulsa, kode verifikasi SMS akan dikirim. Jika skor risiko melebihi nilai minimum yang Anda konfigurasi, Identity Platform akan memblokir permintaan dan tidak akan mengirim pesan SMS yang berisi kode verifikasi.
Jika SMS defense reCAPTCHA diaktifkan, verifikasi penggantian tidak diperlukan, dan Anda tidak perlu menyiapkan metode verifikasi tambahan untuk aplikasi Anda. Namun, sebaiknya siapkan pemverifikasi reCAPTCHA untuk aplikasi web guna memastikan reCAPTCHA v2 tersedia jika Anda memutuskan untuk menonaktifkan SMS defense reCAPTCHA.
Untuk memahami cara kerja skor SMS defense reCAPTCHA, lihat Menafsirkan skor.
Untuk mengetahui informasi selengkapnya tentang fitur SMS defense reCAPTCHA, lihat Mendeteksi dan mencegah penipuan SMS.
Sebelum memulai
Sebelum mengaktifkan SMS defense reCAPTCHA untuk Identity Platform, selesaikan tugas-tugas berikut:
Konfigurasi hal berikut untuk aplikasi atau situs Anda sebagaimana mestinya:
- Login dengan ponsel untuk pengguna.
- Autentikasi multi-faktor untuk aplikasi web, Android, atau iOS Anda.
Konfigurasikan Firebase Authentication untuk aplikasi atau situs Anda sebagaimana mestinya:
Mengaktifkan SMS defense reCAPTCHA
Menyiapkan autentikasi:
-
Di konsol Google Cloud , aktifkan Cloud Shell.
Membuat identitas layanan:
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_IDGanti
PROJECT_IDdengan ID project.Berikan peran
roles/identitytoolkit.serviceAgentke identitas layanan yang Anda buat.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \ --role=roles/identitytoolkit.serviceAgentGanti kode berikut:
PROJECT_ID: the project IDPROJECT_NUMBER: nomor akun project
-
Aktifkan reCAPTCHA Enterprise API di project Anda.
Aktifkan SMS defense reCAPTCHA untuk project Anda:
Di konsol Google Cloud , buka halaman reCAPTCHA.
Pastikan nama project Anda muncul di pemilih resource.
Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.
Klik Setelan.
Di panel SMS defense, klik Configure.
Klik tombol Aktifkan, lalu klik Simpan.
Saat Anda mengaktifkan SMS defense reCAPTCHA, pelindung akun juga diaktifkan, jika belum diaktifkan.
Mungkin perlu waktu beberapa menit agar pengaktifan SMS defense reCAPTCHA diterapkan ke sistem kami. Setelah diterapkan, Anda akan mulai menerima respons terkait SMS defense reCAPTCHA sebagai bagian dari penilaian.
Untuk mengonfigurasi setelan SMS defense reCAPTCHA untuk project Firebase Authentication atau Identity Platform, lakukan hal berikut:
Di URL berikut, ganti
PROJECT_IDdanSTART_SCORE:https://cloud.google.com/identity-platform/docs/reference/rest/v2/projects/updateConfig?apix_params={"name":"projects/PROJECT_ID/config","updateMask":"recaptchaConfig.phoneEnforcementState,recaptchaConfig.useSmsTollFraudProtection,recaptchaConfig.tollFraudManagedRules","resource":{"recaptchaConfig":{"phoneEnforcementState":"ENFORCE","useSmsTollFraudProtection":true,"tollFraudManagedRules":[{"action":"BLOCK","startScore":START_SCORE}]}}}PROJECT_ID: ID project dengan identity-platform yang diaktifkan.START_SCORE: nilai minimum yang dapat dikonfigurasi yang menentukan skor tertinggi yang dapat dimiliki permintaan SMS sebelum ditandai dan diblokir sebagai penipuan pulsa.Nilai minimumnya adalah
0.0. Nilai minimum maksimum adalah0.9. Setiap permintaan dengan skor yang lebih tinggi dari nilai minimum dianggap sebagai penipuan. Misalnya, jika Anda menetapkan nilai minimum ke0.3, reCAPTCHA akan memblokir permintaan apa pun dengan skor penipuan0.4atau lebih tinggi.Untuk meningkatkan tingkat perlindungan dari penipuan, tetapkan nilai minimum ke nilai yang lebih rendah. Untuk mengurangi tingkat perlindungan dari penipuan, tetapkan nilai minimum ke nilai yang lebih tinggi. Setelan ini akan memungkinkan lebih banyak permintaan dengan skor yang lebih tinggi untuk diteruskan.
Untuk penerapan awal, sebaiknya mulai dengan nilai minimum yang lebih tinggi, seperti
0.8, lalu turunkan secara berulang sesuai dengan toleransi risiko spesifik Anda.Sebaiknya jangan gunakan nilai minimum
0.0atau1.0. Menetapkan nilai minimum ke0.0akan memblokir semua pesan SMS, sedangkan1.0akan sepenuhnya menonaktifkan perlindungan dari penipuan, yang dapat mengakibatkan kegagalan pengiriman SMS ke wilayah berisiko tinggi.
Masukkan URL di jendela browser baru tempat Anda login ke Konsol Google Cloud .
Jika Anda menggunakan Identity Platform di web atau Android, daftarkan aplikasi Anda dari Firebase console:
Untuk Android, daftarkan setiap nama paket Android yang menggunakan Identity Platform.
Untuk web, tambahkan domain yang diizinkan untuk setiap domain yang menggunakan reCAPTCHA:
Di konsol Google Cloud , buka halaman Identity Platform.
Buka Setelan > Keamanan.
Klik Tambahkan domain.
Masukkan nama domain, lalu klik Tambahkan untuk menyimpan domain.
Penyediaan kunci reCAPTCHA dapat memerlukan waktu beberapa menit untuk diselesaikan.
Verifikasi konfigurasi Anda:
Ambil detail konfigurasi reCAPTCHA:
{replace-your-project}denganprojectIdatauprojectNumberAnda. JalankanGetConfigAPI di panel samping untuk mengambil konfigurasi reCAPTCHA.Pastikan SMS defense reCAPTCHA dikonfigurasi dengan benar:
Jika konfigurasi reCAPTCHA disiapkan dengan benar, respons harus memiliki kolom berikut dengan nilai yang ditentukan:
recaptchaKeys: Kolom tidak boleh kosong dan dikonfigurasi untuk setidaknya salah satu platform berikut: iOS, Web, atau Android.useSmsTollFraudProtection: Nilai untuk kolom ini harus ditetapkan ketrue.phoneEnforcementState: Nilai harus ditetapkan keENFORCE.tollFraudManagedRules: Dalam kolom ini,startScoreharus dikonfigurasi dengan nilai minimum yang Anda pilih, yang harus berupa nilai antara0dan0.9.
Jika tidak, konfigurasikan kembali SMS defense reCAPTCHA.
Contoh Respons
{ "recaptchaConfig": { "recaptchaKeys": [ { "key": "projects/{your-project}/keys/{recaptcha-key}", "type": "WEB" }, { "type": "IOS" }, { "type": "ANDROID" } ], "phoneEnforcementState": "ENFORCE", "tollFraudManagedRules": [ { "startScore": 0.8, "action": "BLOCK" } ], "useSmsTollFraudProtection": true } } ```
Pastikan versi SDK sudah benar.
Web
Update ke SDK web versi terbaru.
- Dukungan reCAPTCHA untuk autentikasi email dan sandi di aplikasi web tersedia di JavaScript SDK versi 9.20.0 dan yang lebih baru.
- Dukungan reCAPTCHA untuk autentikasi nomor telepon di aplikasi web tersedia di JavaScript SDK versi 11 dan yang lebih baru.
Setelah Anda mengintegrasikan SDK web dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA dan mengaktifkan perlindungan untuk penyedia yang telah Anda konfigurasi.
Android
Update ke Android SDK versi terbaru. Dukungan reCAPTCHA untuk autentikasi email dan sandi serta autentikasi ponsel di aplikasi Android tersedia di Android SDK versi 23.1.0 dan yang lebih baru.
Selain itu, dukungan reCAPTCHA memerlukan API level 23 (Marshmallow) atau yang lebih tinggi dan Android 6 atau yang lebih tinggi.
Setelah Anda mengintegrasikan Android SDK dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA dan menerapkan nilai minimum yang Anda tetapkan untuk penyedia yang telah Anda konfigurasi.
Tambahkan aturan build berikut ke bagian dependensi file
build.gradlelevel aplikasi:implementation 'com.google.android.recaptcha:recaptcha:18.5.1'Pastikan untuk menggunakan reCAPTCHA SDK versi 18.5.1 atau yang lebih baru.
iOS
- Update ke iOS SDK versi 11.6.0 atau yang lebih baru.
Setelah Anda mengintegrasikan iOS SDK dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA dan menerapkan nilai minimum yang Anda tetapkan untuk penyedia yang telah Anda konfigurasi.
Untuk mengintegrasikan reCAPTCHA iOS SDK ke aplikasi Anda, lihat Menyiapkan lingkungan iOS.
Untuk memverifikasi bahwa
-ObjCtercantum dalam flag penaut, buka Target > Build Settings > All > Linking dan pastikanOther Linker Flagsmenampilkan-ObjC.
Memantau metrik reCAPTCHA untuk SMS defense reCAPTCHA
Pantau metrik reCAPTCHA yang dikeluarkan project Anda untuk memverifikasi bahwa alur autentikasi berbasis SMS Anda terlindungi. Misalnya, metrik ini dapat membantu Anda menentukan apakah Anda telah menyiapkan integrasi Identity Platform dengan reCAPTCHA Enterprise API dengan benar. Skor ini juga dapat membantu Anda menyempurnakan nilai minimum skor untuk traffic pengguna.
Pastikan fitur SMS defense reCAPTCHA berfungsi dengan memeriksa metrik berikut yang dikirim project Anda ke Cloud Monitoring:
identitytoolkit.googleapis.com/recaptcha/verdict_countidentitytoolkit.googleapis.com/recaptcha/token_countidentitytoolkit.googleapis.com/recaptcha/sms_tf_risk_scores
Untuk mengetahui informasi selengkapnya, lihat Memantau metrik reCAPTCHA.
Menggunakan SMS defense reCAPTCHA dengan perlindungan bot
Anda dapat menggunakan SMS defense reCAPTCHA secara bersamaan dengan
perlindungan bot. Jika keduanya diaktifkan dan phoneEnforcementState
ditetapkan ke ENFORCE, Identity Platform hanya akan meneruskan permintaan jika permintaan tersebut memenuhi
kedua penilaian, dan permintaan akan gagal ditutup tanpa beralih ke metode
verifikasi lain.
Untuk mengaktifkan kedua fitur tersebut, gunakan Google APIs Explorer untuk mengupdate konfigurasi project:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: true,
useSmsBotScore: true
}
Menonaktifkan SMS defense reCAPTCHA saat menggunakan perlindungan dari bot
Jika Anda menggunakan SMS defense reCAPTCHA dan perlindungan bot, serta ingin menonaktifkan SMS defense reCAPTCHA tanpa menonaktifkan perlindungan bot, gunakan Google APIs Explorer untuk mengupdate konfigurasi project:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: false,
useSmsBotScore: true
}
Tetapkan phoneEnforcementState ke ENFORCE dan useSmsBotScore ke true agar
perlindungan bot tetap aktif untuk alur autentikasi ponsel.
Menonaktifkan SMS defense reCAPTCHA
Untuk menonaktifkan semua perlindungan reCAPTCHA ponsel, termasuk SMS defense reCAPTCHA, gunakan Google APIs Explorer untuk mengupdate konfigurasi project dengan memasukkan URL HTTP berikut di jendela browser baru tempat Anda login ke konsol Google Cloud :
https://cloud.google.com/identity-platform/docs/reference/rest/v2/projects/updateConfig?apix_params={"name":"projects/PROJECT_ID/config","updateMask":"recaptchaConfig.phoneEnforcementState,recaptchaConfig.useSmsTollFraudProtection,recaptchaConfig.useSmsBotScore","resource":{"recaptchaConfig":{"phoneEnforcementState":"OFF","useSmsTollFraudProtection":false,"useSmsBotScore":false}}}
Ganti PROJECT_ID dengan project ID.
Untuk menonaktifkan SMS defense reCAPTCHA saat Anda menggunakan perlindungan dari bot, lihat Menonaktifkan SMS defense reCAPTCHA saat menggunakan perlindungan dari bot.
Langkah berikutnya
- Pelajari lebih lanjut fitur SMS defense reCAPTCHA.