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 przez Firebase AI Logic muszą pochodzić od uwierzytelnionych użytkowników Twojej aplikacji. Użytkownik końcowy Twojej aplikacji musi się uwierzytelnić za pomocą Firebase Authentication, zanim wyśle żądanie do Firebase AI Logic z Twojej aplikacji. Jeśli użytkownik końcowy nie jest uwierzytelniony, żądanie jest blokowane.

Gdy żądanie zostanie zablokowane, odpowiedź będzie zawierać błąd 401: unauthenticated.

Ważne kwestie

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

Gdy wymuszony jest tryb uwierzytelnionych użytkowników

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

  • To ustawienie jest ustawieniem dla całego projektu w Firebase AI Logic.

    • Dotyczy wszystkich aplikacji zarejestrowanych w projekcie.
    • Dotyczy tylko projektu, w którym jest wymuszane.
  • To ustawienie blokuje wszystkie żądania wysyłane przez 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 przez Firebase AI Logic zarówno do Gemini Developer API, jak i do Agent Platform Gemini API (formerly Vertex AI).
    • 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 przez Firebase AI Logic.

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

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

    • To ustawienie blokuje korzystanie z Gemini Live API w aplikacjach internetowych podczas korzystania z 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 web.
  • Jeśli używasz 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ń do countTokens (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 przez 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 Authentication podczas tworzenia instancji, to ustawienie zablokuje żądania wysyłane przez 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 korzystania z 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ą to niezawodne formy uwierzytelniania (szczególnie 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, a potem 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 przez Firebase AI Logic, które nie zawierają Firebase Authentication danych logowania, będą dozwolone.
  • To jest ustawienie dla 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, a potem kliknij Potwierdź.