Sélectionnez une plate-forme : Android iOS JavaScript

Utiliser App Check pour sécuriser votre clé API

Firebase App Check protège les appels de votre application à Google Maps Platform en bloquant le trafic provenant de sources autres que des applications légitimes. Pour ce faire, il vérifie la présence d'un jeton provenant d'un fournisseur d'attestation tel que reCAPTCHA Enterprise. L'intégration de vos applications à App Check vous aide à vous protéger contre les requêtes malveillantes, afin que vous ne soyez pas facturé pour des appels d'API non autorisés.

App Check est-il adapté à mes besoins ?

App Check est recommandé dans la plupart des cas. Toutefois, il n'est pas nécessaire ou n'est pas compatible dans les cas suivants :

  • Applications privées ou expérimentales. Si votre application n'est pas accessible au public, App Check n'est pas nécessaire.
  • Si votre application n'est utilisée que de serveur à serveur, App Check n'est pas nécessaire. Toutefois, si le serveur qui communique avec GMP est utilisé par des clients publics (comme des applications mobiles), envisagez d'utiliser App Check pour protéger ce serveur au lieu de GMP.

Présentation des étapes d'implémentation

De manière générale, voici les étapes à suivre pour intégrer votre application à App Check :

  1. Ajoutez Firebase à votre application.
  2. Ajoutez et initialisez la bibliothèque App Check.
  3. Ajoutez le fournisseur de jetons à votre application.
  4. Initialisez les API Maps JS et App Check.
  5. Activez le débogage.
  6. Surveillez les demandes de votre application et décidez de l'application des règles.

Une fois l'intégration à App Check effectuée, vous pourrez consulter les métriques de trafic du backend dans la console Firebase. Ces métriques permettent de répartir les demandes selon qu'elles sont accompagnées ou non d'un jeton App Check valide. Pour en savoir plus, consultez la documentation Firebase App Check.

Lorsque vous êtes sûr que la plupart des requêtes proviennent de sources légitimes et que les utilisateurs ont mis à jour leur application vers la dernière version qui inclut votre implémentation d'App Check, vous pouvez activer l'application. Une fois l'application activée, App Check refusera tout le trafic sans jeton App Check valide.

Éléments à prendre en compte lors de la planification d'une intégration App Check

Voici quelques éléments à prendre en compte lorsque vous planifiez votre intégration :

  • L'un des fournisseurs d'attestation que nous recommandons, reCAPTCHA Enterprise,facture les évaluations au-delà de 10 000 par mois.

    L'autre fournisseur d'attestation que nous recommandons, reCAPTCHA v3, est soumis à un quota au-delà duquel le trafic n'est pas évalué.

    Vous pouvez choisir d'utiliser un fournisseur d'attestation personnalisé, mais il s'agit d'un cas d'utilisation avancé. Pour en savoir plus, consultez la documentation sur App Check.

  • Les utilisateurs de votre application rencontreront une certaine latence au démarrage. Toutefois, par la suite, toute réattestation périodique se fera en arrière-plan et les utilisateurs ne devraient plus rencontrer de latence. La latence exacte au démarrage dépend du fournisseur d'attestation que vous choisissez.

    La durée de validité du jeton App Check (la valeur TTL) détermine la fréquence des réattestations. Cette durée peut être configurée dans la console Firebase. La réattestation se produit lorsqu'environ la moitié de la valeur TTL s'est écoulée. Pour en savoir plus, consultez la documentation Firebase de votre fournisseur d'attestation.

Intégrer votre application à App Check

Prérequis et exigences

  • Une application avec la dernière version hebdomadaire ou trimestrielle de l'API Maps JS et les bibliothèques Core chargées.
  • Un projet Cloud avec l'API Maps JavaScript activée.
  • Vous devez être le propriétaire de l'application dans la console Cloud.
  • Vous aurez besoin de l'ID du projet de l'application, disponible dans la console Cloud.

Étape 1 : Ajoutez Firebase à votre application

Suivez les instructions de la documentation pour les développeurs Firebase afin d'ajouter Firebase à votre application.

Étape 2 : Ajoutez la bibliothèque App Check et initialisez App Check

Firebase fournit des instructions pour chaque fournisseur d'attestation par défaut. Ces instructions vous montrent comment configurer un projet Firebase et ajouter la bibliothèque App Check à votre application. Suivez les exemples de code fournis pour initialiser App Check.

Étape 3 : Charger les bibliothèques de l'API Maps JavaScript

  1. Chargez les bibliothèques Core et Maps, comme indiqué dans l'extrait de code suivant. Pour en savoir plus et obtenir des instructions, consultez la documentation de l'API Maps JavaScript.

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
    }  

Étape 4 : Initialisez les API Maps et App Check

  1. Initialisez App Check à l'aide de la configuration fournie par la console Firebase.
  2. Assurez-vous que les requêtes envoyées à l'API Maps JavaScript sont accompagnées de jetons App Check :
      import {initializeApp} from 'firebase/app';
      import {
        getToken,
        initializeAppCheck,
        ReCaptchaEnterpriseProvider,
      } from 'firebase/app-check';
        
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

Étape 5 : Activez le débogage (facultatif)

Si vous souhaitez développer et tester votre application localement, ou l'exécuter dans un environnement d'intégration continue (CI), vous pouvez créer une version de débogage de votre application qui utilise un secret de débogage pour obtenir des jetons App Check valides. Cela vous permet d'éviter d'utiliser de vrais fournisseurs d'attestation dans votre version de débogage.

Pour tester votre application en local :

  • Activez le fournisseur de débogage à des fins de développement.
  • Vous recevrez un UUID4 aléatoire généré automatiquement (appelé "jeton de débogage" dans la documentation App Check) à partir des journaux de débogage du SDK. Ajoutez ce jeton à la console Firebase.
  • Pour en savoir plus et obtenir des instructions, consultez la documentation App Check.

Pour exécuter votre application dans un environnement d'intégration continue :

  • Générez un UUID4 aléatoire à partir de la console Firebase.
  • Ajoutez l'UUID4 en tant que jeton de débogage, puis copiez-le dans un secret store auquel les tests CI accéderont à chaque exécution de test.
  • Pour en savoir plus et obtenir des instructions, consultez la documentation App Check.

Étape 6 : Surveillez les demandes d'application et décidez des mesures à prendre

Avant de commencer à appliquer les règles, vous devez vous assurer de ne pas perturber les utilisateurs légitimes de votre application. Pour ce faire, accédez à l'écran des métriques App Check pour voir le pourcentage de trafic de votre application qui est vérifié, obsolète ou illégitime. Une fois que vous constatez que la majorité de votre trafic est validé, vous pouvez activer l'application.

Pour en savoir plus et obtenir des instructions, consultez la documentation sur Firebase App Check.