Anda dapat menerapkan mode pengguna terautentikasi untuk project Firebase Anda. Jika diterapkan, semua Gemini API permintaan melalui Firebase AI Logic harus berasal dari pengguna terautentikasi aplikasi Anda. Secara khusus, pengguna akhir aplikasi Anda harus diautentikasi menggunakan Firebase Authentication sebelum mereka mengirim permintaan ke Firebase AI Logic dari aplikasi Anda. Jika pengguna akhir tidak diautentikasi, permintaan akan diblokir.
Jika permintaan diblokir, responsnya akan berupa error 401: unauthenticated.
Pertimbangan penting
Perhatikan pertimbangan penting berikut untuk mode pengguna terautentikasi.
Saat mode pengguna terautentikasi diterapkan
Saat mode pengguna terautentikasi diterapkan, perhatikan hal berikut:
Setelan ini adalah setelan seluruh project untuk Firebase AI Logic.
- Setelan ini berlaku untuk semua aplikasi yang terdaftar dalam project.
- Setelan ini hanya berlaku untuk project tempat setelan diterapkan.
Setelan ini memblokir semua permintaan melalui Firebase AI Logic yang tidak mengirim Firebase Authentication kredensial.
- Pengguna harus diautentikasi melalui Firebase Authentication sebelum mengirim permintaan ke Firebase AI Logic.
- Setelan ini berlaku untuk semua permintaan melalui Firebase AI Logic ke Gemini Developer API dan Agent Platform Gemini API (formerly Vertex AI).
- Setelan ini berlaku untuk semua permintaan yang menggunakan template perintah server.
- Setelan ini tidak dapat diterapkan berdasarkan per pengguna, per API, atau per template.
Setelan ini tidak memblokir Gemini API permintaan di project Anda yang tidak melalui Firebase AI Logic.
Jika Anda menggunakan hybrid / di perangkat:
- Setelan ini memblokir permintaan ke model yang dihosting di cloud jika pengguna tidak diautentikasi.
- Setelan ini tidak memblokir permintaan ke model di perangkat, apa pun status autentikasi pengguna.
Jika Anda menggunakan Gemini Live API:
- Setelan ini memblokir penggunaan Gemini Live API untuk aplikasi web saat menggunakan Firebase AI Logic — bahkan untuk pengguna terautentikasi. Hal ini mencakup aplikasi web yang menggunakan Firebase JS SDK atau aplikasi web Flutter.
Jika Anda menggunakan Firebase AI Logic REST API:
- Setelan ini memblokir inferensi permintaan yang tidak mengirim
Firebase Authentication kredensial. Hal ini mencakup permintaan untuk template perintah server seperti
templateGenerateContentatautemplateStreamGenerateContent. - Setelan ini tidak memblokir permintaan control-plane (seperti permintaan untuk mengelola template dan konfigurasi) karena dilindungi oleh IAM.
- Setelan ini memblokir inferensi permintaan yang tidak mengirim
Firebase Authentication kredensial. Hal ini mencakup permintaan untuk template perintah server seperti
Setelan ini tidak memblokir permintaan ke
countTokens(Count Tokens API).
Sebelum menerapkan mode pengguna terautentikasi
Perhatikan hal berikut sebelum Anda menerapkan mode pengguna terautentikasi:
Jika Anda memiliki versi aplikasi yang tidak menggunakan Firebase Authentication:
- Setelan ini akan memblokir permintaan melalui Firebase AI Logic dari versi aplikasi yang ada tersebut.
- Pastikan semua klien aktif telah diupdate untuk menggunakan Firebase Authentication sebelum menerapkan mode pengguna terautentikasi.
Versi plugin Flutter yang lebih lama memerlukan pembuatan instance khusus untuk mengirim Firebase Authentication kredensial dengan permintaan.
- Jika aplikasi Anda menggunakan plugin Flutter
firebase_aiv3.11.0 atau yang lebih lama (BoM v4.12.0 atau yang lebih lama) dan tidak meneruskan Authentication selama pembuatan instance, setelan ini akan memblokir permintaan melalui Firebase AI Logic — bahkan untuk pengguna terautentikasi. - Pastikan semua klien aktif untuk Flutter telah diupdate ke versi plugin yang lebih baru sebelum menerapkan mode pengguna terautentikasi.
- Jika aplikasi Anda menggunakan plugin Flutter
Menyiapkan Firebase Authentication
Dokumentasi Firebase Authentication memberikan deskripsi dan petunjuk penerapan untuk penyedia autentikasi yang didukung, termasuk penggunaan sandi, nomor telepon, penyedia identitas gabungan yang populer (seperti Google, Facebook, dan GitHub), dan lainnya.
Setelah Anda menerapkan Firebase Authentication di aplikasi, aplikasi Anda akan otomatis mengirim kredensial Firebase Authentication untuk pengguna terautentikasi di setiap permintaan ke Firebase AI Logic.
Perhatikan hal berikut tentang beberapa penyedia autentikasi:
Autentikasi kustom: Anda harus mengambil token autentikasi yang ditandatangani untuk dikirim bersama permintaan ke Firebase AI Logic. Untuk mengetahui detailnya, lihat Autentikasi Kustom.
Metode autentikasi Anonim atau Email/Sandi: Pengguna ini dianggap sebagai pengguna terautentikasi, sehingga permintaan mereka ke Firebase AI Logic tidak diblokir.
Perhatikan bahwa meskipun metode autentikasi anonim dan email/sandi mengharuskan pengguna mengunjungi aplikasi Anda untuk membuat Firebase Authentication kredensial, metode tersebut bukanlah bentuk autentikasi yang kuat (terutama untuk melindungi resource berbayar) karena secara default tidak memerlukan verifikasi identitas dari pengguna. Jika aplikasi Anda menggunakan penerapan default dari metode autentikasi ini, perlindungan yang lebih rendah akan dimungkinkan meskipun Anda menerapkan mode pengguna terautentikasi. Pastikan Anda juga telah menerapkan Firebase App Check.
Mengelola setelan mode pengguna terautentikasi
Anda mengelola setelan untuk mode pengguna terautentikasi di konsol Firebase.
Peran dan izin IAM yang diperlukan
Mengelola setelan mode pengguna terautentikasi memerlukan izin firebasevertexai.configs.update, yang disertakan secara default dalam peran IAM berikut: Pemilik, Editor, Admin Firebase, dan Admin Firebase AI Logic.
Menerapkan mode pengguna terautentikasi
Berikut cara menerapkan mode pengguna terautentikasi untuk project Firebase Anda:
Jika belum, tinjau pertimbangan penting untuk mode pengguna terautentikasi yang dijelaskan sebelumnya dalam panduan ini.
Jika belum, siapkan Firebase Authentication di aplikasi Anda (seperti yang dijelaskan sebelumnya dalam panduan ini).
Terapkan mode pengguna terautentikasi:
Di konsol Firebase, buka AI Services > AI Logic > tab Settings.
Di bagian Authenticated-users mode, geser tombol untuk Enforce authenticated-users mode ke Enforced.
Tinjau dialog konfirmasi, lalu klik Confirm.
Menghentikan penerapan mode pengguna terautentikasi
Jika Anda menghentikan penerapan mode pengguna terautentikasi, perhatikan hal berikut:
- Permintaan melalui Firebase AI Logic yang tidak mengirim Firebase Authentication kredensial akan diizinkan.
- Setelan ini adalah setelan seluruh project untuk Firebase AI Logic.
Berikut cara menghentikan penerapan mode pengguna terautentikasi untuk project Firebase Anda:
Di konsol Firebase, buka AI Services > AI Logic > tab Settings.
Di bagian Authenticated-users mode, nonaktifkan Enforce authenticated-users mode.
Tinjau dialog konfirmasi, lalu klik Confirm.