Gdy wywołujesz interfejs API bezpośrednio z aplikacji mobilnej lub internetowej (np. interfejsy API, które umożliwiają dostęp do modeli generatywnej AI), jest on podatny na nadużycia ze strony nieautoryzowanych klientów. Aby chronić te interfejsy API, możesz użyć Firebase App Check, aby sprawdzić, czy wszystkie przychodzące wywołania interfejsu API pochodzą z Twojej aplikacji.
Firebase AI Logic udostępnia bramę proxy, która umożliwia integrację z Firebase App Check i ochronę interfejsów API modeli generatywnej AI wywoływanych przez aplikacje mobilne i internetowe. Korzystanie z App Check w pakietach SDKFirebase AI Logic obsługuje wszystkie nasze konfiguracje:
Ochrona obu dostawców „Gemini API”: Gemini Developer API i Vertex AI Gemini API.
Chroni wszystkie obsługiwane modele, zarówno modele Gemini, jak i Imagen.
Ogólne podsumowanie działania usługi App Check
W przypadku App Check urządzenia, na których działa Twoja aplikacja, korzystają z usługi potwierdzania autentyczności aplikacji lub urządzenia, która weryfikuje co najmniej jeden z tych elementów:
- Żądania pochodzą z autentycznej aplikacji
- Żądania pochodzą z autentycznego, niezmodyfikowanego urządzenia.
To zaświadczenie jest dołączane do każdego żądania wysyłanego przez aplikację za pomocą pakietu SDK Firebase AI Logic. Gdy włączysz wymuszanie App Check, żądania od klientów bez prawidłowego zaświadczenia będą odrzucane. Dotyczy to też żądań pochodzących z aplikacji lub platform, które nie zostały przez Ciebie autoryzowane.
Zalecamy, aby podczas konfigurowania App Check zadbać o przygotowanie się na nadchodzącą ulepszoną ochronę (znaną jako ochrona przed powtórzeniem).
Szczegółowe informacje o App Check znajdziesz w dokumentacji, w tym limity.
Dostępni dostawcy i instrukcje implementacji
App Check Dokumentacja zawiera opisy dostawców atestów oraz instrukcje wdrożenia.
Wybierz domyślnego dostawcę i postępuj zgodnie z instrukcjami wdrażania dostępnymi pod tymi linkami:
- Platformy Apple: DeviceCheck lub App Attest
- Android:Play Integrity
- Internet: reCAPTCHA Enterprise
- Flutter: obsługuje wszystkich domyślnych dostawców wymienionych powyżej.
Pamiętaj też, aby przestrzegać specjalnych wymagań dotyczących tworzenia instancji w przypadku Fluttera i App Check. - Unity: obsługuje wszystkich domyślnych dostawców wymienionych powyżej.
Pamiętaj, że jeśli żaden z domyślnych dostawców nie spełnia Twoich potrzeb, możesz wdrożyć dostawcę niestandardowego, który korzysta z zewnętrznego dostawcy atestów lub z własnych technik atestowania.
(Zalecane) Przygotuj się na nadchodzącą silniejszą ochronę przed App Check (znaną jako ochrona przed powtórzeniem).
(Wymagane) Zanim udostępnisz aplikację prawdziwym użytkownikom, włącz egzekwowanie App Check.
Wymagana specjalna instancja w przypadku Fluttera
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod dostawcy. |
Gdy używasz App Check z Firebase AI Logic w aplikacjach Flutter, musisz jawnie przekazać App Check podczas tworzenia instancji, na przykład w ten sposób:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Przygotuj się na nadchodzącą silniejszą ochronę
Włączanie używania tokenów o ograniczonym zakresie jest obsługiwane na platformach Apple (wersja 12.2.0 lub nowsza), Android (wersja 17.2.0 lub nowsza, BoM w wersji 34.2.0 lub nowszej), w internecie (wersja 12.3.0 lub nowsza) i na platformie Flutter (wersja 3.2.0 lub nowsza, BoM w wersji 4.2.0 lub nowszej). Obsługa platformy Unity będzie dostępna wkrótce. |
Domyślnie App Check używa tokenów sesji, które mają konfigurowalny czas życia (TTL) w zakresie od
W przyszłości App Check doda opcję włączenia ochrony przed powtórzeniem w przypadku Firebase AI Logic (podobnie jak w przypadku niektórych innych zasobów).App Check Gdy ochrona przed powtórzeniem jest włączona, zwiększa ochronę w ten sposób:
App Check będzie zezwalać na żądania tylko wtedy, gdy będą one zawierać specjalny rodzaj tokena zwany tokenem ograniczonego użytku.
Po zweryfikowaniu tokenu ograniczonego użytku jest on wykorzystywany, aby można go było użyć tylko raz, co zapobiega atakom typu replay.
Aby przygotować się na ochronę przed powtórzeniem, zalecamy włączenie używania tokenów o ograniczonym zastosowaniu w ramach konfigurowania App Check. Dzięki temu, gdy ochrona przed powtórzeniami stanie się dostępna, będziesz mieć możliwość wcześniejszego jej włączenia, ponieważ więcej użytkowników będzie korzystać z wersji aplikacji, które wysyłają tokeny ograniczonego użytku.
Jeśli włączysz teraz w aplikacji używanie tokenów o ograniczonym zastosowaniu (gdy ochrona przed powtórzeniem jest niedostępna), pamiętaj o tych kwestiach:
App Check nie blokuje używania prawidłowych tokenów sesji.
Podobnie jak tokeny sesji, tokeny ograniczonego użytku są buforowane przez pakiet SDKApp Check i wysyłane wraz z żądaniami. Te tokeny o ograniczonym użyciu zapewniają niewielką dodatkową ochronę w porównaniu z domyślnymi tokenami sesji, ponieważ mają krótszy czas życia (TTL) – tylko
5 minut , a nie można go dostosować.Chociaż tokeny o ograniczonym zakresie użycia są ważne przez
5 minut , pakiet SDK będzie generować nowy token dla każdego żądania. Ten proces może zwiększyć opóźnienie w odpowiedzi na Twoją prośbę.
Gdy w przyszłości ochrona przed powtórzeniem będzie dostępna w przypadku Firebase AI Logic (i ją włączysz), nie będzie można używać tokenów sesji ani ponownie wykorzystywać tokenów o ograniczonym zastosowaniu. Pamiętaj, że dodatkowe opóźnienie związane z generowaniem nowego tokena dla każdego żądania nadal będzie występować.
Włączanie korzystania z tokenów o ograniczonym zastosowaniu
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod dostawcy. |
Aby włączyć używanie tokenów o ograniczonym zastosowaniu:
Zaimplementuj App Check i upewnij się, że masz włączone egzekwowanie App Check w przypadku swojej aplikacji.
W aplikacji podczas tworzenia instancji włącz używanie tokenów jednorazowych, ustawiając parametr
useLimitedUseAppCheckTokens
natrue
:Swift
// ... // 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( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...
Unity
Korzystanie z tokenów o ograniczonym użyciu w grach na platformie Unity będzie obsługiwane w przyszłej wersji. Sprawdź jeszcze raz za jakiś czas.
Dowiedz się, jak Firebase AI Logic integruje się z App Check
Aby korzystać z Firebase AI Logicpakietów SDK, w projekcie Firebase musi być włączony Firebase AI Logicinterfejs API (firebasevertexai.googleapis.com
). Dzieje się tak, ponieważ żądania wysyłane przez pakiety SDK Firebase AI Logic są najpierw przesyłane na serwer Firebase AI Logic, który działa jako brama proxy, w której odbywa się weryfikacja Firebase App Check zanim żądanie zostanie przekazane do backendu wybranego przez Ciebie dostawcy „Gemini API” i interfejsów API umożliwiających dostęp do modeli Gemini i Imagen.