Cuando llamas a una API directamente desde una app web o para dispositivos móviles (por ejemplo, las APIs que permiten el acceso a modelos de IA generativa), la API es vulnerable al uso inadecuado por parte de clientes no autorizados. Para proteger estas APIs, puedes usar Firebase App Check para verificar que todas las llamadas a la API entrantes provengan de tu app real.
Firebase AI Logic proporciona una puerta de enlace de proxy que te permite realizar la integración con Firebase App Check y proteger las APIs de modelos de IA generativa a las que llaman tus apps web y para dispositivos móviles. El uso de App Check con los Firebase AI Logic SDKs admite todas nuestras configuraciones:
Protege ambos proveedores de la "API de Gemini": Gemini Developer API y Vertex AI Gemini API.
Protege todos los modelos compatibles, tanto los modelos Gemini como los Imagen modelos.
Resumen de alto nivel sobre cómo App Check funciona
Con App Check, los dispositivos que ejecutan tu app usan un proveedor de certificación de apps o de dispositivos que verifica uno o ambos de los siguientes procedimientos:
- Las solicitudes se originan en tu app auténtica
- Las solicitudes se originan en un dispositivo auténtico, no adulterado
Esta certificación se adjunta a todas las solicitudes que tu app realiza con un Firebase AI Logic SDK. Cuando habilites la aplicación de App Check se rechazarán las solicitudes de clientes que no tienen una certificación válida, así como las solicitudes provenientes de una app o una plataforma que no autorizaste.
Te recomendamos que, cuando configures App Check, te asegures de prepararte para la próxima protección mejorada (conocida como protección contra repeticiones).
Puedes encontrar información detallada sobre App Check en su documentación, incluidas sus cuotas y límites.
Proveedores disponibles y instrucciones de implementación
En la documentación de App Check, se proporcionan descripciones de los proveedores de certificación así como instrucciones de implementación.
Elige un proveedor predeterminado y sigue las instrucciones de implementación en los siguientes vínculos:
- Plataformas de Apple: DeviceCheck o App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Admite
todos los proveedores predeterminados anteriores
Además, asegúrate de seguir los requisitos especiales de creación de instancias para Flutter y App Check. - Unity: Admite todos los proveedores predeterminados anteriores
Ten en cuenta que, si ninguno de los proveedores predeterminados es suficiente para tus necesidades, puedes implementar un proveedor personalizado que use un proveedor de certificación externo o tus propias técnicas de certificación.
(Recomendado) Prepárate para la próxima protección mejorada de App Check (conocida como protección contra repeticiones).
(Obligatorio) Antes de lanzar tu app para usuarios reales, habilita la aplicación de App Check.
Se requiere una creación de instancias especial para Flutter
|
Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página. |
Cuando uses App Check con Firebase AI Logic en apps de Flutter, deberás pasar App Check de forma explícita durante la creación de instancias, de la siguiente manera:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Prepárate para la próxima protección mejorada
| Se admite la habilitación del uso de tokens de uso limitado para plataformas de Apple (v12.2.0 y versiones posteriores), Android (v17.2.0 y versiones posteriores, BoM v34.2.0 y versiones posteriores), Web (v12.3.0 y versiones posteriores) y Flutter (v3.2.0 y versiones posteriores, BoM v4.2.0 y versiones posteriores). La compatibilidad con Unity estará disponible próximamente. |
De forma predeterminada, App Check usa tokens de sesión que tienen un
tiempo de actividad (TTL) configurable entre
En el futuro, App Check agregará la opción para habilitar la protección contra repeticiones para Firebase AI Logic (similar a la compatibilidad que App Check ya ofrece para algunos otros recursos). Cuando se habilita la protección contra repeticiones, se mejora la protección de las siguientes maneras:
App Check solo permitirá las solicitudes si están acompañadas de un tipo especial de token llamado token de uso limitado.
Después de que se verifica el token de uso limitado, se consume para que se pueda usar solo una vez, lo que evita los ataques de repetición.
Para prepararte para la protección contra repeticiones, te recomendamos que habilites el uso de tokens de uso limitado como parte de la configuración de App Check. De esa manera, cuando la protección contra repeticiones esté disponible, podrás habilitarla antes porque más usuarios usarán versiones de tu app que envíen tokens de uso limitado.
Ten en cuenta lo siguiente si habilitas el uso de tokens de uso limitado en tu app ahora (mientras la protección contra repeticiones no está disponible):
App Check no bloquea el uso de tokens de sesión válidos.
Al igual que los tokens de sesión, el SDK de la App Check almacena en caché los tokens de uso limitado y los envía junto con las solicitudes. Estos tokens de uso limitado proporcionan una pequeña cantidad de protección adicional que los tokens de sesión predeterminados porque los tokens de uso limitado tienen un TTL más corto (solo
5 minutos y no se pueden ajustar) en comparación con los tokens de sesión.Aunque los tokens de uso limitado son válidos por
5 minutos , el SDK generará un token nuevo para cada solicitud. Este proceso puede agregar algo de latencia a tu solicitud.
Sin embargo, cuando la protección contra repeticiones esté disponible para Firebase AI Logic en el futuro (y la habilites), no será posible usar tokens de sesión ni reutilizar tokens de uso limitado. Ten en cuenta que aún se producirá la latencia adicional para generar un token nuevo para cada solicitud.
Habilita el uso de tokens de uso limitado
|
Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página. |
Sigue estos pasos para habilitar el uso de tokens de uso limitado:
Implementa App Check y asegúrate de haber habilitado la aplicación de App Check para tu app.
En tu app durante la creación de instancias, habilita el uso de tokens de uso limitado configurando el parámetro
useLimitedUseAppCheckTokensentrue: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
El uso de tokens de uso limitado con juegos de Unity será compatible en una versión futura. Vuelve a consultar más tarde.
Comprende cómo Firebase AI Logic se integra con App Check
Para usar los Firebase AI Logic SDKs, se debe habilitar la
Firebase AI Logic API (firebasevertexai.googleapis.com)
en tu proyecto de Firebase. Esto se debe a que las solicitudes realizadas por los
Firebase AI Logic SDKs se envían primero al Firebase AI Logic
servidor, que actúa como una puerta de enlace de proxy en la que se realiza la verificación de Firebase App Check verificación
antes de que se permita que la solicitud continúe al backend del proveedor de "Gemini API" elegido y a las APIs para acceder a los modelos Gemini
y Imagen.