Puedes aplicar el modo de usuarios autenticados para tu proyecto de Firebase. Cuando se aplique, todas las solicitudes Gemini API a través de Firebase AI Logic deben provenir de usuarios autenticados de tu app. Específicamente, el usuario final de tu app debe autenticarse con Firebase Authentication antes de enviar una solicitud a Firebase AI Logic desde tu app. Si el usuario final no está autenticado, se bloqueará la solicitud.
Cuando se bloquea una solicitud, la respuesta será un error 401: unauthenticated.
Consideraciones importantes
Ten en cuenta las siguientes consideraciones importantes para el modo de usuarios autenticados.
Cuando se aplica el modo de usuarios autenticados
Cuando se aplica el modo de usuarios autenticados, ten en cuenta lo siguiente:
Este parámetro de configuración es para todo el proyecto para Firebase AI Logic.
- Se aplica a todas las apps registradas en el proyecto.
- Solo se aplica al proyecto en el que se aplica.
Este parámetro de configuración bloquea todas las solicitudes a través de Firebase AI Logic que no envían credenciales Firebase Authentication.
- El usuario debe autenticarse a través de Firebase Authentication antes de enviar la solicitud a Firebase AI Logic.
- Este parámetro de configuración se aplica a todas las solicitudes a través de Firebase AI Logic a la Gemini Developer API y la Vertex AI Gemini API.
- Este parámetro de configuración se aplica a todas las solicitudes que usan plantillas de instrucciones del servidor.
- Este parámetro de configuración no se puede aplicar por usuario, por API ni por plantilla.
Este parámetro de configuración no bloquea Gemini API solicitudes en tu proyecto que se no realizan a través de Firebase AI Logic.
Si usas híbrido / integrado en el dispositivo:
- Este parámetro de configuración bloquea las solicitudes al modelo alojado en la nube si el usuario no está autenticado.
- Este parámetro de configuración no bloquea las solicitudes al modelo integrado en el dispositivo, sin importar el estado de autenticación del usuario.
Si usas el Gemini Live API:
- Este parámetro de configuración bloquea el uso de la API de Gemini Live para apps web cuando se usa Firebase AI Logic — incluso para usuarios autenticados. Esto incluye apps web que usan el SDK de Firebase JS o apps web de Flutter.
Si usas la Firebase AI Logic API de REST:
- Este parámetro de configuración bloquea las solicitudes de inferencia que no envían
Firebase Authentication credenciales. Esto incluye solicitudes de plantillas de instrucciones del servidor, como
templateGenerateContentotemplateStreamGenerateContent. - Este parámetro de configuración no bloquea las solicitudes del plano de control (como las de administración de plantillas y configuraciones) porque están protegidas por IAM.
- Este parámetro de configuración bloquea las solicitudes de inferencia que no envían
Firebase Authentication credenciales. Esto incluye solicitudes de plantillas de instrucciones del servidor, como
Este parámetro de configuración no bloquea las solicitudes a
countTokens(la API de Count Tokens).
Antes de aplicar el modo de usuarios autenticados
Ten en cuenta lo siguiente antes de aplicar el modo de usuarios autenticados:
Si tienes versiones existentes de tu app que no usan Firebase Authentication:
- Este parámetro de configuración bloqueará las solicitudes a través de Firebase AI Logic de esas versiones existentes de la app.
- Asegúrate de que todos los clientes activos se hayan actualizado para usar Firebase Authentication antes de aplicar el modo de usuarios autenticados.
Las versiones anteriores del complemento de Flutter requieren una instancia especial para enviar Firebase Authentication credenciales con las solicitudes.
- Si tu app usa el complemento de Flutter
firebase_aiv3.11.0 o una versión anterior (BoM v4.12.0 o una versión anterior) y no pasa Authentication durante la instancia, este parámetro de configuración bloqueará las solicitudes a través de Firebase AI Logic — incluso para usuarios autenticados. - Asegúrate de que todos los clientes activos de Flutter se hayan actualizado a una versión más reciente del complemento antes de aplicar el modo de usuarios autenticados.
- Si tu app usa el complemento de Flutter
Configura Firebase Authentication
La documentación de Firebase Authentication proporciona descripciones e instrucciones de implementación para los proveedores de autenticación compatibles, incluido el uso de contraseñas, números de teléfono, proveedores de identidad federada populares (como Google, Facebook y GitHub) y mucho más.
Después de implementar Firebase Authentication en tu app, esta enviará automáticamente las credenciales de Firebase Authentication para el usuario autenticado en cada solicitud a Firebase AI Logic.
Ten en cuenta lo siguiente sobre algunos de los proveedores de autenticación:
Autenticación personalizada: Debes recuperar un token de autenticación firmado para enviarlo junto con la solicitud a Firebase AI Logic. Para obtener más detalles, consulta Autenticación personalizada.
Métodos de autenticación anónimos o de correo electrónico/contraseña: Estos usuarios se consideran usuarios autenticados, por lo que sus solicitudes a Firebase AI Logic no se bloquean.
Ten en cuenta que, aunque los métodos de autenticación anónimos y de correo electrónico/contraseña requieren que los usuarios visiten tu app para crear Firebase Authentication credenciales, no son formas sólidas de autenticación (en especial para proteger un recurso pagado) porque no requieren, de forma predeterminada, la verificación de identidad del usuario. Si tu app usa la implementación predeterminada de estos métodos de autenticación, es posible que haya menos protección, incluso si aplicas el modo de usuarios autenticados. Asegúrate de que también hayas aplicado Firebase App Check.
Administra el parámetro de configuración del modo de usuarios autenticados
Puedes administrar el parámetro de configuración del modo de usuarios autenticados en la Firebase console.
Roles y permisos de IAM obligatorios
Para administrar el parámetro de configuración del modo de usuarios autenticados, se requiere el permiso firebasevertexai.configs.update, que se incluye de forma predeterminada en estos roles de IAM: Propietario, Editor, Administrador de Firebase y Administrador de Firebase AI Logic.
Aplica el modo de usuarios autenticados
Para aplicar el modo de usuarios autenticados para tu proyecto de Firebase, haz lo siguiente:
Si aún no lo hiciste, revisa las consideraciones importantes para el modo de usuarios autenticados que se mencionaron anteriormente en esta guía.
Si aún no lo hiciste, configura Firebase Authentication en tu app (como se describió anteriormente en esta guía).
Aplica el modo de usuarios autenticados:
En la consola de Firebase, ve a AI Services > AI Logic > pestaña Settings.
En Authenticated-users mode, desliza el botón de activación de Enforce authenticated-users mode a Enforced.
Revisa el cuadro de diálogo de confirmación y, luego, haz clic en Confirmar.
Detén la aplicación del modo de usuarios autenticados
Si detienes la aplicación del modo de usuarios autenticados, ten en cuenta lo siguiente:
- Se permitirán las solicitudes a través de Firebase AI Logic que no envíen Firebase Authentication credenciales.
- Este parámetro de configuración es para todo el proyecto para Firebase AI Logic.
Para detener la aplicación del modo de usuarios autenticados para tu proyecto de Firebase, haz lo siguiente:
En la consola de Firebase, ve a AI Services > AI Logic > pestaña Settings.
En Authenticated-users mode, desactiva Enforce authenticated-users mode.
Revisa el cuadro de diálogo de confirmación y, luego, haz clic en Confirmar.