Aperçu

L'association de compte permet aux titulaires de compte Google de se connecter à vos services de manière rapide, fluide et sécurisée. Vous pouvez choisir de mettre en œuvre l'association de compte Google pour partager les données d'un utilisateur de votre plate-forme avec les applications et les services Google.

Le protocole sécurisé OAuth 2.0 vous permet d'associer en toute sécurité le compte Google d'un utilisateur à son compte sur votre plate-forme, et d'accorder ainsi à vos applications et appareils Google l'accès à vos services.

Les utilisateurs peuvent associer ou dissocier leurs comptes et éventuellement créer un compte sur votre plate-forme avec l'association de comptes Google.

Cas d'utilisation

Voici quelques-unes des raisons pour lesquelles l'association de comptes Google peut être mise en œuvre:

  • Partagez les données d'un utilisateur de votre plate-forme avec les applications et les services Google.

  • Lire des vidéos et des films à l'aide de Google TV

  • Gérez et contrôlez vos appareils connectés Google Smart Home à l'aide de l'application Google Home et de l'Assistant Google "Hey Google allume la lumière".

  • Créez des expériences et des fonctionnalités personnalisées avec l'Assistant Google grâce aux actions de conversation, dites "Hey Google, commande-moi chez Starbucks".

  • Permettez aux utilisateurs de gagner des récompenses en regardant les diffusions en direct éligibles sur YouTube après avoir associé leur compte Google à un compte partenaire avec récompense.

  • Préremplir les nouveaux comptes lors de l'inscription avec des données partagées de manière consensuelle issues d'un profil de compte Google.

Fonctionnalités disponibles

Les fonctionnalités suivantes sont compatibles avec l'association de comptes Google:

  • Partagez vos données rapidement et facilement à l'aide du parcours d'association OAuth.

  • Améliorez la sécurité avec le flux du code d'autorisation de l'association OAuth.

  • Connectez les utilisateurs existants ou inscrivez de nouveaux utilisateurs validés par Google à votre plate-forme, obtenez leur consentement et partagez des données de manière sécurisée avec l'association simplifiée.

  • Améliorer la fluidité avec App Flip. À partir d'une application Google de confiance, une pression du doigt ouvre de manière sécurisée l'application Android ou iOS validée, et une pression donne au consentement de l'utilisateur et associe les comptes.

  • Améliorez la confidentialité des utilisateurs en définissant des champs d'application personnalisés pour ne partager que les données nécessaires, et renforcez la confiance des utilisateurs en définissant clairement la façon dont leurs données sont utilisées.

  • L'accès aux données et aux services hébergés sur votre plate-forme peut être révoqué en dissociant des comptes. La mise en œuvre d'un point de terminaison de révocation de jetons facultatif vous permet de rester synchronisé avec les événements initiés par Google, tout en appliquant la fonctionnalité de protection multicompte (RISC). vous permet d'informer Google de tout événement de dissociation qui se produit sur votre plate-forme.

Flux d'association de comptes

Trois flux d'association de comptes Google sont tous basés sur OAuth. Vous devez alors gérer ou contrôler les autorisations et les points de terminaison d'échange de jetons conformes à la norme OAuth 2.0.

Au cours du processus d'association, vous émettez des jetons d'accès à Google pour des comptes Google individuels après avoir obtenu l'autorisation du titulaire du compte pour associer ses comptes et partager des données.

Association OAuth ("Web OAuth")

Il s'agit du flux OAuth de base qui redirige les utilisateurs vers votre site Web pour l'association. L'utilisateur est redirigé vers votre site Web pour se connecter à son compte. Une fois connecté, l'utilisateur accepte de partager ses données avec Google dans le cadre de votre service. À ce stade, le compte Google de l'utilisateur et votre service sont associés.

L'association OAuth est compatible avec le code d'autorisation et les flux OAuth implicites. Votre service doit héberger un point de terminaison d'autorisation conforme à la norme OAuth 2.0 pour le parcours implicite, et exposer à la fois un point de terminaison d'autorisation et un point de terminaison d'échange de jetons lors de l'utilisation du flux de code d'autorisation.

Figure 1. Associer un compte sur le téléphone d'un utilisateur via le protocole Web OAuth

Association du Flip App basé sur OAuth ("Flip App")

un flux OAuth qui redirige les utilisateurs vers votre application pour l'association.

Association du Flip App basé sur OAuth guide les utilisateurs lorsqu'ils passent de vos applications mobiles Android ou iOS validées à la plate-forme Google, à examiner les modifications proposées concernant l'accès aux données et à autoriser leur association sur leur plate-forme à leur compte Google. Pour activer le basculement d'application, votre service doit prendre en chargeAssociation OAuth ouAssociation à Google Sign-In basée sur OAuth à l'aide de la propriétécode d'autorisation Flux.

App Flip est compatible avec Android et iOS.

Fonctionnement:

L'appli Google vérifie si votre application est installée sur l'appareil de l'utilisateur:

  • Si l'application est détectée, l'utilisateur est redirigé vers celle-ci. Votre application demande l'autorisation de l'utilisateur pour associer le compte à Google, puis "retourne" sur la surface Google.
  • Si l'application est introuvable ou si une erreur se produit lors du processus d'association de l'application, l'utilisateur est redirigé vers la procédure simplifiée ou Web OAuth.

Figure 2. Associer un compte sur le téléphone d'un utilisateur avec App Flip

Association simplifiée basée sur OAuth ("Simplifiée")

L'association simplifiée avec Google Sign-In par Google ajoute Google Sign-In à la liaison OAuth, ce qui permet aux utilisateurs de terminer l'association sans quitter la surface Google, réduisant ainsi les frictions et les abandons. L'association simplifiée basée sur OAuth offre la meilleure expérience utilisateur avec une connexion, une création et une association de compte fluides en associant Google Sign-In et l'association OAuth. Votre service doit être compatible avec les autorisations OAuth 2.0 et les points de terminaison d'échange de jetons. En outre, votre point de terminaison d'échange de jetons doit être compatible avec les assertions JWT (Web Token) et mettre en œuvre le check,create, et get.

Fonctionnement:

Google valide le compte utilisateur et vous transmet les informations suivantes:

  • Si un compte existe pour cet utilisateur dans votre base de données, l'utilisateur associe correctement son compte Google au compte de votre service.
  • Si aucun compte n'existe pour cet utilisateur dans votre base de données, il peut créer un compte tiers avec les informations fournies par Google (adresse e-mail, nom et photo de profil), ou choisir de se connecter et d'associer l'adresse e-mail au compte Une autre adresse e-mail (pour cela, l'utilisateur doit se connecter à votre service via le protocole Web OAuth).

Figure 3. Association de compte sur le téléphone d'un utilisateur avec l'association simplifiée

Quel flux utiliser ?

Nous vous recommandons de mettre en œuvre tous les parcours afin de garantir aux utilisateurs la meilleure expérience d'association. Les flux simplifiés et les processus inversés pour les applications réduisent les frictions liées à l'association, car les utilisateurs peuvent suivre le processus d'association en quelques étapes seulement. L'association OAuth Web nécessite le plus petit effort, et c'est la solution idéale pour commencer et ajouter les autres flux d'association.

Utiliser des jetons

L'association de comptes Google est basée sur le standard OAuth 2.0.

Vous devez émettre des jetons d'accès à Google pour des comptes Google individuels après avoir obtenu le consentement des titulaires de compte pour associer leurs comptes et partager des données.

Types de jetons

OAuth 2.0 utilise des chaînes appelées jetons pour communiquer entre l'agent utilisateur, l'application cliente et le serveur OAuth 2.0.

Trois types de jetons OAuth 2.0 peuvent être utilisés lors de la liaison de compte:

  • Code d'autorisation . Un jeton de courte durée qui peut être échangé contre un accès et un jeton d'actualisation. Pour des raisons de sécurité, Google appelle votre point de terminaison d'autorisation pour obtenir un code à usage unique ou de très courte durée.

  • Jeton d'accès . Un jeton qui accorde au porteur l'accès à une ressource. Pour limiter l'exposition qui pourrait résulter de la perte de ce jeton, il a une durée de vie limitée, expirant généralement au bout d'une heure environ.

  • Actualiser le jeton . Un jeton de longue durée qui peut être échangé contre un nouveau jeton d'accès lorsqu'un jeton d'accès expire. Lorsque votre service s'intègre à Google, ce jeton est exclusivement stocké et utilisé par Google. Google appelle votre point de terminaison d'échange de jetons pour échanger des jetons d'actualisation contre des jetons d'accès, qui sont à leur tour utilisés pour accéder aux données utilisateur.

Gestion des jetons

Les conditions de concurrence dans les environnements en cluster et les échanges client-serveur peuvent entraîner des scénarios complexes de synchronisation et de gestion des erreurs lors de l'utilisation de jetons. Par example:

  • Vous recevez une demande de nouveau jeton d'accès et vous émettez un nouveau jeton d'accès. En même temps, vous recevez une demande d'accès à la ressource de votre service à l'aide du jeton d'accès précédent, non expiré.
  • La réponse de votre jeton d'actualisation n'a pas encore été reçue (ou n'est jamais reçue) par Google. Pendant ce temps, le jeton d'actualisation précédemment valide est utilisé dans une demande de Google.

Les demandes et les réponses peuvent arriver dans n'importe quel ordre, ou pas du tout en raison de services asynchrones s'exécutant dans un cluster, du comportement du réseau ou d'autres moyens.

Un état partagé immédiat et parfaitement cohérent à la fois dans et entre vos systèmes de gestion des jetons et ceux de Google ne peut pas être garanti. Plusieurs jetons valides et non expirés peuvent coexister dans ou entre les systèmes sur une courte période de temps. Pour minimiser l'impact négatif sur l'utilisateur, nous vous recommandons de procéder comme suit:

  • Acceptez les jetons d'accès non expirés, même après l'émission d'un jeton plus récent.
  • Utilisez des alternatives à Actualiser la rotation des jetons .
  • Prend en charge plusieurs jetons d'accès et d'actualisation valides simultanément. Pour des raisons de sécurité, vous devez limiter le nombre de jetons et la durée de vie des jetons.
Maintenance et gestion des pannes

Pendant la maintenance ou les pannes imprévues, Google peut ne pas être en mesure d'appeler vos points de terminaison d'autorisation ou d'échange de jetons pour obtenir des jetons d'accès et d'actualisation.

Vos points de terminaison doivent répondre avec un code d'erreur 503 et un corps vide. Dans ce cas, les nouvelles tentatives de Google ont échoué aux demandes d'échange de jetons pendant une durée limitée. À condition que Google puisse ultérieurement obtenir des jetons d'actualisation et d'accès, les demandes ayant échoué ne sont pas visibles pour les utilisateurs.

L'échec des demandes de jeton d'accès entraîne une erreur visible, si elle est initiée par un utilisateur. Les utilisateurs devront réessayer les échecs de liaison si le flux OAuth 2.0 implicite est utilisé.

Recommandations

Il existe de nombreuses solutions pour minimiser l'impact de la maintenance. Quelques options à considérer:

  • Maintenez votre service existant et acheminez un nombre limité de demandes vers votre service nouvellement mis à jour. Migrez toutes les demandes uniquement après avoir confirmé la fonctionnalité attendue.

  • Réduisez le nombre de demandes de jetons pendant la période de maintenance:

    • Limitez les périodes de maintenance à moins que la durée de vie du jeton d'accès.

    • Augmentez temporairement la durée de vie du jeton d'accès:

      1. Augmentez la durée de vie du jeton au-delà de la période de maintenance.
      2. Attendez deux fois la durée de vie de votre jeton d'accès, ce qui permet aux utilisateurs d'échanger des jetons de courte durée contre des jetons de plus longue durée.
      3. Entrez dans la maintenance.
      4. Répondez aux demandes de jetons avec un code d'erreur 503 et un corps vide.
      5. Quittez la maintenance.
      6. Réduisez la durée de vie du jeton à la normale.

S'inscrire auprès de Google

Vous aurez besoin des détails de votre configuration OAuth 2.0 et de partager vos identifiants pour activer l'association de compte. Pour en savoir plus, consultez la section Inscription.