Lorsque vous appelez une API directement depuis une application mobile ou Web (par exemple, les API qui permettent d'accéder à des modèles d'IA générative), elle est vulnérable aux utilisations abusives par des clients non autorisés. Pour protéger ces API, vous pouvez utiliser Firebase App Check afin de vérifier que tous les appels d'API entrants proviennent de votre application.
Firebase AI Logic fournit une passerelle proxy qui vous permet de vous intégrer à Firebase App Check et de protéger les API de modèle d'IA générative appelées par vos applications mobiles et Web. L'utilisation de App Check avec les Firebase AI Logic SDK est compatible avec toutes nos configurations :
Protège les deux fournisseurs d'API Gemini : Gemini Developer API et Vertex AI Gemini API.
Protège tous les modèles compatibles, à la fois les Gemini modèles et les Imagen modèles.
Résumé général du fonctionnement de App Check
Avec App Check, les appareils exécutant votre application utilisent un fournisseur d'attestation d'application ou d'appareil qui vérifie l'un des éléments suivants, voire les deux :
- Les requêtes proviennent de votre application authentique.
- Les requêtes proviennent d'un appareil authentique qui n'a pas été altéré.
Cette attestation est associée à chaque requête effectuée par votre application à l'aide d'un Firebase AI Logic SDK. Lorsque vous activez l'application forcée de App Check, les requêtes des clients sans attestation valide sont refusées, tout comme les requêtes provenant d'une application ou d'une plate-forme que vous n'avez pas autorisée.
Nous vous recommandons de vous préparer à la protection renforcée à venir (appelée protection contre la relecture) lorsque vous configurez App Check.
Vous trouverez des informations détaillées sur App Check dans sa documentation, y compris ses quotas et limites.
Fournisseurs disponibles et instructions d'implémentation
La documentation App Check fournit des descriptions des fournisseurs d'attestation ainsi que des instructions d'implémentation.
Choisissez un fournisseur par défaut et suivez les instructions d'implémentation en cliquant sur les liens suivants :
- Plates-formes Apple: DeviceCheck ou App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter : compatible avec
tous les fournisseurs par défaut ci-dessus.
Assurez-vous également de respecter les exigences d'instanciation spéciales pour Flutter et App Check. - Unity : compatible avec tous les fournisseurs par défaut ci-dessus
Notez que si aucun des fournisseurs par défaut ne répond à vos besoins, vous pouvez implémenter un fournisseur personnalisé qui utilise un fournisseur d'attestation tiers ou vos propres techniques d'attestation.
(Recommandé) Préparez-vous à la protection renforcée à venir de App Check (appelée protection contre la relecture).
(Obligatoire) Avant de proposer votre application à des utilisateurs réels, activez l'application forcée de App Check.
Instanciation spéciale requise pour Flutter
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Lorsque vous utilisez App Check avec Firebase AI Logic dans des applications Flutter, vous devez transmettre explicitement App Check lors de l'instanciation, comme suit :
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Se préparer à la protection renforcée à venir
| L'activation de l'utilisation de jetons à usage limité est compatible avec les plates-formes Apple (v12.2.0 ou version ultérieure), Android (v17.2.0 ou version ultérieure, BoM v34.2.0 ou version ultérieure), le Web (v12.3.0 ou version ultérieure) et Flutter (v3.2.0 ou version ultérieure, BoM v4.2.0 ou version ultérieure). La compatibilité avec Unity sera bientôt disponible. |
Par défaut, App Check utilise des jetons de session dont la
durée de vie (TTL) est configurable et comprise entre
À l'avenir, App Check ajoutera la possibilité d'activer la protection contre la relecture pour Firebase AI Logic (comme la compatibilité qu'App Check offre déjà pour certaines autres ressources). Lorsque la protection contre la relecture est activée, elle renforce la protection de la manière suivante :
App Check n'autorisera les requêtes que si elles sont accompagnées d'un type spécial de jeton appelé un jeton à usage limité.
Une fois le jeton à usage limité validé, il est consommé afin de ne pouvoir être utilisé qu'une seule fois, ce qui empêche les attaques par relecture.
Pour vous préparer à la protection contre la relecture, nous vous recommandons d'activer l'utilisation de jetons à usage limité lors de la configuration App Check. Ainsi, lorsque la protection contre la relecture sera disponible, vous pourrez l'activer plus tôt, car davantage de vos utilisateurs utiliseront des versions de votre application qui envoient des jetons à usage limité.
Notez les points suivants si vous activez l'utilisation de jetons à usage limité dans votre application maintenant (alors que la protection contre la relecture n'est pas disponible) :
App Check ne bloque pas l'utilisation de jetons de session valides.
Tout comme les jetons de session, les jetons à usage limité sont mis en cache par le App Check SDK et envoyés avec les requêtes. Ces jetons à usage limité offrent une petite protection supplémentaire par rapport aux jetons de session par défaut , car ils ont une durée de vie plus courte (seulement
5 minutes et non ajustable) que les jetons de session.Même si les jetons à usage limité sont valides pendant
5 minutes , le SDK génère toujours un nouveau jeton pour chaque requête. Ce processus peut ajouter une certaine latence à votre requête.
Toutefois, lorsque la protection contre la relecture sera disponible pour Firebase AI Logic dans le futur (et que vous l'activerez), l'utilisation de jetons de session et la réutilisation de jetons à usage limité ne seront pas possibles. Notez que la latence supplémentaire liée à la génération d'un nouveau jeton pour chaque requête se produira toujours.
Activer l'utilisation de jetons à usage limité
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Voici comment activer l'utilisation de jetons à usage limité :
Implémentez App Check et assurez-vous d'avoir activé l'application forcée pour votre application.App Check
Dans votre application lors de l'instanciation, activez l'utilisation de jetons à usage limité en définissant le paramètre
useLimitedUseAppCheckTokenssurtrue: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'utilisation de jetons à usage limité avec les jeux Unity sera compatible dans une prochaine version. Veuillez réessayer ultérieurement.
Comprendre comment Firebase AI Logic s'intègre à App Check
Pour utiliser les Firebase AI Logic SDK, l'
Firebase AI Logic API (firebasevertexai.googleapis.com)
doit être activée dans votre projet Firebase. En effet, les requêtes effectuées par les
Firebase AI Logic SDK sont d'abord envoyées au Firebase AI Logic
serveur, qui fait office de passerelle proxy où la validation Firebase App Check
a lieu avant que la requête ne soit autorisée à passer au backend du fournisseur "Gemini API" choisi et aux API permettant d'accéder aux modèles Gemini
et Imagen.