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 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 classiques

Contrairement à l'utilisation habituelle des clés API, 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 Firebase Security Rules (pour contrôler les utilisateurs finaux pouvant accéder aux ressources) et Firebase App Check (pour contrôler les applications pouvant accéder aux ressources).

En règle générale, vous devez protéger rapidement les clés API (par exemple, à l'aide d'un service Vault ou en définissant les clés comme variables d'environnement) ; Toutefois, Vous pouvez inclure les clés API pour les services Firebase dans le code ou dans la configuration enregistrée .

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 comporter 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 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 pour 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. En savoir plus sur lorsque cela peut ê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 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 associée automatiquement dans Firebase GoogleService-Info.plist, dans le fichier API_KEY.

  • Applications Android Firebase : recherchez la clé API associée automatiquement dans le fichier de configuration Firebase, google-services.json, dans 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 lors de l'interaction avec Services Firebase/Google. Plus précisément, ils sont utilisés pour associer les requêtes API avec 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 en ce qui concerne l'environnement variables.

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

Bien qu'il ne soit pas nécessaire de traiter une clé API pour les services Firebase comme un secret, vous devez examiner et appliquer les restrictions et les limites décrites dans cette section.

Examinez les API ajoutées automatiquement à 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 exiger que le client fournisse une clé API avec l'appel. Notez que la plupart des Les API requises pour utiliser les services Firebase n'ont pas besoin de se trouver sur le pour 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 veiller à ne pas supprimer les API requises pour Firebase et les services Firebase que vous utilisez ; (consultez les liste des API associées à Firebase qui doivent figurer sur la liste d'autorisation de chaque service / produit). Sinon, vous des erreurs s'afficheront lors des appels vers les services Firebase.

Augmenter le quota si vous utilisez des Authentication avec 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. Il peut toutefois utiliser votre clé API pour accéder les points de terminaison d'authentification de Firebase et envoyer des requêtes d'authentification votre projet.

Afin de limiter le risque qu'une personne fasse un usage abusif d'une clé API pour une attaque par force brute, vous pouvez resserrer le quota par défaut du identitytoolkit.googleapis.com points de terminaison pour refléter le trafic normal les attentes vis-à-vis de votre application. Sachez que si vous augmentez ce quota et que votre application augmente 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 le Console Google Cloud.

Utilisez des clés API distinctes et restreintes pour tous les services en dehors de Firebase

Bien que les clés API utilisées pour les services Firebase n'aient généralement pas besoin d'être traitées secrètes, 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 n'est pas conçue pour Firebase service ou produit, nous vous recommandons vivement de créer des clés API distinctes et restreintes pour les 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'utiliserez que pour 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. Ainsi, l'instance d'application de préproduction doit ne communiquera jamais 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 liés à la promotion des modifications du code, du développement à la préproduction production, au lieu d'inclure les clés API dans le code lui-même, vous pouvez soit les définir des variables d'environnement ou les inclure 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. Pour savoir comment créer ce type de clé, consultez la documentation Firebase ML.

Questions fréquentes et dépannage

Questions fréquentes

Dépannage