Gdy wywołujesz interfejs API bezpośrednio z aplikacji mobilnej lub aplikacji internetowej (np. interfejsy API, które umożliwiają dostęp do generatywnych modeli AI), jest on narażony 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 prawdziwej 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 Twoje aplikacje mobilne i internetowe. Używanie App Check z Firebase AI Logic pakietami SDK obsługuje wszystkie nasze konfiguracje:
Chroni obu dostawców "Gemini API": Gemini Developer API i Vertex AI Gemini API.
Chroni wszystkie obsługiwane modele, zarówno Gemini modele, jak i Imagen modele.
Ogólne podsumowanie działania App Check
Dzięki App Check urządzenia, na których działa Twoja aplikacja, korzystają z dostawcy potwierdzenia aplikacji lub urządzenia , który weryfikuje co najmniej jedną z tych kwestii:
- Żądania pochodzą z Twojej autentycznej aplikacji.
- Żądania pochodzą z autentycznego, niezmodyfikowanego urządzenia.
To potwierdzenie jest dołączane do każdego żądania wysyłanego przez Twoją aplikację za pomocą pakietu Firebase AI Logic SDK. Gdy włączysz egzekwowanie App Check, żądania od klientów bez prawidłowego atestu zostaną odrzucone, podobnie jak wszystkie żądania pochodzące z aplikacji lub platformy, na które nie masz zezwolenia.
Zalecamy, aby podczas konfigurowania App Check upewnić się, że przygotujesz się na nadchodzącą silniejszą ochronę (znaną jako ochrona przed atakami typu replay).
Szczegółowe informacje o App Check, w tym o limitach, znajdziesz w dokumentacji.
Dostępni dostawcy i instrukcje implementacji
Dokumentacja App Check zawiera opisy dostawców potwierdzeń oraz instrukcje implementacji.
Wybierz dostawcę domyślnego i postępuj zgodnie z instrukcjami implementacji, które znajdziesz 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 aprowizatorów nie spełnia Twoich potrzeb, możesz zaimplementować aprowizatora niestandardowego, który korzysta z zewnętrznego aprowizatora atestów lub z własnych metod atestacji.
(Zalecane) Przygotuj się na nadchodzącą silniejszą ochronę przed App Check (znaną jako ochrona przed atakami typu replay).
(Wymagane) Zanim udostępnisz aplikację prawdziwym użytkownikom, włącz wymuszanie App Check.
Specjalne tworzenie instancji wymagane w przypadku Fluttera
|
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Gdy używasz App Check z Firebase AI Logic w aplikacjach Flutter, musisz jawnie przekazać App Check podczas tworzenia instancji, tak jak poniżej:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Przygotowanie na nadchodzącą silniejszą ochronę
|
Zalecamy używanie najnowszych wersji pakietu SDK, ale
upewnij się, że używasz co najmniej jednej z tych wersji, aby włączyć
tokeny ograniczonego użytku: Platformy Apple w wersji 12.2.0 lub nowszej | Android BoM w wersji 34.14.0 lub nowszej (App Check w wersji 19.1.0 lub nowszej) | Internet w wersji 12.14.0 lub nowszej | Flutter w wersji 4.15.0 lub nowszej (App Check w wersji 4.10.0 lub nowszej) | Unity w wersji 13.12.0 lub nowszej |
Domyślnie App Check używa tokenów sesji, które mają konfigurowalny
czas życia (TTL) od
W przyszłości App Check doda opcję włączenia ochrony przed atakami typu replay w przypadku Firebase AI Logic (podobnie jak w przypadku innych zasobów, w przypadku których App Check już oferuje taką ochronę). Gdy ochrona przed atakami typu replay jest włączona, zwiększa ochronę w następujący sposób:
App Check zezwoli na żądania tylko wtedy, gdy będą one zawierać specjalny rodzaj tokena nazywany tokenem ograniczonego użytku.
Po zweryfikowaniu tokena ograniczonego użytku jest on zużywany, dzięki czemu można go użyć tylko raz, co zapobiega atakom typu replay.
Aby przygotować się na ochronę przed atakami typu replay, zalecamy włączenie używania tokenów ograniczonego użytku w ramach konfigurowania App Check. Dzięki temu, gdy ochrona przed atakami typu replay stanie się dostępna, będziesz ją mógł włączyć szybciej, ponieważ więcej użytkowników będzie korzystać z wersji Twojej aplikacji, które wysyłają tokeny ograniczonego użytku.
Jeśli teraz włączysz używanie tokenów ograniczonego użytku w swojej aplikacji (gdy ochrona przed atakami typu replay 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 SDK App Check i wysyłane wraz z żądaniami. Te tokeny ograniczonego użytku zapewniają niewielką dodatkową ochronę w porównaniu z domyślnymi tokenami sesji , ponieważ mają krótszy czas życia (tylko
5 minut i nie można go dostosować) niż tokeny sesji.Mimo że tokeny ograniczonego użytku 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 żądania.
Gdy jednak w przyszłości ochrona przed atakami typu replay będzie dostępna w przypadku Firebase AI Logic w przyszłości (i ją włączysz), używanie tokenów sesji i ponowne używanie tokenów ograniczonego użytku nie będzie możliwe. Pamiętaj, że dodatkowe opóźnienie związane z generowaniem nowego tokena dla każdego żądania nadal będzie występować.
Włączanie używania tokenów ograniczonego użytku
|
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Aby włączyć używanie tokenów ograniczonego użytku:
Zaimplementuj App Check i upewnij się, że włączyłeś egzekwowanie App Check w swojej aplikacji.
Podczas tworzenia instancji w aplikacji włącz używanie tokenów ograniczonego użytku, ustawiając parametr
useLimitedUseAppCheckTokensnatrue: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
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...
Jak Firebase AI Logic integruje się z App Check
Aby korzystać z pakietów SDK Firebase AI Logic, interfejs API
Firebase AI Logic (firebasevertexai.googleapis.com)
musi być włączony w projekcie w Firebase. Dzieje się tak, ponieważ żądania wysyłane przez pakiety
Firebase AI Logic SDK są najpierw wysyłane na Firebase AI Logic
serwer, który działa jako brama proxy, gdzie odbywa się weryfikacja Firebase App Check
zanim żądanie zostanie przekazane do backendu wybranego dostawcy
"Gemini API" i interfejsów API umożliwiających dostęp do modeli Gemini
i Imagen.