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 abuso por parte de clientes no autorizados. Para proteger estas APIs del abuso, puedes usar Firebase App Check para verificar que todas las llamadas a la API entrantes provengan de tu app real y de un dispositivo no adulterado.
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 SDK 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.
App Check también admite la protección contra la repetición, lo que significa que un token de App Check solo se puede usar una vez.
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 cada solicitud que realiza tu app con un Firebase AI Logic SDK. Cuando se aplica 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.
Cuando configures App Check, considera agregar protección contra la repetición, que hace que los tokens de App Check sean de uso único. Esta opción ofrece una protección mejorada más allá de la protección de referencia y te permite establecer un nivel de protección adecuado para tu app y tus casos de uso.
Puedes encontrar información detallada sobre App Check en su documentación, incluidas sus cuotas y límites.
Configura App Check
La documentación de App Check proporciona descripciones detalladas de los proveedores de certificación , así como instrucciones de implementación detalladas.
Elige un proveedor de certificación 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
Si usas versiones anteriores del complemento, consulta la nota sobre la creación de instancias especiales a continuación. para Flutter y App Check. - Unity: Admite todos los proveedores predeterminados anteriores
Ten en cuenta que, si ninguno de estos proveedores de certificación 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.
(Obligatorio) Habilita la aplicación forzosaApp Check antes de confirmar tu app en un sistema de control de código fuente disponible públicamente, compartirla o hacerla disponible para el público.
(Recomendado) Mejora la protección agregando la protección contra la repetición, lo que significa que un token App Check solo se puede usar una vez.
Para el desarrollo local cuando se aplica App Check, configura el App Check proveedor de depuración para omitir la certificación y, al mismo tiempo, mantener la aplicación forzosa de App Check. Consulta las instrucciones de configuración para tu plataforma: iOS+ | Android | Web | Flutter | Unity.
Mejora la protección agregando la protección contra la repetición
|
Te recomendamos que uses las versiones más recientes del SDK, pero
asegúrate de usar al menos una de estas versiones para usar
protección contra la repetición: Plataformas de Apple v12.2.0 y versiones posteriores | BoM de Android v34.14.0 y versiones posteriores (App Check v19.1.0 y versiones posteriores) | Web v12.14.0 y versiones posteriores | Flutter v4.15.0 y versiones posteriores (App Check v4.10.0 y versiones posteriores) | Unity v13.12.0 y versiones posteriores |
De forma predeterminada, App Check usa tokens de sesión que tienen un
tiempo de actividad (TTL) configurable entre
Sin embargo, puedes mejorar la protección más allá de esta protección de referencia aplicando la protección contra la repetición, que usa tokens de uso limitado en su lugar. Cuando se aplica la protección contra la repetición, sucede lo siguiente:
App Check bloqueará las solicitudes a Firebase AI Logic que usen tokens de sesión. En cambio, App Check solo permitirá una solicitud a Firebase AI Logic si usa un token de uso limitado recién acuñado.
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.
El SDK de App Check genera un nuevo token de uso limitado para cada solicitud. Ten en cuenta que este proceso puede afectar tus solicitudes agregando cierta latencia y, a veces, costo (según tu proveedor de certificación).
Configura y aplica la protección contra la repetición
|
Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página. |
A continuación, te indicamos cómo configurar y aplicar la protección contra la repetición:
Si aún no lo hiciste, implementa App Check y habilita la aplicación forzosa App Check para tu app.
Habilita el uso de tokens de uso limitado.
En tu app durante la creación de instancias, establece 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( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Aplica la protección contra la repetición.
En la base de código de tu app, asegúrate de haber habilitado el uso de tokens de uso limitado (consulta el paso anterior).
En la consola Firebase, ve a Seguridad > Verificación de aplicaciones.
Expande la vista de métricas para Firebase AI Logic.
Asegúrate de que la protección de referencia esté aplicada y, luego, haz clic en Continuar.
Para la protección contra la repetición, elige No aplicada (solo supervisión) o Aplicada.
Ten en cuenta lo siguiente para decidir cuándo aplicar la protección contra la repetición:
Se recomienda supervisar tus solicitudes si es probable que una cantidad considerable de tus usuarios usen versiones anteriores de tu app sin que esté habilitado el uso de tokens de uso limitado. Si aplicas la protección contra la repetición de inmediato, se bloquearán las solicitudes de esos usuarios.
Puedes supervisar específicamente la métrica Sin verificar: Token reutilizado, que es la cantidad de solicitudes que tienen un token que ya se usó en una solicitud anterior. Supervisa esta métrica en la Firebase consola (ve a la pestaña Seguridad > Verificación de aplicaciones > APIs).
Si una parte significativa de las solicitudes recientes se encuentra en esta categoría, puedes evitar interrumpir a los usuarios y considerar esperar para aplicar la protección contra la repetición hasta que más usuarios hayan actualizado a una versión de tu app que use tokens de uso limitado.
Comprende cómo Firebase AI Logic se integra con App Check
Para usar los Firebase AI Logic SDK, 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 SDK 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 Checkla verificación
antes de que se permita que la solicitud continúe al backend del proveedor de "Gemini API" que elegiste y a las APIs para acceder a los modelos de Gemini
y Imagen.
(Opcional) Aplica App Check sin un proveedor de certificación de producción (solo proveedor de depuración)
Puedes aplicar App Check para AI Logic sin registrar tu app con un proveedor de certificación de producción. Esta configuración te permite usar el App Check proveedor de depuración para comenzar a usar AI Logic con más facilidad y, al mismo tiempo, proteger la Gemini API.
Verifica si ya se aplica App Check para AI Logic.
En la consola de Firebase, ve a la pestaña Seguridad > Verificación de aplicaciones > APIs.
Busca la fila de Firebase AI Logic. Si dice
Unenforced, continúa con el resto de estas instrucciones.
Haz clic en la fila de Firebase AI Logic y verás gráficos de métricas. Debajo de esos gráficos, haz clic en Configurar.
En la primera pantalla del diálogo (Protección de referencia), selecciona Aplicada y, luego, haz clic en Continuar.
En la siguiente pantalla (Protección contra la repetición), selecciona Inhabilitada. Siempre puedes configurarla más tarde y volver a este flujo de trabajo de configuración. Haz clic en Continuar.
En la pantalla final, revisa las consideraciones para aplicar App Check y asegúrate de que estés listo para aplicar App Check. Si estás listo, haz clic en Continuar.
No es necesario que registres tus apps si solo quieres aplicar la App Check y solo usar el proveedor de depuración con AI Logic en una app de preproducción. Sin embargo, cuando estés listo para lanzar tu app para los usuarios finales, deberás registrar tus apps como parte de la configuración de un proveedor de certificación de producción (como App Attest, Play Integrity o reCAPTCHA Enterprise).
Para el desarrollo local cuando se aplica App Check, debes configurar el App Check proveedor de depuración para omitir la certificación y, al mismo tiempo, mantener la aplicación forzosa de App Check.
Para obtener detalles sobre la configuración del proveedor de depuración, consulta las instrucciones para tu plataforma: iOS+ | Android | Web | Flutter | Unity.