Découvrez comment utiliser et gérer les clés API pour Firebase.

Une clé API est une chaîne unique qui permet d'acheminer les requêtes vers votre projet lors de l'interaction avec Firebase et les services Google. Cette page décrit des informations de base sur les clés API, ainsi que les bonnes pratiques d'utilisation et et gérer les 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 standards

Contrairement à l'utilisation habituelle des clés API, les clés API pour les services Firebase sont ne sont pas utilisés pour contrôler l'accès aux ressources backend ; qui ne peut être fait avec Firebase Security Rules (pour contrôler quels utilisateurs finaux peuvent accéder aux ressources) et Firebase App Check (pour contrôler quelles applications peuvent accéder aux ressources)

En règle générale, vous devez protéger minutieusement les clés API (par exemple, en utilisant un service de coffre-fort ou en définissant les clés en tant que variables d'environnement). Toutefois, vous pouvez inclure les clés API des services Firebase dans le code ou les fichiers de configuration enregistrés.

Bien que les clés API pour les services Firebase puissent être incluses dans le code en toute sécurité, vous devez examiner et appliquer les restrictions et limites appropriées ;

Créer des clés API

Un projet Firebase peut avoir de nombreuses clés API, mais chaque clé API ne peut être associées à 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 suivantes:

  • Créer un projet Firebase > Browser key créée automatiquement
  • Créer une application Firebase pour Apple > 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 Console Google Cloud, par exemple pour le développement ou le débogage. Découvrez plus loin sur cette page les cas où cette option peut être recommandée.

Trouver vos clés API

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

Vous pouvez également voir quelle clé API est automatiquement associée à une l'application Firebase aux emplacements suivants. Par par défaut, toutes les applications Firebase de votre projet pour la même plate-forme (Apple ou Android ou Web) utiliseront la même clé API.

  • Applications Apple Firebase : recherchez la clé API mise en correspondance automatiquement dans le fichier de configuration Firebase, GoogleService-Info.plist, dans le champ API_KEY.

  • Applications Android Firebase : recherchez la clé API mise en correspondance automatiquement dans le fichier de configuration Firebase, google-services.json, dans le champ current_key.

  • Applications Web Firebase : recherchez la clé API associée automatiquement dans Firebase "config", dans le champ apiKey.

Utiliser une clé API

Les clés API permettent d'identifier votre projet Firebase lorsque vous interagissez avec les services Firebase/Google. Plus précisément, elles permettent d'associer des requêtes API à votre projet pour les quotas et la facturation. Elles 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 d'API REST en tant que paramètre de requête. Cet exemple montre comment effectuer une requête vers API Dynamic Links Link Shortener:

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

Lorsque votre application appelle une API Firebase qui nécessite une clé API par le client mobile/Web, votre application recherche automatiquement Fichier/objet de configuration Firebase pour la clé API de votre projet. Vous pouvez toutefois fournir des clés API pour votre application à l'aide d'un mécanisme différent, y compris des variables d'environnement.

Examiner et appliquer les restrictions appropriées aux clés API (recommandé)

Même s'il n'est pas nécessaire de traiter une clé API pour les services Firebase secret, vous devez examiner et appliquer les restrictions et limites décrites dans ce .

Vérifier les API automatiquement ajoutées à la liste d'autorisation pour vos clés API Firebase

Lorsque Firebase crée une clé API dans votre projet, nous ajoutons automatiquement "Restrictions relatives aux API" à cette clé. Les API ajoutées à cette liste d'autorisation sont des API liées à Firebase qui exigent que le client fournisse une clé API avec l'appel. Notez que la plupart des API requises pour utiliser les services Firebase n'ont pas besoin d'être sur la liste d'autorisation de vos clés API.

Étant donné que Firebase ajoute les API nécessaires à tous les services Firebase, la liste d'autorisation d'une clé API peut inclure des API pour des produits que vous n'utilisez pas. Vous pouvez supprimer des API de la liste d'autorisation, mais vous devez faire très attention à ne pas supprimer les API requises pour Firebase et les services Firebase que vous utilisez (voir la liste des API liées à Firebase à ajouter à la liste d'autorisation pour chaque service/produit). Sinon, vous rencontrerez des erreurs lorsque vous appellerez les services Firebase.

Renforcer le quota si vous utilisez des Authentication basés sur un mot de passe

Si vous utilisez des Firebase Authentication basés sur un mot de passe et que quelqu'un obtient l'accès à votre API il ne pourra pas accéder à la base de données de votre projet Firebase ou Cloud Storage à condition qu'elles soient protégées par Firebase Security Rules. Ils peuvent toutefois utiliser votre clé API pour accéder aux points de terminaison d'authentification de Firebase et envoyer des requêtes d'authentification à votre projet.

Pour réduire le risque qu'une personne utilise de manière abusive 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 afin qu'il reflète les attentes de trafic normales de votre application. Sachez que si vous resserrez ce quota et que votre application gagne soudainement des utilisateurs, vous risquez de rencontrer 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 limitées pour tout service autre que Firebase

Bien que les clés API utilisées pour les services Firebase ne doivent généralement pas être traitées comme des secrets, vous devez prendre des précautions supplémentaires avec les clés API que vous utilisez avec d'autres API Google Cloud.

Si vous utilisez une API Google Cloud (sur n'importe quelle plate-forme) qui ne concerne pas un service/produit Firebase, nous vous recommandons vivement de créer des clés API distinctes et limitées à utiliser avec ces API. Ceci est particulièrement important si l'API est destinée service Google Cloud facturable.

Par exemple, si vous utilisez Firebase ML et les API Cloud Vision sur iOS, vous devez créer des clés API distinctes que vous n'utilisez que permettant d'accéder aux API Cloud Vision.

En utilisant des clés API restreintes distinctes pour les API en dehors de Firebase, vous pouvez alterner ou remplacez les clés si nécessaire et ajoutez des restrictions supplémentaires à l'API. clés 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, par exemple de préproduction et de production, il est important que chaque instance d'application interagit avec ses projet Firebase correspondant. Par exemple, votre instance d'application de préproduction ne doit jamais communiquer avec votre projet Firebase de production. Cela signifie également que L'application de préproduction doit utiliser les clés API associées à votre projet Firebase de préproduction.

Pour réduire les problèmes de promotion des modifications de code du développement à l'environnement de préproduction, puis à la production, au lieu d'inclure des clés API dans le code lui-même, définissez-les en tant que 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 réservée au débogage. Instructions permettant de créer ce type de clé se trouvent Documentation sur Firebase ML

Questions fréquentes et dépannage

Questions fréquentes

Dépannage