Anda dapat menerapkan mode pengguna terautentikasi untuk project Firebase Anda. Jika diterapkan, semua permintaan Gemini API melalui Firebase AI Logic harus berasal dari pengguna terautentikasi aplikasi Anda. Secara khusus, pengguna akhir aplikasi Anda harus diautentikasi menggunakan Firebase Authentication sebelum 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 yang diautentikasi.
Saat mode pengguna yang diautentikasi diterapkan
Jika mode pengguna yang diautentikasi diterapkan, perhatikan hal-hal berikut:
Setelan ini adalah setelan seluruh project untuk Firebase AI Logic.
- Hal ini berlaku untuk semua aplikasi yang terdaftar dalam project.
- Kebijakan ini hanya berlaku untuk project tempat kebijakan tersebut diterapkan.
Setelan ini memblokir semua permintaan melalui Firebase AI Logic yang tidak mengirimkan kredensial Firebase Authentication.
- 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 Vertex AI Gemini API.
- 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 permintaan Gemini API 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 yang diautentikasi. Hal ini mencakup aplikasi web yang menggunakan Firebase JS SDK atau aplikasi web Flutter.
Jika Anda menggunakan REST API Firebase AI Logic:
- Setelan ini memblokir permintaan inferensi yang tidak mengirimkan
kredensial Firebase Authentication. Hal ini mencakup permintaan 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 permintaan inferensi yang tidak mengirimkan
kredensial Firebase Authentication. Hal ini mencakup permintaan template perintah server seperti
Setelan ini tidak memblokir permintaan ke
countTokens(Count Tokens API).
Sebelum menerapkan mode pengguna yang diautentikasi
Perhatikan hal-hal berikut sebelum Anda menerapkan mode pengguna yang diautentikasi:
Jika Anda memiliki versi aplikasi yang sudah ada 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 yang diautentikasi.
Versi plugin Flutter yang lebih lama memerlukan instansiasi khusus untuk mengirim kredensial Firebase Authentication dengan permintaan.
- Jika aplikasi Anda menggunakan plugin Flutter
firebase_aiv3.11.0 atau yang lebih rendah (BoM v4.12.0 atau yang lebih rendah) dan tidak meneruskan Authentication selama instansiasi, setelan ini akan memblokir permintaan melalui Firebase AI Logic — bahkan untuk pengguna yang diautentikasi. - Pastikan semua klien aktif untuk Flutter telah diupdate ke versi plugin yang lebih baru sebelum menerapkan mode pengguna yang diautentikasi.
- Jika aplikasi Anda menggunakan plugin Flutter
Siapkan Firebase Authentication
Dokumentasi Firebase Authentication memberikan deskripsi dan petunjuk penerapan untuk penyedia autentikasi yang didukung, termasuk penggunaan sandi, nomor telepon, penyedia identitas gabungan populer (seperti Google, Facebook, dan GitHub), dan lainnya.
Setelah Anda menerapkan Firebase Authentication di aplikasi, aplikasi Anda akan otomatis mengirimkan kredensial Firebase Authentication untuk pengguna yang diautentikasi di setiap permintaan ke Firebase AI Logic.
Perhatikan hal-hal berikut tentang beberapa penyedia autentikasi:
Autentikasi kustom: Anda harus mengambil token autentikasi bertanda tangan 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 kredensial Firebase Authentication, 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 metode autentikasi ini, perlindungan yang lebih rendah dapat terjadi meskipun Anda menerapkan mode pengguna terautentikasi. Pastikan Anda juga telah menerapkan Firebase App Check.
Mengelola setelan mode pengguna yang diautentikasi
Anda mengelola setelan untuk mode pengguna yang diautentikasi di konsol Firebase.
Izin dan peran IAM yang diperlukan
Pengelolaan setelan mode pengguna yang diautentikasi memerlukan izin
firebasevertexai.configs.update, yang disertakan secara default dalam
peran IAM berikut: Pemilik, Editor, Firebase Admin, dan Firebase AI Logic Admin.
Menerapkan mode pengguna yang diautentikasi
Berikut cara menerapkan mode pengguna yang diautentikasi untuk project Firebase Anda:
Jika belum, tinjau pertimbangan penting untuk mode pengguna yang diautentikasi sebelumnya dalam panduan ini.
Jika Anda belum melakukannya, siapkan Firebase Authentication di aplikasi Anda (seperti yang dijelaskan sebelumnya dalam panduan ini).
Menerapkan mode pengguna yang diautentikasi:
Di konsol Firebase, buka AI Services > AI Logic > Tab Settings.
Di bagian Mode pengguna yang diautentikasi, geser tombol untuk Terapkan mode pengguna yang diautentikasi ke Diterapkan.
Tinjau dialog konfirmasi, lalu klik Konfirmasi.
Menghentikan penegakan mode pengguna yang diautentikasi
Jika Anda menghentikan penegakan mode pengguna terautentikasi, perhatikan hal berikut:
- Permintaan melalui Firebase AI Logic yang tidak mengirimkan kredensial Firebase Authentication akan diizinkan.
- Ini adalah setelan seluruh project untuk Firebase AI Logic.
Berikut cara menghentikan penerapan mode pengguna yang diautentikasi untuk project Firebase Anda:
Di konsol Firebase, buka AI Services > AI Logic > Tab Settings.
Di bagian Mode pengguna yang diautentikasi, nonaktifkan Terapkan mode pengguna yang diautentikasi.
Tinjau dialog konfirmasi, lalu klik Konfirmasi.