Sélectionnez la 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 recherche un jeton auprès d'un fournisseur d'attestation tel que Play Integrity. L'intégration de vos applications à App Check permet de vous protéger contre les requêtes malveillantes et d'éviter les frais liés aux 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 :

  • Vous utilisez le SDK Places d'origine. App Check n'est compatible qu'avec le SDK Places (nouveau).
  • 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 (tels que des applications mobiles), envisagez d'utiliser App Check pour protéger ce serveur au lieu de GMP.
  • Les fournisseurs d'attestation recommandés par App Check ne fonctionnent pas sur les appareils considérés comme compromis ou non fiables par votre fournisseur d'attestation. Si vous devez prendre en charge ces appareils, vous pouvez déployer un service d'attestation personnalisé. Pour en savoir plus, consultez les instructions.

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.
  4. Activez le débogage.
  5. Surveillez les requêtes de votre application et décidez de l'application.

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 fournissent une répartition des requêtes en fonction de la présence ou non d'un jeton App Check valide. Pour en savoir plus, consultez la documentation de Firebase App Check.

Lorsque vous êtes sûr que la plupart des requêtes proviennent de sources légitimes et que les utilisateurs ont installé la dernière version de votre application incluant 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 lors de la planification de votre intégration :

  • Le fournisseur d'attestation que nous recommandons, Play Integrity, est soumis à une limite d'appels quotidienne pour son niveau d'utilisation de l'API standard. Pour en savoir plus sur les limites d'appels, consultez la page Configuration de la documentation pour les développeurs Google Play Integrity.

    Vous pouvez également choisir d'utiliser un fournisseur d'attestation personnalisé, bien qu'il s'agisse d'un cas d'utilisation avancé. Pour en savoir plus, consultez Implémenter un fournisseur App Check personnalisé.

  • Les utilisateurs de votre application constateront une certaine latence au démarrage. Toutefois, par la suite, toute nouvelle attestation périodique aura lieu en arrière-plan et les utilisateurs ne devraient plus constater 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 durée de vie ou TTL) détermine la fréquence des nouvelles attestations. Cette durée peut être configurée dans la console Firebase. La réattestation a lieu lorsque environ la moitié de la valeur TTL 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 le SDK Places version 4.1 ou ultérieure intégrée.
  • L'empreinte SHA-256 de votre application.
  • Nom du package de votre application.
  • Vous devez être le propriétaire de l'application dans la console Cloud.
  • Vous aurez besoin de l'ID du projet de l'application dans la console Cloud.

Étape 1 : Ajouter Firebase à votre application

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

Étape 2 : Ajouter la bibliothèque App Check et initialiser App Check

Pour en savoir plus sur l'utilisation de Play Integrity, le fournisseur d'attestation par défaut, consultez Premiers pas avec App Check et Play Integrity sur Android.

  1. Si ce n'est pas déjà fait, intégrez le SDK Places à votre application.
  2. Ensuite, initialisez App Check et le client Places.

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

Étape 3 : Ajouter le fournisseur de jetons

Après avoir initialisé l'API Places, appelez setPlacesAppCheckTokenProvider() pour définir le PlacesAppCheckTokenProvider.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

Voici un exemple d'implémentation de l'interface de récupération de jetons :

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

Étape 4 : Activer 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 exécuter votre application dans un émulateur ou sur un appareil de test :

  • Ajoutez la bibliothèque App Check à votre fichier build.gradle.
  • Configurez App Check pour qu'il utilise la fabrique de fournisseurs de débogage dans votre version de débogage.
  • Lancez l'application, ce qui créera un jeton de débogage local. 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 :

  • Créez un jeton de débogage dans la console Firebase et ajoutez-le au magasin de clés sécurisé de votre système d'intégration continue.
  • Ajoutez la bibliothèque App Check à votre fichier build.gradle.
  • Configurez votre variante de compilation d'intégration continue pour qu'elle utilise le jeton de débogage.
  • Encapsulez le code dans vos classes de test qui nécessitent un jeton App Check avec DebugAppCheckTestHelper.
  • Pour en savoir plus et obtenir des instructions, consultez la documentation App Check.

Étape 5 : Surveiller les requêtes de votre application et décider de l'application

Avant de commencer l'application, assurez-vous 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 validé, obsolète ou illégitime. Une fois que vous constatez que la majorité de votre trafic est validée, vous pouvez activer l'application.

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