Restringe las solicitudes solo a los usuarios autenticados

Puedes aplicar el modo de usuarios autenticados en 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.

Cuando se aplica el modo de usuarios autenticados

Cuando se aplica el modo de usuarios autenticados, ten en cuenta lo siguiente:

  • Este es un parámetro de configuración 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 para Gemini Developer API como para Agent Platform Gemini API (formerly Vertex AI).
    • 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 realizan a través de Firebase AI Logic.

  • Si usas el modo 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, sin importar el 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 apps web cuando se usa Firebase AI Logic, incluso para 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 las solicitudes de plantillas de instrucciones del servidor, como templateGenerateContent o templateStreamGenerateContent.
    • Este parámetro de configuración no bloquea las solicitudes del plano de control (como las que se usan para administrar plantillas y parámetros de configuración) porque están protegidas por IAM.
  • 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 de la app existentes.
    • 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 creación de instancias especial para enviar credenciales de Firebase Authentication con las solicitudes.

    • Si tu app usa el complemento de Flutter firebase_ai v3.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 una instancia, 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.

Configurar Firebase Authentication

La documentación de Firebase Authentication proporciona descripciones y las 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), entre otros.

Después de implementar Firebase Authentication en tu app, esta enviará automáticamente las credenciales de Firebase Authentication del 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ónima o de Correo electrónico/Contraseña: Estos usuarios se consideran 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ónima y con correo electrónico y contraseña requieren que los usuarios visiten tu app para crear credenciales de Firebase Authentication, no son formas de autenticación sólidas (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 hayas aplicado Firebase App Check.

Administra el parámetro de configuración del modo de usuarios autenticados

Administra el parámetro de 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 estos 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:

  1. Si aún no lo hiciste, revisa las consideraciones importantes para el modo de usuarios autenticados que se mencionan antes en esta guía.

  2. Si aún no lo hiciste, configura Firebase Authentication en tu app (como se describió anteriormente en esta guía).

  3. Aplica el modo de usuarios autenticados:

    1. En la consola de Firebase, ve a Servicios de IA > AI Logic > pestaña Configuración.

    2. En Modo de usuarios autenticados, desliza el botón de activación de Aplicar el modo de usuarios autenticados a Aplicado.

    3. Revisa el diálogo de confirmación y, luego, haz clic en Confirmar.

Detén 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 realizadas 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 dejar de aplicar el modo de usuarios autenticados en tu proyecto de Firebase:

  1. En la consola de Firebase, ve a Servicios de IA > Lógica de IA > pestaña Configuración.

  2. En Modo de usuarios autenticados, desactiva Aplicar el modo de usuarios autenticados.

  3. Revisa el diálogo de confirmación y, luego, haz clic en Confirmar.