Puedes aplicar el modo de usuarios autenticados para tu proyecto de Firebase. Cuando se aplique, todas las solicitudes de 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.
Cuándo 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 de 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 de 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 tanto a Gemini Developer API como a 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 las solicitudes de Gemini API en tu proyecto que no se realicen a través de Firebase AI Logic.
Si usas híbrido o integrado en el dispositivo, haz lo siguiente:
- 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, independientemente del estado de autenticación del usuario.
Si usas Gemini Live API, haz lo siguiente:
- Este parámetro de configuración bloquea el uso de la API de Gemini Live para las apps web cuando se usa Firebase AI Logic, incluso para los usuarios autenticados. Esto incluye las apps web que usan el SDK de Firebase JS o las apps web de Flutter.
Si usas la API de REST de Firebase AI Logic, haz lo siguiente:
- Este parámetro de configuración bloquea las solicitudes de inferencia que no envían credenciales de Firebase Authentication. 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 que se usan para administrar plantillas y configuraciones) porque están protegidas por IAM.
- Este parámetro de configuración bloquea las solicitudes de inferencia que no envían credenciales de Firebase Authentication. 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, haz lo siguiente:
- Este parámetro de configuración bloqueará las solicitudes a través de Firebase AI Logic desde esas versiones existentes de la app.
- Antes de aplicar el modo de usuarios autenticados, asegúrate de que todos los clientes activos se hayan actualizado para usar Firebase Authentication.
Las versiones anteriores del complemento de Flutter requieren una instanciación especial para enviar credenciales de Firebase Authentication 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 creación de instancias, este parámetro de configuración bloqueará las solicitudes a través de Firebase AI Logic, incluso para los 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
Configurar Firebase Authentication
La documentación de Firebase Authentication proporciona descripciones e instrucciones de implementación para los proveedores de autenticación admitidos, 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ónimo o 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, si bien los métodos de autenticación anónima y de correo electrónico/contraseña requieren que los usuarios visiten tu app para crear credenciales de Firebase Authentication, no son formas sólidas de autenticación (especialmente 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 aplicaste Firebase App Check.
Administra el parámetro de configuración del modo de usuarios autenticados
Puedes administrar la configuración del modo de usuarios autenticados en la consola de Firebase.
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 los siguientes roles de IAM: propietario, editor, administrador de Firebase y administrador de Firebase AI Logic.
Aplicar el modo de usuarios autenticados
Sigue estos pasos para aplicar el modo de usuarios autenticados en tu proyecto de Firebase:
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 Configuración.
En Modo de usuarios autenticados, desliza el botón de activación de Aplicar el modo de usuarios autenticados a Aplicado.
Revisa el cuadro de diálogo de confirmación y, luego, haz clic en Confirmar.
Detener la aplicación del modo de usuarios autenticados
Si dejas de aplicar el 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 credenciales de Firebase Authentication.
- Este es un parámetro de configuración para todo el proyecto de Firebase AI Logic.
Sigue estos pasos para detener la aplicación del modo de usuarios autenticados en tu proyecto de Firebase:
En la consola de Firebase, ve a AI Services > AI Logic > pestaña Configuración.
En Modo de usuarios autenticados, desactiva Aplicar el modo de usuarios autenticados.
Revisa el cuadro de diálogo de confirmación y, luego, haz clic en Confirmar.