Qu'est-ce que l'ID d'instance ?

L'ID d'instance fournit un identifiant unique par instance de vos applications. Vous pouvez implémenter un ID d'instance pour les applications Android et iOS, ainsi que pour les applications/extensions Chrome.

Principales fonctionnalités

En plus de fournir des identifiants uniques pour l'authentification, l'ID d'instance peut générer des jetons de sécurité à utiliser avec d'autres services. Les autres fonctionnalités incluent:

Générer des jetons de sécurité

L'ID d'instance fournit une API simple permettant de générer des jetons de sécurité qui autorisent des tiers à accéder aux ressources gérées côté serveur de votre application.

Vérifier l'authenticité de l'application

Transmettez des jetons d'ID d'instance à votre serveur et utilisez le service d'ID d'instance pour vérifier le nom du package de l'application et vérifier s'il a une signature valide. La vérification des jetons à l'aide du service cloud d'ID d'instance permet d'identifier les applications connues. Pour réduire les coûts et les communications aller-retour redondantes, configurez votre serveur pour stocker ces jetons afin que la vérification ne soit nécessaire qu'une seule fois. En cas de problème de sécurité, votre application peut supprimer des jetons ou l'ID d'instance proprement dit, et en générer de nouveaux. En outre, le serveur d'ID d'instance lance l'actualisation du jeton ou de l'ID d'instance s'il détecte des bugs ou des problèmes de sécurité.

Confirmer que l'appareil est actif

Le serveur d'ID d'instance peut vous indiquer quand l'appareil sur lequel votre application est installée a été utilisé pour la dernière fois. Utilisez cette option pour décider si vous souhaitez conserver les données de votre application ou envoyer un message push pour réengager vos utilisateurs.

Identifier et suivre des applications

L'ID d'instance est unique parmi toutes les instances d'application à travers le monde. Votre base de données peut donc l'utiliser pour identifier et suivre de manière unique les instances d'application. Votre code côté serveur peut vérifier, via le service cloud d'ID d'instance, qu'un ID d'instance est authentique et identique à celui de l'application d'origine enregistrée sur votre serveur. Pour des raisons de confidentialité, votre application peut supprimer un ID d'instance afin qu'il ne soit plus associé à aucun historique de la base de données. La prochaine fois que votre application appellera un ID d'instance, elle obtiendra un tout nouvel ID d'instance sans lien avec le précédent.

Cycle de vie des ID d'instance

  1. Le service d'ID d'instance émet un InstanceID lorsque votre application se connecte. InstanceID repose sur une paire de clés publique/privée, avec la clé privée stockée sur l'appareil local et la clé publique enregistrée auprès du service d'ID d'instance.
  2. Votre application peut demander une nouvelle InstanceID si nécessaire à l'aide de la méthode getID(). Votre application peut la stocker sur votre serveur si vous en avez un compatible avec votre application.
  3. Votre application peut demander des jetons au service d'ID d'instance si nécessaire à l'aide de la méthode getToken() et, comme InstanceID, elle peut également stocker des jetons sur votre propre serveur. Tous les jetons émis pour votre application appartiennent à l'InstanceID de l'application.
  4. Les jetons sont uniques et sécurisés, mais votre application ou le service d'ID d'instance devra peut-être actualiser les jetons en cas de problème de sécurité ou lorsqu'un utilisateur désinstalle et réinstalle votre application lors de la restauration de l'appareil. Votre application doit implémenter un écouteur pour répondre aux requêtes d'actualisation de jetons du service d'ID d'instance.

Cycle de vie des ID d'instance

Implémentation client

L'ID d'instance s'exécute à la fois sur Android et sur iOS. Pour utiliser chacune d'elles, vous devez inclure la bibliothèque appropriée dans votre application cliente. Android nécessite les services Google Play. Si vous avez l'intention de générer des jetons, vous aurez besoin d'un ID de projet généré par la Google Developers Console.

Pour obtenir des instructions détaillées, consultez les guides d'implémentation Android et iOS.