Ograniczanie żądań tylko do uwierzytelnionych użytkowników

W projekcie w Firebase możesz wymusić tryb uwierzytelnionych użytkowników. Gdy ten tryb jest wymuszony, wszystkie Gemini API żądania wysyłane za pomocą Firebase AI Logic muszą pochodzić od uwierzytelnionych użytkowników Twojej aplikacji. Oznacza to, że zanim użytkownik końcowy wyśle żądanie do Firebase AI Logic z Twojej aplikacji, musi się uwierzytelnić za pomocą Firebase Authentication. Jeśli użytkownik końcowy nie jest uwierzytelniony, żądanie zostanie zablokowane.

Gdy żądanie zostanie zablokowane, w odpowiedzi pojawi się błąd 401: unauthenticated.

Ważne kwestie

Pamiętaj o tych ważnych kwestiach dotyczących trybu uwierzytelnionych użytkowników.

Gdy tryb uwierzytelnionych użytkowników jest wymuszony

Gdy tryb uwierzytelnionych użytkowników jest wymuszony, pamiętaj o tych kwestiach:

  • To ustawienie dotyczy całego projektu w Firebase AI Logic.

    • Obowiązuje we wszystkich aplikacjach zarejestrowanych w projekcie.
    • Obowiązuje tylko w projekcie, w którym jest wymuszane.
  • To ustawienie blokuje wszystkie żądania wysyłane za pomocą Firebase AI Logic, które nie zawierają danych logowania Firebase Authentication.

    • Użytkownik musi się uwierzytelnić za pomocą Firebase Authentication zanim wyśle żądanie do Firebase AI Logic.
    • To ustawienie dotyczy wszystkich żądań wysyłanych za pomocą Firebase AI Logic zarówno do Gemini Developer API, jak i do Vertex AI Gemini API.
    • To ustawienie dotyczy wszystkich żądań, które korzystają z szablonów promptów serwera.
    • Tego ustawienia nie można stosować na poziomie użytkownika, interfejsu API ani szablonu.
  • To ustawienie nie blokuje Gemini API żądań w Twoim projekcie, które nie są wysyłane za pomocą Firebase AI Logic.

  • Jeśli używasz modelu hybrydowego lub modelu na urządzeniu:

    • To ustawienie blokuje żądania wysyłane do modelu hostowanego w chmurze, jeśli użytkownik nie jest uwierzytelniony.
    • To ustawienie nie blokuje żądań wysyłanych do modelu na urządzeniu niezależnie od stanu uwierzytelnienia użytkownika.
  • Jeśli używasz Gemini Live API:

    • To ustawienie blokuje korzystanie z interfejsu Gemini Live API w aplikacjach internetowych, gdy używasz Firebase AI Logic – nawet w przypadku uwierzytelnionych użytkowników. Dotyczy to aplikacji internetowych korzystających z pakietu Firebase JS SDK lub aplikacji internetowych Flutter.
  • Jeśli używasz interfejsu Firebase AI Logic REST API:

    • To ustawienie blokuje wnioskowania żądania, które nie zawierają Firebase Authentication danych logowania. Dotyczy to żądań szablonów promptów serwera, takich jak templateGenerateContent czy templateStreamGenerateContent.
    • To ustawienie nie blokuje żądań płaszczyzny sterowania (takich jak żądania zarządzania szablonami i konfiguracjami), ponieważ są one chronione przez IAM.
  • To ustawienie nie blokuje żądań wysyłanych do countTokens (interfejs Count Tokens API).

Zanim wymusisz tryb uwierzytelnionych użytkowników

Zanim wymusisz tryb uwierzytelnionych użytkowników, pamiętaj o tych kwestiach:

  • Jeśli masz istniejące wersje aplikacji, które nie korzystają z Firebase Authentication Firebase Authentication:

    • To ustawienie zablokuje żądania wysyłane za pomocą Firebase AI Logic z tych istniejących wersji aplikacji.
    • Zanimwymusisz tryb uwierzytelnionych użytkowników, upewnij się, że wszystkie aktywne klienty zostały zaktualizowane, aby korzystać z Firebase Authentication.
  • Starsze wersje wtyczki Flutter wymagają specjalnej instancji, aby wysyłać Firebase Authentication dane logowania wraz z żądaniami.

    • Jeśli Twoja aplikacja korzysta z wtyczki Flutter firebase_ai w wersji 3.11.0 lub starszej (BoM w wersji 4.12.0 lub starszej) i nie przekazuje danych Authentication podczas tworzenia instancji, to ustawienie zablokuje żądania wysyłane za pomocą Firebase AI Logic – nawet w przypadku uwierzytelnionych użytkowników.
    • Zanim wymusisz tryb uwierzytelnionych użytkowników, upewnij się, że wszystkie aktywne klienty Flutter zostały zaktualizowane do nowszej wersji wtyczki.

Konfigurowanie Firebase Authentication

Dokumentacja Firebase Authentication zawiera opisy i instrukcje implementacji obsługiwanych dostawców uwierzytelniania, w tym uwierzytelniania za pomocą haseł, numerów telefonów, popularnych dostawców tożsamości sfederowanej (takich jak Google, Facebook i GitHub) i innych.

Gdy zaimplementujesz Firebase Authentication w swojej aplikacji, będzie ona automatycznie wysyłać dane logowania Firebase Authentication uwierzytelnionego użytkownika w każdym żądaniu do Firebase AI Logic.

Pamiętaj o tych kwestiach dotyczących niektórych dostawców uwierzytelniania:

  • Uwierzytelnianie niestandardowe: musisz pobrać podpisany token uwierzytelniania, aby wysłać go wraz z żądaniem do Firebase AI Logic. Więcej informacji znajdziesz w artykule Uwierzytelnianie niestandardowe.

  • Anonimowe lub e-maila i hasła metody uwierzytelniania: ci użytkownicy są uważani za uwierzytelnionych, więc ich żądania do Firebase AI Logic nie są blokowane.

    Pamiętaj, że chociaż metody uwierzytelniania anonimowego oraz e-maila i hasła wymagają od użytkowników odwiedzenia Twojej aplikacji w celu utworzenia Firebase Authentication danych logowania, nie są one niezawodnymi formami uwierzytelniania (zwłaszcza w przypadku ochrony płatnych zasobów) , ponieważ domyślnie nie wymagają weryfikacji tożsamości użytkownika. Jeśli Twoja aplikacja korzysta z domyślnej implementacji tych metod uwierzytelniania, nawet jeśli wymusisz tryb uwierzytelnionych użytkowników, ochrona będzie mniejsza. Upewnij się, że masz też wymuszoną Firebase App Checkweryfikację aplikacji Firebase.

Zarządzanie ustawieniem trybu uwierzytelnionych użytkowników

Ustawieniem trybu uwierzytelnionych użytkowników zarządzasz w konsoli Firebase.

Wymagane role i uprawnienia IAM

Zarządzanie ustawieniem trybu uwierzytelnionych użytkowników wymaga uprawnienia firebasevertexai.configs.update, które jest domyślnie zawarte w tych rolach IAM: Właściciel, Edytujący, Administrator Firebase i Administrator Firebase AI Logic.

Wymuszanie trybu uwierzytelnionych użytkowników

Oto jak wymusić tryb uwierzytelnionych użytkowników w projekcie w Firebase:

  1. Jeśli jeszcze tego nie zrobisz, zapoznaj się z ważnymi kwestiami dotyczącymi trybu uwierzytelnionych użytkowników, które zostały opisane wcześniej w tym przewodniku.

  2. Jeśli jeszcze tego nie zrobisz, skonfiguruj Firebase Authentication w swojej aplikacji (jak opisano wcześniej w tym przewodniku).

  3. Wymuś tryb uwierzytelnionych użytkowników:

    1. W konsoli Firebase otwórz Usługi AI > Logika AI > Ustawienia tab.

    2. W sekcji Tryb uwierzytelnionych użytkowników przesuń przełącznik Wymuś tryb uwierzytelnionych użytkowników na Wymuszony.

    3. Przeczytaj okno potwierdzenia i kliknij Potwierdź.

Zatrzymywanie wymuszania trybu uwierzytelnionych użytkowników

Jeśli zatrzymasz wymuszanie trybu uwierzytelnionych użytkowników, pamiętaj o tych kwestiach:

  • Żądania wysyłane za pomocą Firebase AI Logic, które nie zawierają Firebase Authentication danych logowania, będą dozwolone.
  • To ustawienie dotyczy całego projektu w Firebase AI Logic.

Oto jak zatrzymać wymuszanie trybu uwierzytelnionych użytkowników w projekcie Firebase:

  1. W konsoli Firebase otwórz Usługi AI > Logika AI > Ustawienia tab.

  2. W sekcji Tryb uwierzytelnionych użytkowników wyłącz opcję Wymuś tryb uwierzytelnionych użytkowników.

  3. Przeczytaj okno potwierdzenia i kliknij Potwierdź.