Limiter les requêtes aux utilisateurs authentifiés

Vous pouvez activer le mode Utilisateurs authentifiés pour votre projet Firebase. Lorsqu' il est activé, toutes les requêtes Gemini API via Firebase AI Logic doivent provenir d' utilisateurs authentifiés de votre application. Plus précisément, l'utilisateur final de votre application doit être authentifié à l'aide de Firebase Authentication avant d'envoyer une requête à Firebase AI Logic depuis votre application. Si l'utilisateur final n'est pas authentifié, la requête est bloquée.

Lorsqu'une requête est bloquée, la réponse est une erreur 401: unauthenticated.

Remarques importantes

Tenez compte des points essentiels suivants concernant le mode Utilisateurs authentifiés.

Lorsque le mode Utilisateurs authentifiés est activé

Lorsque le mode Utilisateurs authentifiés est activé, tenez compte des points suivants :

  • Ce paramètre est défini au niveau du projet pour Firebase AI Logic.

    • Il s'applique à toutes les applications enregistrées dans le projet.
    • Il ne s'applique qu'au projet dans lequel il est activé.
  • Ce paramètre bloque toutes les requêtes via Firebase AI Logic qui n'envoient pas de Firebase Authentication identifiants.

    • L'utilisateur doit être authentifié via Firebase Authentication avant d'envoyer la requête à Firebase AI Logic.
    • Ce paramètre s'applique à toutes les requêtes via Firebase AI Logic, à la fois à Gemini Developer API et à Vertex AI Gemini API.
    • Ce paramètre s'applique à toutes les requêtes qui utilisent des modèles de prompts côté serveur.
    • Ce paramètre ne peut pas être appliqué par utilisateur, par API ni par modèle.
  • Ce paramètre ne bloque pas Gemini API les requêtes dans votre projet qui ne passent pas par Firebase AI Logic.

  • Si vous utilisez une solution hybride / sur l'appareil :

    • Ce paramètre bloque les requêtes adressées au modèle hébergé dans le cloud si l'utilisateur n'est pas authentifié.
    • Ce paramètre ne bloque pas les requêtes adressées au modèle sur l'appareil, quel que soit l'état d'authentification de l'utilisateur.
  • Si vous utilisez le Gemini Live API :

    • Ce paramètre bloque l'utilisation de l'API Gemini Live pour les applications Web lorsque vous utilisez Firebase AI Logic — même pour les utilisateurs authentifiés. Cela inclut les applications Web qui utilisent le SDK Firebase JS ou les applications Web Flutter.
  • Si vous utilisez l' Firebase AI Logic API REST :

    • Ce paramètre bloque les requêtes d'inférence qui n'envoient pas Firebase Authentication d'identifiants. Cela inclut les requêtes de modèles de prompts côté serveur tels que templateGenerateContent ou templateStreamGenerateContent.
    • Ce paramètre ne bloque pas les requêtes du plan de contrôle (comme celles permettant de gérer les modèles et les configurations), car elles sont protégées par IAM.
  • Ce paramètre ne bloque pas les requêtes adressées à countTokens (l'API Count Tokens).

Avant d'activer le mode Utilisateurs authentifiés

Tenez compte des points suivants avant d'activer le mode Utilisateurs authentifiés :

  • Si vous avez des versions existantes de votre application qui n'utilisent pas use Firebase Authentication :

    • Ce paramètre bloquera les requêtes via Firebase AI Logic provenant de ces versions d'application existantes.
    • Assurez-vous que tous les clients actifs ont été mis à jour pour utiliser Firebase Authentication avant d'activer le mode Utilisateurs authentifiés.
  • Les anciennes versions du plug-in Flutter nécessitent une instanciation spéciale pour envoyer Firebase Authentication des identifiants avec les requêtes.

    • Si votre application utilise le plug-in Flutter firebase_ai v3.11.0 ou une version antérieure (BoM v4.12.0 ou une version antérieure) et ne transmet pas Authentication lors de l'instanciation, ce paramètre bloquera les requêtes via Firebase AI Logic, même pour les utilisateurs authentifiés.
    • Assurez-vous que tous les clients actifs pour Flutter ont été mis à jour vers une version plus récente du plug-in avant d'activer le mode Utilisateurs authentifiés.

Configurer Firebase Authentication

La Firebase Authentication documentation fournit des descriptions et des instructions d'implémentation pour les fournisseurs d'authentification compatibles, y compris l'utilisation de mots de passe, de numéros de téléphone, de fournisseurs d'identité fédérée populaires (tels que Google, Facebook, et GitHub), et plus encore.

Une fois que vous avez implémenté Firebase Authentication dans votre application, celle-ci envoie automatiquement les identifiants Firebase Authentication de l'utilisateur authentifié dans chaque requête adressée à Firebase AI Logic.

Notez les points suivants concernant certains fournisseurs d'authentification :

  • Authentification personnalisée : vous devez récupérer un jeton d'authentification signé à envoyer avec la requête à Firebase AI Logic. Pour en savoir plus, consultez la section Authentification personnalisée.

  • Méthodes d'authentification anonyme ou par e-mail/mot de passe : ces utilisateurs sont considérés comme des utilisateurs authentifiés. Leurs requêtes adressées à Firebase AI Logic ne sont donc pas bloquées.

    Notez que même si les méthodes d'authentification anonyme et par e-mail/mot de passe obligent les utilisateurs à accéder à votre application pour créer Firebase Authentication des identifiants, il ne s'agit pas de formes d'authentification robustes (en particulier pour protéger une ressource payante) , car elles ne nécessitent pas par défaut de vérification d'identité de la part de l'utilisateur. Si votre application utilise l'implémentation par défaut de ces méthodes d'authentification, la protection est moins efficace, même si vous activez le mode Utilisateurs authentifiés. Assurez-vous d'avoir également activé Firebase App Check.

Gérer le paramètre du mode Utilisateurs authentifiés

Vous gérez le paramètre du mode Utilisateurs authentifiés dans la Firebase console.

Autorisations et rôles IAM requis

La gestion du paramètre du mode Utilisateurs authentifiés nécessite l'autorisation firebasevertexai.configs.update, qui est incluse par défaut dans les rôles IAM suivants : Propriétaire, Éditeur, Administrateur Firebase et Administrateur Firebase AI Logic.

Activer le mode Utilisateurs authentifiés

Voici comment activer le mode Utilisateurs authentifiés pour votre projet Firebase :

  1. Si ce n'est pas déjà fait, consultez les remarques importantes concernant le mode Utilisateurs authentifiés plus haut dans ce guide.

  2. Si ce n'est pas déjà fait, configurez Firebase Authentication dans votre application (comme décrit plus haut dans ce guide).

  3. Activez le mode Utilisateurs authentifiés :

    1. Dans la console Firebase, accédez à AI Services > AI Logic > Settings (Services d'IA > AI Logic > Paramètres).

    2. Sous Authenticated-users mode (Mode Utilisateurs authentifiés), faites glisser le bouton Enforce authenticated-users mode (Activer le mode Utilisateurs authentifiés) sur Enforced (Activé).

    3. Examinez la boîte de dialogue de confirmation, puis cliquez sur Confirm (Confirmer).

Désactiver le mode Utilisateurs authentifiés

Si vous désactivez le mode Utilisateurs authentifiés, tenez compte des points suivants :

  • Les requêtes via Firebase AI Logic qui n'envoient pas d'identifiants Firebase Authentication seront autorisées.
  • Ce paramètre est défini au niveau du projet pour Firebase AI Logic.

Voici comment désactiver le mode Utilisateurs authentifiés pour votre projet Firebase :

  1. Dans la console Firebase, accédez à AI Services > AI Logic > Settings (Services d'IA > AI Logic > Paramètres).

  2. Sous Authenticated-users mode (Mode Utilisateurs authentifiés), désactivez Enforce authenticated-users mode (Activer le mode Utilisateurs authentifiés).

  3. Examinez la boîte de dialogue de confirmation, puis cliquez sur Confirm (Confirmer).