Saat Anda memanggil API langsung dari aplikasi seluler atau web (misalnya, API yang memungkinkan akses ke model AI generatif), API tersebut rentan terhadap penyalahgunaan oleh klien yang tidak sah. Untuk membantu melindungi API ini dari penyalahgunaan, Anda dapat menggunakan Firebase App Check untuk memverifikasi bahwa semua panggilan API yang masuk berasal dari aplikasi Anda yang sebenarnya dan perangkat yang tidak dimodifikasi.
Firebase AI Logic menyediakan gateway proxy yang memungkinkan Anda berintegrasi dengan Firebase App Check dan melindungi API model AI generatif yang dipanggil oleh aplikasi seluler dan web Anda. Penggunaan App Check dengan Firebase AI Logic SDK mendukung semua konfigurasi kami:
Melindungi kedua penyedia "Gemini API": Gemini Developer API dan Vertex AI Gemini API.
Melindungi semua model yang didukung, baik Gemini model maupun Imagen model.
App Check juga mendukung perlindungan replay, yang berarti token App Check hanya dapat digunakan satu kali.
Ringkasan tingkat tinggi tentang cara kerja App Check
Dengan App Check, perangkat yang menjalankan aplikasi Anda menggunakan penyedia pengesahan aplikasi atau perangkat yang memverifikasi salah satu atau kedua hal berikut:
- Permintaan berasal dari aplikasi asli milik Anda
- Permintaan berasal dari perangkat asli yang tidak dimodifikasi
Pengesahan ini dilampirkan ke setiap permintaan yang dibuat aplikasi Anda menggunakan Firebase AI Logic SDK. Saat App Check diterapkan, permintaan dari klien tanpa pengesahan yang valid akan ditolak, begitu juga permintaan yang berasal dari aplikasi atau platform yang belum Anda beri otorisasi.
Saat menyiapkan App Check, pertimbangkan untuk menambahkan perlindungan replay, yang membuat token App Check hanya dapat digunakan satu kali. Opsi ini menawarkan perlindungan yang ditingkatkan di luar perlindungan dasar dan memungkinkan Anda menetapkan tingkat perlindungan yang sesuai untuk aplikasi dan kasus penggunaan Anda.
Anda dapat menemukan informasi mendetail tentang App Check dalam dokumentasinya, termasuk kuota dan batasnya.
Menyiapkan App Check
Dokumentasi App Check memberikan deskripsi mendetail tentang penyedia pengesahan serta petunjuk penerapan mendetail.
Pilih penyedia pengesahan, dan ikuti petunjuk penerapan di link berikut:
- Platform Apple: DeviceCheck atau App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Mendukung
semua penyedia default di atas
Jika Anda menggunakan versi plugin yang lebih lama, lihat catatan tentang pembuatan instance khusus di bawah. untuk Flutter dan App Check. - Unity: Mendukung semua penyedia default di atas
Perhatikan bahwa jika tidak ada penyedia pengesahan ini yang memadai untuk kebutuhan Anda, Anda dapat menerapkan penyedia kustom yang menggunakan penyedia pengesahan pihak ketiga atau teknik pengesahan Anda sendiri.
(Wajib) Aktifkan App Check penerapan sebelum Anda melakukan commit aplikasi ke sistem kontrol kode sumber yang tersedia secara publik, membagikan aplikasi, atau membuat aplikasi tersedia secara publik.
(Direkomendasikan) Tingkatkan perlindungan dengan menambahkan perlindungan replay, yang berarti token App Check hanya dapat digunakan satu kali.
Untuk pengembangan lokal saat App Check diterapkan, konfigurasi App Check penyedia debug untuk melewati pengesahan sambil tetap mempertahankan penerapan App Check. Lihat petunjuk penyiapan untuk platform Anda: iOS+ | Android | Web | Flutter | Unity.
Meningkatkan perlindungan dengan menambahkan perlindungan replay
|
Sebaiknya gunakan versi SDK terbaru, tetapi
pastikan Anda menggunakan minimal salah satu versi ini untuk menggunakan
perlindungan replay: Platform Apple v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | Web v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+ |
Secara default, App Check menggunakan token sesi yang memiliki
waktu aktif (TTL) yang dapat dikonfigurasi antara
Namun, Anda dapat meningkatkan perlindungan di luar perlindungan dasar ini dengan menerapkan perlindungan replay, yang menggunakan token penggunaan terbatas sebagai gantinya. Saat perlindungan replay diterapkan, hal berikut akan terjadi:
App Check akan memblokir permintaan ke Firebase AI Logic yang menggunakan token sesi. Sebagai gantinya, App Check hanya akan mengizinkan permintaan ke Firebase AI Logic jika menggunakan token penggunaan terbatas yang baru dibuat.
Setelah token penggunaan terbatas diverifikasi, token tersebut akan digunakan sehingga hanya dapat digunakan satu kali, yang mencegah serangan replay.
App Check SDK membuat token penggunaan terbatas baru untuk setiap permintaan. Perhatikan bahwa proses ini dapat memengaruhi permintaan Anda dengan menambahkan beberapa latensi dan terkadang biaya (bergantung pada penyedia pengesahan Anda).
Menyiapkan dan menerapkan perlindungan replay
|
Klik penyedia Gemini API untuk melihat konten khusus penyedia dan kode di halaman ini. |
Berikut cara menyiapkan dan menerapkan perlindungan replay:
Jika belum, terapkan App Check dan aktifkan App Check penerapan untuk aplikasi Anda.
Aktifkan penggunaan token penggunaan terbatas.
Di aplikasi Anda selama pembuatan instance, tetapkan parameter
useLimitedUseAppCheckTokensketrue:Firebase Remote ConfigSwift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Terapkan perlindungan replay.
Di codebase aplikasi Anda, pastikan Anda telah mengaktifkan penggunaan token penggunaan terbatas (lihat langkah sebelumnya).
Di konsol Firebase, buka Security > App Check.
Luaskan tampilan metrik untuk Firebase AI Logic.
Pastikan Perlindungan dasar Diterapkan, lalu klik Lanjutkan.
Untuk perlindungan replay, pilih Tidak diterapkan (hanya pemantauan) atau Diterapkan.
Pertimbangkan hal berikut untuk memutuskan kapan harus menerapkan perlindungan replay:
Sebaiknya pantau permintaan Anda jika sebagian besar pengguna Anda kemungkinan menggunakan aplikasi versi sebelumnya tanpa mengaktifkan penggunaan token penggunaan terbatas. Jika Anda segera menerapkan perlindungan replay, permintaan dari pengguna tersebut akan diblokir.
Anda dapat memantau secara khusus metrik Tidak terverifikasi: Token digunakan kembali, yang merupakan jumlah permintaan yang memiliki token yang telah digunakan dalam permintaan sebelumnya. Pantau metrik ini di Firebase konsol (buka tab Security > App Check > APIs tab).
Jika sebagian besar permintaan terbaru berada dalam kategori ini, Anda dapat menghindari gangguan pada pengguna dan mempertimbangkan untuk menunggu penerapan perlindungan replay hingga lebih banyak pengguna mengupdate ke aplikasi versi yang menggunakan token penggunaan terbatas.
Memahami cara Firebase AI Logic berintegrasi dengan App Check
Untuk menggunakan Firebase AI Logic SDK, Firebase AI Logic API (firebasevertexai.googleapis.com)
harus diaktifkan di project Firebase Anda. Hal ini karena permintaan yang dibuat oleh
Firebase AI Logic SDK pertama-tama dikirim ke Firebase AI Logic
server, yang bertindak sebagai gateway proxy tempat verifikasi Firebase App Check
dilakukan sebelum permintaan diizinkan untuk melanjutkan ke backend penyedia "Gemini API" pilihan Anda dan API untuk mengakses model Gemini
dan Imagen.
(Opsional) Menerapkan App Check tanpa penyedia pengesahan produksi (hanya penyedia debug)
Anda dapat menerapkan App Check untuk AI Logic tanpa mendaftarkan aplikasi Anda dengan penyedia pengesahan produksi. Penyiapan ini memungkinkan Anda menggunakan App Check penyedia debug untuk memulai AI Logic dengan lebih mudah sambil tetap melindungi Gemini API.
Periksa apakah App Check sudah diterapkan untuk AI Logic.
Di konsol Firebase, buka tab Security > App Check > APIs.
Temukan baris untuk Firebase AI Logic. Jika tertulis
Unenforced, lanjutkan dengan petunjuk lainnya.
Gunakan App Check REST API untuk menerapkan App Check untuk Firebase AI Logic.
Buat permintaan ke
projects.services.patchendpoint.Tentukan parameter permintaan berikut:
PROJECT_NUMBER: Nomor project Firebase Anda.
Temukan ID project ini disetelan > tab General di konsol Firebase.SERVICE_ID:
firebasevertexai.googleapis.com
ID ini adalah nama layanan resmi Firebase AI Logic API, dan valid baik Anda mengakses Vertex AI Gemini API maupun Gemini Developer API.updateMask:enforcementMode
Tentukan hal berikut dalam isi permintaan:
"enforcementMode": "ENFORCED"
Untuk pengembangan lokal sekarang setelah App Check diterapkan, Anda perlu mengonfigurasi App Check penyedia debug untuk melewati pengesahan sambil tetap mempertahankan penerapan App Check.
Untuk mengetahui detail tentang cara mengonfigurasi penyedia debug, lihat petunjuk untuk platform Anda: iOS+ | Android | Web | Flutter | Unity.