En savoir plus sur l'utilisation et la gestion des clés API pour Firebase

Une clé API est une chaîne unique utilisée pour acheminer les requêtes vers votre projet Firebase lors de l'interaction avec les services Firebase et Google. Cette page décrit des informations de base sur les clés API ainsi que les bonnes pratiques d'utilisation et de gestion des clés API avec les applications Firebase.

Informations générales sur les clés API et Firebase

Les clés API pour Firebase sont différentes des clés API classiques

Contrairement à la façon dont les clés API sont généralement utilisées, les clés API des services Firebase ne sont pas utilisées pour contrôler l'accès aux ressources backend ; cela ne peut être fait qu'avec les règles de sécurité Firebase (pour contrôler quels utilisateurs peuvent accéder aux ressources) et App Check (pour contrôler quelles applications peuvent accéder aux ressources).

Habituellement, vous devez soigneusement protéger les clés API (par exemple, en utilisant un service de coffre-fort ou en définissant les clés comme variables d'environnement) ; cependant, les clés API pour les services Firebase peuvent être incluses dans le code ou dans les fichiers de configuration archivés.

Bien que les clés API des services Firebase puissent être incluses en toute sécurité dans le code, il existe quelques cas spécifiques dans lesquels vous devez imposer des limites à votre clé API : par exemple, si vous utilisez Firebase ML, l'authentification Firebase avec la méthode de connexion par e-mail/mot de passe ou une API Google Cloud facturable. Apprenez-en davantage sur ces cas plus loin sur cette page.

Création de clés API

Un projet Firebase peut avoir plusieurs clés API, mais chaque clé API ne peut être associée qu'à un seul projet Firebase.

Clés API créées automatiquement par Firebase pour vos applications Firebase

Firebase crée automatiquement des clés API pour votre projet lorsque vous effectuez l'une des opérations suivantes :

  • Créer un projet Firebase > Browser key créée automatiquement
  • Créer une application Apple Firebase > iOS key créée automatiquement
  • Créer une application Android Firebase > Android key créée automatiquement

Vous pouvez également créer vos propres clés API dans la console Google Cloud , par exemple pour le développement ou le débogage . Apprenez-en davantage sur les cas où cela pourrait être recommandé plus loin sur cette page.

Trouver vos clés API

Vous pouvez afficher et gérer toutes les clés API de votre projet dans le panneau API et services > Identifiants de la console Google Cloud.

Vous pouvez également trouver quelle clé API est automatiquement mise en correspondance avec une application Firebase aux endroits suivants. Par défaut, toutes les applications Firebase de votre projet pour la même plate-forme (Apple vs Android vs Web) utiliseront la même clé API.

  • Firebase Apple Apps : recherchez la clé API à correspondance automatique d'une application dans le fichier de configuration Firebase, GoogleService-Info.plist , dans le champ API_KEY .

  • Applications Android Firebase : recherchez la clé API à correspondance automatique d'une application dans le fichier de configuration Firebase, google-services.json , dans le champ current_key .

  • Firebase Web Apps : recherchez la clé API à correspondance automatique d'une application dans l'objet de configuration Firebase, dans le champ apiKey .

Utiliser une clé API

Les clés API sont utilisées pour identifier votre projet Firebase lors de l'interaction avec les services Firebase/Google. Plus précisément, ils sont utilisés pour associer les requêtes API à votre projet pour le quota et la facturation. Ils sont également utiles pour accéder aux données publiques.

Par exemple, vous pouvez utiliser explicitement une clé API en transmettant sa valeur dans un appel API REST en tant que paramètre de requête. Cet exemple montre comment vous pouvez envoyer une requête à l' API de raccourcissement de liens Dynamic Links :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Lorsque votre application appelle une API Firebase, elle recherche automatiquement dans le fichier/objet de configuration Firebase la clé API de votre projet. Vous pouvez cependant définir vos clés API à l'aide d'un mécanisme différent, notamment des variables d'environnement.

Appliquer des restrictions aux clés API (recommandé)

Bien qu'il ne soit pas nécessaire de traiter une clé API pour les services Firebase comme secrète, il existe certains cas spécifiques (voir ci-dessous) dans lesquels vous souhaiterez peut-être prendre des mesures supplémentaires pour protéger votre projet contre une utilisation abusive de la clé API.

Renforcez le quota si vous utilisez l'authentification par mot de passe

Si vous utilisez l'authentification Firebase par mot de passe et que quelqu'un met la main sur votre clé API, il ne pourra accéder à aucune base de données de votre projet Firebase ni aux données Cloud Storage tant que ces données sont protégées par les règles de sécurité Firebase . Ils pourraient cependant utiliser votre clé API pour accéder aux points de terminaison d'authentification de Firebase et effectuer des demandes d'authentification sur votre projet.

Pour éviter la possibilité qu'une personne utilise à mauvais escient une clé API pour tenter une attaque par force brute, vous pouvez resserrer le quota par défaut des points de terminaison identitytoolkit.googleapis.com pour refléter les attentes normales de trafic de votre application. Sachez que si vous resserrez ce quota et que votre application gagne soudainement des utilisateurs, vous risquez d'obtenir des erreurs de connexion jusqu'à ce que vous augmentiez le quota. Vous pouvez modifier les quotas d'API de votre projet dans la console Google Cloud .

Utiliser des clés API distinctes et restreintes pour des types spécifiques d'API

Bien que les clés API utilisées pour les services Firebase ne doivent généralement pas être traitées comme secrètes, vous devez prendre des précautions supplémentaires avec les clés API utilisées pour accorder l'accès aux API Google Cloud que vous avez activées manuellement.

Si vous utilisez une API Google Cloud (sur n'importe quelle plate-forme) qui n'est pas automatiquement activée par Firebase (ce qui signifie que vous l'avez activée vous-même), vous devriez envisager de créer des clés API distinctes et restreintes à utiliser avec ces API. Ceci est particulièrement important si l'API est destinée à un service Google Cloud facturable.

Par exemple, si vous utilisez les API Cloud Vision de Firebase ML sur iOS, vous devez créer des clés API distinctes que vous utilisez uniquement pour accéder aux API Cloud Vision.

En utilisant des clés API distinctes et restreintes pour les API non Firebase, vous pouvez alterner ou remplacer les clés si nécessaire et ajouter des restrictions supplémentaires aux clés API sans interrompre votre utilisation des services Firebase.

Utiliser des clés API spécifiques à l'environnement (recommandé)

Si vous configurez différents projets Firebase pour différents environnements, tels que la préparation et la production, il est important que chaque instance d'application interagisse avec son projet Firebase correspondant. Par exemple, votre instance d'application intermédiaire ne doit jamais communiquer avec votre projet Firebase de production. Cela signifie également que votre application de préparation doit utiliser les clés API associées à votre projet de préparation Firebase.

Pour réduire les problèmes liés à la promotion des modifications de code du développement à la préparation puis à la production, au lieu d'inclure des clés API dans le code lui-même, définissez-les comme variables d'environnement ou incluez-les dans un fichier de configuration.

Notez que si vous utilisez Firebase Local Emulator Suite pour le développement avec Firebase ML, vous devez créer et utiliser une clé API de débogage uniquement. Les instructions pour créer ce type de clé se trouvent dans la documentation Firebase ML .

FAQ