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'abuso 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 integrarti con Firebase App Check e proteggere le API del modello di AI generativa chiamate dalle tue app web e mobile. L'utilizzo di App Check con gli SDK Firebase AI Logic supporta tutte le nostre configurazioni:
Protegge entrambi i fornitori dell'"API Gemini": Gemini Developer API e Vertex AI Gemini API.
Protegge tutti i modelli supportati, sia i modelli Gemini che i modelli Imagen.
Riepilogo di alto livello del funzionamento di App Check
Con App Check, i dispositivi che eseguono la tua app utilizzano un fornitore di attestazione di app o dispositivo che verifica uno o entrambi i seguenti elementi:
- 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 SDK Firebase AI Logic. Quando attivi l'applicazione di App Check, 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.
Ti consigliamo di assicurarti che, quando configuri App Check, ti prepari per la protezione avanzata imminente (nota come protezione da replay).
Puoi trovare informazioni dettagliate su App Check nella relativa documentazione, inclusi quote e limiti.
Fornitori disponibili e istruzioni per l'implementazione
La documentazione di App Check fornisce descrizioni dei fornitori di attestazione e istruzioni per l'implementazione.
Scegli un fornitore predefinito e segui le istruzioni di implementazione riportate nei 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 fornitori 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 alla protezione avanzata imminente da App Check (nota come protezione da replay).
(Obbligatorio) Prima di rilasciare l'app agli utenti reali, attiva l'applicazione di App Check.
È necessaria un'istanza speciale per Flutter
Fai clic sul tuo fornitore Gemini API per visualizzare i contenuti e il codice specifici del fornitore in questa pagina. |
Quando utilizzi App Check con Firebase AI Logic nelle app Flutter, devi passare esplicitamente App Check durante l'istanza, come segue:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Prepararsi alla protezione avanzata imminente
L'utilizzo di token di uso limitato è attualmente disponibile solo per le piattaforme Apple (v12.2.0+), Android (v17.2.0+, distinta base v34.2.0+) e web (v12.3.0+). Il supporto per altre piattaforme verrà rilasciato nelle prossime settimane. |
Per impostazione predefinita, App Check utilizza token di sessione con un valore Time To Live (TTL) configurabile compreso tra
In futuro, App Check aggiungerà l'opzione per attivare la protezione dal replay per Firebase AI Logic (in modo simile al supporto che App Check già offre per alcune altre risorse). Quando la protezione dal replay è attivata, la protezione viene migliorata nei seguenti modi:
App Check consentirà le richieste solo se accompagnate da un tipo speciale di token chiamato token di utilizzo limitato.
Una volta verificato, il token di uso limitato viene utilizzato in modo che possa essere usato una sola volta, impedendo attacchi di tipo replay.
Per prepararti alla protezione dalla riproduzione, ti consigliamo di attivare l'utilizzo di token a uso limitato nell'ambito della configurazione di App Check. In questo modo, quando la protezione dalla riproduzione diventerà disponibile, potrai attivarla prima perché un numero maggiore di utenti utilizzerà versioni della tua app che inviano token di utilizzo limitato.
Tieni presente quanto segue se attivi ora l'utilizzo di token di uso limitato nella tua app (mentre la protezione dalla riproduzione 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 dell'SDK App Check e inviati insieme alle richieste. Questi token di utilizzo limitato offrono una piccola quantità di protezione aggiuntiva rispetto ai token di sessione predefiniti perché hanno un TTL più breve (solo
5 minuti e non regolabile) rispetto ai token di sessione.Anche se i token di utilizzo limitato sono validi per
5 minuti , l'SDK genererà comunque un nuovo token per ogni richiesta. Questo processo può aggiungere latenza alla tua richiesta.
Tuttavia, quando in futuro sarà disponibile la protezione dalla riproduzione per Firebase AI Logic (e la attiverai), non sarà possibile utilizzare i token di sessione e riutilizzare i token a uso limitato. Tieni presente che la latenza aggiuntiva per la generazione di un nuovo token per ogni richiesta si verificherà comunque.
Abilitare l'utilizzo di token di utilizzo limitato
Fai clic sul tuo fornitore Gemini API per visualizzare i contenuti e il codice specifici del fornitore in questa pagina. |
Ecco come attivare l'utilizzo dei token di utilizzo limitato:
Implementa App Check e assicurati di aver attivato l'applicazione di App Check per la tua app.
Nella tua app durante l'istanza, attiva l'utilizzo di token di uso limitato impostando il parametro
useLimitedUseAppCheckTokens
sutrue
: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
L'utilizzo di token di uso limitato con le app Flutter sarà supportato nella prossima release. Ricontrolla presto.
Unity
L'utilizzo di token a uso limitato con i giochi Unity sarà supportato in una versione futura. Ricontrolla presto.
Scopri 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 prima inviate al server Firebase AI Logic, che funge da gateway proxy in cui avviene 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.