Cette page explique comment configurer votre application ou votre jeu pour utiliser l'API Play Integrity. Vous devez activer les réponses de l'API, puis intégrer celle-ci dans votre application et dans son serveur backend. Des options de configuration, des fonctionnalités de test et des rapports supplémentaires deviennent disponibles une fois que vous associez le projet Google Cloud que vous utilisez pour l'API Play Integrity dans la Google Play Console.
Activer les réponses de l'API Play Integrity
Chaque application ou SDK qui appelle l'API Play Integrity doit utiliser un projet Google Cloud pour surveiller l'utilisation de l'API. Les applications sur Google Play peuvent associer un projet Cloud dans la Google Play Console pour activer les réponses de l'API Play Integrity. Si vous souhaitez créer un projet Cloud ou que votre application est distribuée exclusivement en dehors de Google Play, vous pouvez activer les réponses de l'API Play Integrity à partir de la console Google Cloud.
Configuration dans la Google Play Console (recommandée)
En activant les réponses de l'API Play Integrity dans la Google Play Console, vous avez accès à des options de configuration, des fonctionnalités de test et des rapports d'API supplémentaires. Cette option n'est disponible que pour les applications distribuées sur Google Play. Accédez à Publier > Intégrité de l'application. Sous API Play Integrity, sélectionnez Associer un projet Cloud. Sélectionnez le projet Cloud que vous souhaitez associer à votre application afin d'activer les réponses de l'API Play Integrity. Vous pouvez désormais intégrer l'API Play Integrity à votre application.
Configuration dans la console Google Cloud
Dans la console Google Cloud, créez un projet Cloud ou sélectionnez un projet Cloud existant que vous souhaitez utiliser avec l'API Play Integrity. Accédez à API et services. Sélectionnez Activer les API et les services. Recherchez l'API Play Integrity, puis activez-la. Vous pouvez désormais intégrer l'API Play Integrity à votre application.
Instructions de configuration pour les fournisseurs de SDK
Les fournisseurs de SDK doivent utiliser leur propre projet Google Cloud pour appeler l'API Play Integrity, de sorte que son utilisation soit attribuée au SDK et non à des applis individuelles qui l'utilisent. Autrement dit, les applis qui utilisent votre SDK n'ont pas besoin de configurer l'API Play Integrity et vos requêtes adressées à l'API Play Integrity sont automatiquement comptabilisées dans l'utilisation de l'API par votre SDK.
Vous pouvez activer les réponses de l'API Play Integrity depuis la console Google Cloud. Dans la console Google Cloud, créez un projet Cloud ou sélectionnez un projet Cloud existant que vous souhaitez utiliser avec l'API Play Integrity. Accédez à API et services. Sélectionnez Activer les API et les services. Recherchez l'API Play Integrity, puis activez-la. Vous pouvez désormais intégrer l'API Play Integrity à votre SDK.
Les fournisseurs de SDK qui souhaitent augmenter leur nombre maximal de requêtes quotidiennes doivent remplir le formulaire de demande de quota. Dans les commentaires facultatifs, merci d'indiquer que vous effectuez une demande d'augmentation pour votre SDK et d'inclure vos coordonnées Maven (groupId:artifactId
) ou une URL vers votre SDK.
Augmenter le nombre quotidien de requêtes API Play Integrity
Votre application sera soumise à une limite de 10 000 requêtes par jour au maximum. Vous pouvez demander à augmenter ce nombre maximal si votre application doit gérer un plus grand nombre d'utilisateurs. Pour cela, suivez les instructions ci-dessous.
Augmenter le nombre maximal de requêtes par jour
Pour pouvoir bénéficier d'une augmentation du nombre maximal de requêtes classiques par jour, votre application doit être disponible sur Google Play en plus de tout autre canal de distribution. Si votre application envoie des requêtes classiques, même avec une augmentation quotidienne maximale, vous devez continuer à limiter les appels d'API par utilisateur aux actions importantes et peu fréquentes pour préserver les données utilisateur et la batterie.
Pour demander une augmentation du nombre maximal de requêtes quotidiennes, procédez comme suit :
- Associez le projet Google Cloud que vous utilisez pour l'API Play Integrity dans la Play Console.
- Assurez-vous d'implémenter correctement la logique d'API, y compris la stratégie recommandée concernant les nouvelles tentatives.
- Demandez une augmentation de quota à l'aide de ce formulaire.
L'augmentation du quota de l'API Play Integrity peut prendre jusqu'à une semaine. Nous vous recommandons donc vivement de surveiller votre utilisation de cette API dans la Google Play Console ou dans la console Google Cloud, où vous pouvez également définir des alertes de quota pour éviter toute interruption de service.
Les augmentations de quota de requêtes classiques seront automatiquement appliquées à l'appel du client pour générer des jetons d'intégrité et à l'appel du serveur pour déchiffrer et vérifier les jetons d'intégrité. Les augmentations de quota de requêtes standards sont appliquées à l'appel du serveur pour déchiffrer et vérifier les jetons d'intégrité.
Intégrer l'API Play Integrity à votre application
Pour intégrer l'API Play Integrity à votre application ou à votre SDK, suivez l'une des méthodes ci-dessous, en fonction de votre environnement de développement :
Kotlin ou Java
La dernière bibliothèque Android pour l'API Play Integrity est disponible dans le dépôt Maven de Google.
Ajoutez la dépendance suivante au fichier build.gradle
de votre application :
implementation 'com.google.android.play:integrity:1.2.0'
Unity
Installez le plug-in Google Play Integrity for Unity version 1.1.0 ou ultérieure. Pour obtenir des instructions, consultez Installer les packages Google pour Unity.
- Toutes les versions 2019.x, 2020.x et ultérieures sont compatibles.
- Si vous utilisez Unity 2018.x, les versions 2018.4 et ultérieures sont compatibles.
- Si vous utilisez Unity 2017.x, les versions 2017.4 et ultérieures sont compatibles.
- Unity 5.x et les versions antérieures ne sont pas compatibles.
Natif
Installez le SDK Play Core natif 1.12.1 ou version ultérieure. Pour déterminer comment procéder, consultez le guide de configuration d'un environnement de développement de Play Core natif.
Configurer les réponses de l'API (facultatif)
Les réponses d'API suivantes sont renvoyées par défaut dans la réponse de l'API Play Integrity :
Réponse de l'API | Libellé | Description |
---|---|---|
Intégrité de l'appareil | MEETS_DEVICE_INTEGRITY |
L'appli est exécutée sur un appareil Android équipé des services Google Play. L'appareil a réussi les contrôles d'intégrité du système et respecte la configuration Android requise. |
Aucun libellé (valeur vide) | L'application est exécutée sur un appareil présentant des signes d'attaque (hook d'API, par exemple) ou un piratage du système (mode root, par exemple), ou elle n'est pas exécutée sur un appareil physique (un émulateur n'ayant pas réussi les contrôles d'intégrité de Google Play, par exemple). | |
Détails du compte | LICENSED |
L'utilisateur est autorisé à accéder à l'application. En d'autres termes, il a installé ou acheté votre application sur Google Play. L'utilisateur conserve les droits d'accès de l'application après sa désinstallation. Le compte de l'utilisateur est donc toujours concédé sous licence s'il récupère la même application par la suite. |
UNLICENSED |
L'utilisateur n'est pas autorisé à accéder à l'application. C'est par exemple le cas s'il télécharge votre application indépendamment ou sans passer par Google Play. | |
UNEVALUATED |
Les détails concernant la licence n'ont pas été examinés, car une condition requise n'a pas été respectée. Plusieurs raisons peuvent expliquer cette situation. Par exemple :
|
|
Intégrité de l'application | PLAY_RECOGNIZED |
L'application et le certificat correspondent aux versions distribuées par Google Play. |
UNRECOGNIZED_VERSION |
Le nom du certificat ou du package ne correspond pas aux données dont Google Play dispose. | |
UNEVALUATED |
L'intégrité de l'application n'a pas été examinée. Une condition requise n'a pas été respectée (l'appareil n'est pas suffisamment fiable, par exemple). |
Dans la Play Console, vous pouvez choisir de recevoir les réponses d'API supplémentaires suivantes :
Réponse de l'API | Libellé | Description |
---|---|---|
Intégrité de l'appareil | MEETS_BASIC_INTEGRITY |
L'appli est exécutée sur un appareil qui réussit les contrôles d'intégrité de base du système. Cet appareil ne respecte peut-être pas la configuration Android requise et n'est éventuellement pas autorisé à exécuter les services Google Play. Par exemple, il est possible que l'appareil exécute une version non reconnue d'Android, qu'il utilise un bootloader déverrouillé ou qu'il n'ait pas été certifié par le fabricant. |
MEETS_STRONG_INTEGRITY |
L'application est exécutée sur un appareil Android équipé des services Google Play et offre une bonne garantie de l'intégrité du système, telle qu'une preuve matérielle de l'intégrité du démarrage. L'appareil a réussi les contrôles d'intégrité du système et respecte la configuration Android requise. |
Dès lors que vous avez accepté de recevoir des libellés supplémentaires, la réponse sur l'intégrité de l'appareil inclut plusieurs libellés pour le même appareil, à condition que chacun des critères applicables aux libellés soit respecté. Vous pouvez préparer votre serveur backend à adopter un comportement différent selon l'éventail de réponses possibles. Par exemple, un appareil qui renvoie MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
et MEETS_BASIC_INTEGRITY
peut être considéré comme plus sûr qu'un appareil qui ne renvoie que MEETS_BASIC_INTEGRITY
. La manière dont votre serveur répond peut donc être personnalisée en conséquence.
Si vous distribuez l'application sur Google Play Jeux pour PC, vous recevrez automatiquement la réponse d'API suivante :
Réponse de l'API | Libellé | Description |
---|---|---|
Intégrité de l'appareil | MEETS_VIRTUAL_INTEGRITY |
L'application est exécutée sur un émulateur Android équipé des services Google Play. L'émulateur réussit les contrôles d'intégrité du système et respecte la configuration Android requise. |
Pour modifier vos réponses d'API, accédez à la Play Console, puis à Publier > Intégrité de l'application. Sous Réponses, apportez les modifications souhaitées et enregistrez-les. Cette option n'est disponible que pour les applis disponibles sur Google Play et nécessite d'associer le projet Cloud que vous utilisez avec l'API Play Integrity dans la Play Console.
Configurer les paramètres des requêtes classiques (facultatif)
Ignorez cette section si vous prévoyez uniquement d'envoyer des requêtes API standards.
Lorsque vous effectuez des requêtes classiques, les serveurs de Google Play gèrent par défaut le chiffrement des réponses utilisé par votre application lorsque vous interagissez avec l'API Play Integrity. Bien que nous vous recommandions d'utiliser cette option par défaut, vous pouvez également choisir de gérer et de télécharger vos clés de chiffrement de réponse en suivant les instructions ci-dessous.
Laisser Google gérer le chiffrement des réponses (option par défaut recommandée)
Pour protéger la sécurité de votre application, nous vous recommandons d'autoriser Google à générer et à gérer vos clés de chiffrement de réponse. Votre serveur backend appellera le serveur Google Play pour déchiffrer les réponses.
Gérer et télécharger vos clés de chiffrement de réponse
Si vous souhaitez déchiffrer l'évaluation de l'intégrité en local dans votre propre environnement de serveur sécurisé, vous pouvez gérer et télécharger vos clés de chiffrement de réponse. Pour gérer et télécharger vos clés de chiffrement de réponse, vous devez utiliser la Play Console. Votre application doit aussi être disponible sur Google Play en plus de tous les autres canaux de distribution. Suivez les instructions ci-dessous pour passer de clés de chiffrement de réponse gérées par Google à des clés autogérées.
Veillez à ne pas déchiffrer ni vérifier le jeton reçu à partir de votre application cliente. Veillez également à ne jamais exposer de clés de déchiffrement à l'application cliente.
Avant de modifier votre stratégie de gestion du chiffrement des réponses dans la Play Console, assurez-vous que votre serveur est correctement configuré pour déchiffrer et vérifier les jetons d'intégrité sur les serveurs de Google Play afin d'éviter toute interruption.
Basculer entre les clés de chiffrement de réponse gérées par Google et les clés gérées par vous-même
Si Google gère actuellement le chiffrement des réponses et que vous souhaitez gérer et télécharger vos clés de chiffrement vous-même, procédez comme suit :
- Connectez-vous à la Play Console.
- Sélectionnez une application qui utilise l'API Play Integrity.
- Dans la section Publier du menu de gauche, accédez à Intégrité de l'application.
- À côté de l'option API Play Integrity, cliquez sur Paramètres.
- Dans la section Requêtes classiques de la page, cliquez sur Modifier à côté de l'option Chiffrement de réponse.
- Dans la fenêtre qui s'affiche, cliquez sur Gérer et télécharger mes clés de chiffrement de réponse.
- Suivez les instructions d'importation d'une clé publique.
- Une fois que la fenêtre indique que l'importation a réussi, cliquez sur Enregistrer pour télécharger automatiquement vos clés chiffrées.
- Modifiez la logique du serveur pour déchiffrer et vérifier les jetons d'intégrité en local, dans votre propre environnement de serveur sécurisé, à l'aide de vos clés de chiffrement de réponse.
- (Facultatif) Le fait que vous gériez et téléchargiez vous-même vos clés de chiffrement de réponse n'empêche pas votre application de faire appel aux serveurs Google Play pour déchiffrer et vérifier la réponse.
Si vous gérez vous-même vos clés de chiffrement de réponse et souhaitez que Google gère le chiffrement des réponses, procédez comme suit :
- Modifiez la logique du serveur de façon à ce que le déchiffrement et la vérification des réponses aient uniquement lieu sur les serveurs de Google.
- Connectez-vous à la Play Console.
- Sélectionnez une application qui utilise l'API Play Integrity.
- Dans la section Publier du menu de gauche, accédez à Intégrité de l'application.
- À côté de l'option API Play Integrity, cliquez sur Paramètres.
- Dans la section Requêtes classiques de la page, cliquez sur Modifier à côté de l'option Chiffrement de réponse.
- Dans la fenêtre qui s'affiche, cliquez sur Laisser Google gérer mon chiffrement de réponse (recommandé).
- Cliquez sur Enregistrer les modifications.