Quando chiami un'API direttamente da un'app web o mobile (ad esempio, le API che consentono l'accesso ai modelli di AI generativa), l'API è vulnerabile all'uso illecito da parte di client non autorizzati. Per proteggere queste API, puoi utilizzare Firebase App Check per verificare che tutte le chiamate API in entrata provengano dalla tua app effettiva.
Firebase AI Logic fornisce un gateway proxy che ti consente di integrare con Firebase App Check e proteggere le API dei modelli di AI generativa chiamate dalle tue app web e mobile. L'utilizzo di App Check con gli Firebase AI Logic SDK supporta tutte le nostre configurazioni:
Protegge entrambi i provider "API Gemini": Gemini Developer API e Vertex AI Gemini API.
Protegge tutti i modelli supportati, sia i Gemini modelli sia i Imagen modelli.
Riepilogo di alto livello del funzionamento di App Check
Con App Check, i dispositivi che eseguono la tua app utilizzano un provider di attestazione dell'app o del dispositivo che verifica una o entrambe delle seguenti condizioni:
- Le richieste provengono dalla tua app autentica
- Le richieste provengono da un dispositivo autentico e non manomesso
Questa attestazione viene allegata a ogni richiesta effettuata dalla tua app utilizzando un Firebase AI Logic SDK. Quando abiliti l'applicazione di App Check enforcement, le richieste provenienti da client senza un'attestazione valida verranno rifiutate, così come qualsiasi richiesta proveniente da un'app o una piattaforma che non hai autorizzato.
Puoi trovare informazioni dettagliate su App Check nella relativa documentazione, incluse le quote e i limiti.
Provider disponibili e istruzioni per l'implementazione
La documentazione di App Check fornisce descrizioni dei provider di attestazione e istruzioni per l'implementazione.
Scegli un provider predefinito e segui le istruzioni per l'implementazione ai seguenti link:
- Piattaforme Apple: DeviceCheck o App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Supporta
tutti i provider predefiniti sopra indicati
Inoltre, assicurati di seguire i requisiti di creazione di istanze speciali per Flutter e App Check. - Unity: supporta tutti i provider predefiniti sopra indicati
Tieni presente che, se nessuno dei provider predefiniti è sufficiente per le tue esigenze, puoi implementare un provider personalizzato che utilizzi un provider di attestazione di terze parti o le tue tecniche di attestazione.
(Consigliato) Preparati per la protezione avanzata in arrivo di App Check (nota come protezione da replay).
(Obbligatorio) Prima di rilasciare l'app agli utenti reali, abilita l'applicazione di App Check.
Creazione di istanze speciali richiesta per Flutter
|
Fai clic sul provider Gemini API per visualizzare i contenuti specifici del provider e il codice in questa pagina. |
Quando utilizzi App Check con Firebase AI Logic nelle app Flutter, devi trasmettere esplicitamente App Check durante la creazione dell'istanza, come segue:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Prepararsi per la protezione avanzata in arrivo
| L'utilizzo di token a uso limitato è supportato per le piattaforme Apple (v12.2.0 e successive), Android (v17.2.0 e successive, distinta base v34.2.0 e successive), web (v12.3.0 e successive) e Flutter (v3.2.0 e successive, distinta base v4.2.0 e successive). Il supporto per Unity sarà disponibile a breve. |
Per impostazione predefinita, App Check utilizza token di sessione con un
TTL (Time To Live) configurabile compreso tra
In futuro, App Check aggiungerà l'opzione per abilitare la protezione da replay per Firebase AI Logic (simile al supporto che App Check offre già per alcune altre risorse). Quando la protezione da replay è abilitata, migliora la protezione nei seguenti modi:
App Check consentirà le richieste solo se accompagnate da un tipo speciale di token chiamato token a uso limitato.
Dopo la verifica, il token a uso limitato viene utilizzato in modo che possa essere utilizzato una sola volta, impedendo attacchi di tipo replay.
Per prepararti alla protezione da replay, ti consigliamo di abilitare l'utilizzo di token a uso limitato durante la configurazione di App Check. In questo modo, quando la protezione da replay sarà disponibile, potrai abilitarla prima perché un numero maggiore di utenti utilizzerà versioni della tua app che inviano token a uso limitato.
Tieni presente quanto segue se abiliti l'utilizzo di token a uso limitato nella tua app ora (mentre la protezione da replay non è disponibile):
App Check non blocca l'utilizzo di token di sessione validi.
Come i token di sessione, i token a uso limitato vengono memorizzati nella cache dall' App Check SDK e inviati insieme alle richieste. Questi token a uso limitato forniscono una piccola quantità di protezione aggiuntiva rispetto ai token di sessione predefiniti perché i token a uso limitato hanno un TTL più breve (solo
5 minuti e non regolabile) rispetto ai token di sessione.Anche se i token a uso limitato sono validi per
5 minuti , l'SDK genererà comunque un nuovo token per ogni richiesta. Questo processo può aggiungere una certa latenza alla richiesta.
Tuttavia, quando la protezione da replay sarà disponibile per Firebase AI Logic in futuro (e la abiliterai), l'utilizzo dei token di sessione e il riutilizzo dei token a uso limitato non saranno possibili. Tieni presente che la latenza aggiuntiva per la generazione di un nuovo token per ogni richiesta si verificherà comunque.
Abilitare l'utilizzo di token a uso limitato
|
Fai clic sul provider Gemini API per visualizzare i contenuti specifici del provider e il codice in questa pagina. |
Ecco come abilitare l'utilizzo di token a uso limitato:
Implementa App Check e assicurati di aver abilitato l'applicazione per la tua app.App Check
Durante la creazione dell'istanza dell'app, abilita l'utilizzo di token a uso limitato impostando il parametro
useLimitedUseAppCheckTokenssutrue: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
L'utilizzo di token a uso limitato con i giochi Unity sarà supportato in una release futura. Ricontrolla presto.
Informazioni su come Firebase AI Logic si integra con App Check
Per utilizzare gli SDK Firebase AI Logic, l'API
Firebase AI Logic (firebasevertexai.googleapis.com)
deve essere abilitata nel tuo progetto Firebase. Questo perché le richieste effettuate dagli SDK
Firebase AI Logic vengono inviate prima al server Firebase AI Logic, che funge da gateway proxy in cui viene eseguita la verifica Firebase App Check
prima che la richiesta possa procedere al backend del provider "Gemini API" scelto e alle API per accedere ai modelli Gemini
e Imagen.