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

Une clé API est une chaîne unique utilisée pour acheminer les requêtes vers votre projet Firebase lorsque vous interagissez avec les services Firebase et Google. Cette page fournit des informations de base sur les clés API, ainsi que des bonnes pratiques pour les utiliser et les gérer 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 pour les services Firebase ne sont pas utilisées pour contrôler l'accès aux ressources de backend. Cela ne peut être fait qu'avec Firebase Security Rules (pour contrôler les utilisateurs finaux qui peuvent accéder aux ressources) et Firebase App Check (pour contrôler les applications qui peuvent accéder aux ressources).

En règle générale, vous devez protéger soigneusement les clés API (par exemple, en utilisant un service de coffre-fort 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 les fichiers de configuration enregistrés.

Bien qu'il soit possible d'inclure des clés API pour les services Firebase dans le code, vous devez les examiner et leur 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 opérations suivantes :

  • Créer un projet Firebase > Browser key créé 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. Vous en saurez plus sur les cas où cette option peut être recommandée 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 la clé API qui est automatiquement associée à une application Firebase aux emplacements suivants. Par défaut, toutes les applications Firebase de votre projet pour la même plate-forme (Apple, Android ou Web) utiliseront la même clé API.

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

  • Applications Android Firebase : recherchez la clé API associée 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 l'objet de configuration Firebase, 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. L'exemple suivant montre comment envoyer une requête à l'API de raccourcisseur de liens Dynamic Links :

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

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

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.

Examiner 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 des restrictions d'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 l'utilisation des services Firebase n'ont pas besoin d'être ajoutées à la liste d'autorisation de vos clés API.

Étant donné que Firebase ajoute les API nécessaires pour 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 (consultez la liste des API liées à Firebase qui doivent figurer dans la liste d'autorisation pour chaque service / produit). Sinon, vous obtiendrez des erreurs lorsque vous appellerez les services Firebase.

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

Si vous utilisez Firebase Authentication basé sur un mot de passe et que quelqu'un s'empare de votre clé API, il ne pourra pas accéder aux données de la base de données ou Cloud Storage de votre projet Firebase tant que ces données sont protégées par Firebase Security Rules. Toutefois, il pourrait 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 éviter qu'une personne n'utilise une clé API de manière abusive pour tenter une attaque par force brute, vous pouvez réduire le quota par défaut des points de terminaison identitytoolkit.googleapis.com afin de refléter les attentes normales de trafic de votre application. Sachez que si vous réduisez 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 n'aient généralement pas besoin d'ê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 n'est pas destinée à un service ou produit Firebase, nous vous recommandons vivement de créer des clés API distinctes et restreintes pour l'utiliser avec ces API. Cela est particulièrement important si l'API concerne un 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 distinctes et restreintes pour les API non Firebase, vous pouvez les faire tourner ou les remplacer si nécessaire, et ajouter des restrictions supplémentaires aux clés API sans perturber 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éproduction et la production, il est important que chaque instance d'application interagisse avec le projet Firebase correspondant. Par exemple, l'instance de votre application de préproduction ne doit jamais communiquer avec votre projet Firebase de production. Cela signifie également que votre 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 de code du développement à la préproduction, puis à la production, au lieu d'inclure les 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. 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