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 importants 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 :

  • Il s'agit d'un paramètre à l'échelle du projet pour Firebase AI Logic.

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

    • 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 les requêtes Gemini API de votre projet qui ne sont pas envoyées via Firebase AI Logic.

  • Si vous utilisez hybride / sur l'appareil :

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

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

    • Ce paramètre bloque les requêtes d'inférence qui n'envoient pas d'identifiants Firebase Authentication. Cela inclut les demandes de modèles d'invite de serveur, comme 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 envoyées à l'API countTokens (Count Tokens).

Avant d'activer le mode Utilisateurs authentifiés

Avant d'activer le mode Utilisateurs authentifiés, tenez compte des points suivants :

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

    • Ce paramètre bloque 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 les identifiants Firebase Authentication avec les requêtes.

    • Si votre application utilise le plug-in Flutter firebase_ai v3.11.0 ou version antérieure (BoM v4.12.0 ou version antérieure) et n'inclut 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'appliquer le mode "Utilisateurs authentifiés".

Configurer Firebase Authentication

La documentation Firebase Authentication 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 (comme 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 Authentification personnalisée.

  • Méthodes d'authentification Anonyme ou Adresse e-mail/Mot de passe : ces utilisateurs sont considérés comme authentifiés. Leurs requêtes envoyé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 exigent que les utilisateurs accèdent à votre application pour créer des identifiants Firebase Authentication, elles ne constituent pas des formes d'authentification robustes (en particulier pour protéger une ressource payante), car elles ne nécessitent pas par défaut la validation de l'identité de l'utilisateur. Si votre application utilise l'implémentation par défaut de ces méthodes d'authentification, la protection sera moins efficace, même si vous activez le mode "Utilisateurs authentifiés". Assurez-vous d'avoir également appliqué 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 console Firebase.

Autorisations et rôles IAM requis

Pour gérer le paramètre du mode "Utilisateurs authentifiés", vous devez disposer de 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 vous ne l'avez pas déjà fait, consultez les points importants à prendre en compte pour 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. Appliquer le mode Utilisateurs authentifiés :

    1. Dans la consoleFirebase, accédez à Services d'IA > Logique d'IA > onglet Paramètres.

    2. Sous Mode Utilisateurs authentifiés, faites glisser le bouton Appliquer le mode Utilisateurs authentifiés sur Appliqué.

    3. Lisez le contenu de la boîte de dialogue de confirmation, puis cliquez sur Confirmer.

Arrêter l'application du 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.
  • Il s'agit d'un paramètre à l'échelle du projet pour Firebase AI Logic.

Voici comment arrêter l'application du mode Utilisateurs authentifiés pour votre projet Firebase :

  1. Dans la consoleFirebase, accédez à Services d'IA > Logique d'IA > onglet Paramètres.

  2. Sous Mode Utilisateurs authentifiés, désactivez l'option Appliquer le mode Utilisateurs authentifiés.

  3. Lisez le contenu de la boîte de dialogue de confirmation, puis cliquez sur Confirmer.