Premiers pas avec App Check avec Play Integrity sur Android

Cette page vous explique comment activer App Check dans une application Android à l'aide du fournisseur Play Integrity intégré. Lorsque vous activez App Check, vous contribuez à garantir que seule votre application peut accéder aux ressources de backend de votre projet. Consultez la présentation de cette fonctionnalité.

Le fournisseur Play Integrity est compatible avec les applications Android publiées sur Google Play, en dehors de Google Play ou les deux. Si votre cas d'utilisation nécessite des fonctionnalités Play Integrity non implémentées par App Check, ou si vous souhaitez utiliser App Check avec votre propre fournisseur personnalisé, consultez Implémenter un fournisseur App Check personnalisé.

1. Configurer votre projet Firebase

  1. Ajoutez Firebase à votre projet Android si ce n'est pas déjà fait.

  2. Activez l'API Play Integrity :

    1. Dans la Google Play Console, sélectionnez votre application ou ajoutez-la si vous ne l'avez pas déjà fait.

    2. Dans la section Publier, cliquez sur Intégrité de l'application.

    3. Accédez à la section API Play Integrity de la page, cliquez sur Associer un projet Cloud, puis sélectionnez votre projet Firebase dans la liste des projets Google Cloud. Le projet que vous sélectionnez ici doit être le même projet Firebase que celui dans lequel vous enregistrez votre application (voir l'étape suivante).

  3. Dans la console Firebase, accédez à Sécurité > App Check.

  4. Dans l'onglet Applications, enregistrez vos applications pour utiliser App Check avec le fournisseur Play Integrity. Vous devrez fournir l'empreinte SHA-256 du certificat de signature de votre application.

    Vous devez généralement enregistrer toutes les applications de votre projet, car une fois que vous avez activé l'application pour un produit Firebase, seules les applications enregistrées peuvent accéder aux ressources de backend du produit.

  5. Facultatif : définissez la valeur TTL (Time to Live) du jeton.

    Dans les paramètres d'enregistrement de l'application, définissez une valeur TTL (Time To Live) personnalisée pour les jetons App Check émis par le fournisseur. Vous pouvez définir la valeur TTL sur n'importe quelle valeur comprise entre 30 minutes et 7 jours. Lorsque vous modifiez cette valeur, tenez compte des compromis suivants :

    • Sécurité : des valeurs TTL plus courtes offrent une sécurité renforcée, car elles réduisent la période pendant laquelle un pirate informatique peut utiliser un jeton divulgué ou intercepté.
    • Performances : des valeurs TTL plus courtes signifient que votre application effectuera l'attestation plus fréquemment. Étant donné que le processus d'attestation d'application ajoute de la latence aux requêtes réseau chaque fois qu'il est exécuté, une valeur TTL courte peut avoir un impact sur les performances de votre application.
    • Quota et coût : des TTL plus courts et une réattestation fréquente épuisent votre quota plus rapidement et, pour les services payants, peuvent potentiellement coûter plus cher. Consultez la page Quotas et limites.

    La valeur TTL par défaut de 1 heure est raisonnable pour la plupart des applications. Notez que la bibliothèque App Check actualise les jetons à environ la moitié de la durée de la valeur TTL.

Configurer les paramètres avancés (facultatif)

App Check propose un certain nombre de paramètres pour prendre en charge des cas d'utilisation avancés, y compris la distribution de votre application en dehors de Google Play. Pour chacune de vos applications Android enregistrées, vous pouvez configurer ces paramètres dans l'onglet App Check > Applications de la console Firebase. Nous vous recommandons de configurer ces paramètres conformément au tableau suivant lorsque vous enregistrez votre application pour la première fois.

Canal de distribution de votre application PLAY_RECOGNIZED LICENSED Niveau minimal d'intégrité de l'appareil acceptable
En exclusivité sur Google Play Obligatoire Obligatoire Ne pas vérifier explicitement le niveau d'intégrité de l'appareil
Exclusivement en dehors de Google Play Non requis Non requis Intégrité de l'appareil
Sur Google Play et en dehors de Google Play Obligatoire Non requis Ne pas vérifier explicitement le niveau d'intégrité de l'appareil

Détails

Chaque paramètre avancé correspond à un libellé de verdict Play Integrity. Pour en savoir plus, consultez la documentation sur Play Integrity.

  • Par défaut, App Check nécessite le libellé de reconnaissance d'application PLAY_RECOGNIZED. Les applications qui ne sont pas publiées sur Google Play ne peuvent pas recevoir ce badge.
  • Par défaut, App Check ne nécessite pas le libellé d'attribution de licences d'application LICENSED. Seuls les utilisateurs qui ont installé ou mis à jour votre application directement depuis Google Play peuvent recevoir ce libellé.
  • Par défaut, App Check ne vérifie pas explicitement le verdict d'intégrité de l'appareil. App Check permet de vérifier explicitement les trois niveaux d'intégrité de l'appareil suivants, classés par ordre croissant d'intégrité de l'appareil.

    • Intégrité de base. Force App Check à exiger le libellé de reconnaissance d'appareil MEETS_BASIC_INTEGRITY. Pour que votre application puisse recevoir ce libellé facultatif, vous devez d'abord activer l'option dans la Google Play Console.

    • Intégrité de l'appareil. Force App Check à exiger le libellé de reconnaissance d'appareil MEETS_DEVICE_INTEGRITY. Toutes les applications sont automatiquement éligibles à ce badge.

    • Intégrité forte. Force App Check à exiger le libellé de reconnaissance d'appareil MEETS_STRONG_INTEGRITY. Pour que votre application puisse recevoir ce libellé facultatif, vous devez d'abord activer l'option dans la Google Play Console.

2. Ajouter la bibliothèque App Check à votre application

Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle), ajoutez la dépendance pour la bibliothèque App Check pour Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler la gestion des versions de la bibliothèque.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.2"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

Avec la Firebase Android BoM, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

(Alternative)  Ajouter des dépendances de bibliothèque Firebase sans utiliser la BoM

Si vous choisissez de ne pas utiliser la Firebase BoM, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.

Si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions des bibliothèques, ce qui garantit que toutes les versions sont compatibles.

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:20.0.0")
}

3. Initialiser App Check

Ajoutez le code d'initialisation suivant à votre application afin qu'il s'exécute avant d'utiliser d'autres SDK Firebase :

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

Étapes suivantes

Une fois la bibliothèque App Check installée dans votre application, commencez à distribuer l'application mise à jour à vos utilisateurs.

L'application cliente mise à jour commencera à envoyer des jetons App Check avec chaque requête qu'elle envoie à Firebase, mais les produits Firebase n'exigeront pas que les jetons soient valides tant que vous n'aurez pas activé l'application dans la section App Check de la console Firebase.

Surveiller les métriques et activer l'application des règles

Toutefois, avant d'activer la mesure d'application, vous devez vous assurer que cela ne perturbera pas vos utilisateurs légitimes existants. En revanche, si vous constatez une utilisation suspecte des ressources de votre application, vous pouvez activer l'application plus tôt.

Pour vous aider à prendre cette décision, vous pouvez examiner les métriques App Check des services que vous utilisez :

Activer l'application de App Check

Une fois que vous avez compris l'impact de App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application de App Check :

Utiliser App Check dans les environnements de débogage

Si, après avoir enregistré votre application pour App Check, vous souhaitez l'exécuter dans un environnement que App Check ne classerait normalement pas comme valide, par exemple un émulateur pendant le développement ou un environnement d'intégration continue (CI), vous pouvez créer une version de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'un véritable fournisseur d'attestation.

Consultez Utiliser App Check avec le fournisseur de débogage sur Android.