Aperçu

L'association de comptes permet aux titulaires de comptes Google de se connecter rapidement, de manière transparente et en toute sécurité à vos services. Vous pouvez choisir de mettre en œuvre l'association de compte Google pour partager les données d'un utilisateur depuis votre plate-forme avec les applications et 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, permettant ainsi aux applications et aux appareils Google d'accéder à vos services.

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

Cas d'utilisation

Certaines des raisons de mettre en œuvre l'association de compte Google sont les suivantes:

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

  • Lisez vos vidéos et vos films à l'aide de Google TV .

  • Gérez et contrôlez les appareils connectés à Google Smart Home à l'aide de l'application Google Home et de l'Assistant Google, «Hey Google allume les lumières».

  • Créez des expériences et des fonctionnalités personnalisées pour l'Assistant Google avec les actions de conversation , "Hey Google, commandez mon habituel à Starbucks".

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

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

Fonctionnalités prises en charge

Ces fonctionnalités sont prises en charge par l'association de compte Google:

  • Partagez rapidement et facilement vos données à l'aide du flux implicite OAuth Linking .

  • Fournissez une sécurité améliorée avec le flux de code d'autorisation de liaison OAuth .

  • Connectez les utilisateurs existants ou inscrivez de nouveaux utilisateurs vérifiés par Google sur votre plate-forme, obtenez leur consentement et partagez des données en toute sécurité grâce à la liaison simplifiée .

  • Réduisez les frictions avec App Flip . À partir d'une application Google de confiance, un robinet ouvre en toute sécurité votre application Android ou iOS vérifiée et un robinet accorde le consentement de l'utilisateur et associe les comptes.

  • Améliorez la confidentialité des utilisateurs en définissant des portées personnalisées pour ne partager que les données nécessaires, augmentez la confiance des utilisateurs en définissant clairement comment leurs données sont utilisées.

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

Flux de liaison de compte

Il existe 3 flux d'association de comptes Google, tous basés sur OAuth et vous obligeant à gérer ou à contrôler les points de terminaison d'autorisation et d'échange de jetons conformes à 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 le consentement des titulaires de compte pour associer leurs comptes et partager des données.

Liaison OAuth ('Web OAuth')

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

OAuth Linking prend en charge le code d'autorisation et les flux OAuth implicites. Votre service doit héberger un point de terminaison d'autorisation compatible OAuth 2.0 pour le flux implicite et doit exposer à la fois un point de terminaison d'autorisation et d'échange de jetons lors de l'utilisation du flux de code d'autorisation.

Graphique 1 . Association de compte sur le téléphone d'un utilisateur avec Web OAuth

Liaison de basculement d'application basée sur OAuth ('App Flip')

Un flux OAuth qui envoie les utilisateurs vers votre application pour les associer.

L'application Flip Linking basée sur OAuth guide les utilisateurs lorsqu'ils se déplacent entre vos applications mobiles Android ou iOS vérifiées et la plate-forme de Google pour examiner les modifications d'accès aux données proposées et accorder leur consentement pour associer leur compte sur votre plate-forme à leur compte Google. Pour activer App Flip, votre service doit prendre en charge la liaison OAuth ou la liaison de connexion Google basée sur OAuth à l'aide du flux de code d'autorisation .

App Flip est pris en charge pour Android et iOS .

Comment ça fonctionne:

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

  • Si l'application est trouvée, l'utilisateur est «retourné» vers votre application. Votre application recueille le consentement de l'utilisateur pour associer le compte à Google, puis `` retourne '' à la surface de Google.
  • Si l'application n'est pas trouvée ou qu'une erreur se produit pendant le processus de liaison d'inversion d'application, l'utilisateur est redirigé vers le flux OAuth simplifié ou Web.

Graphique 2 . Association de compte sur le téléphone d'un utilisateur avec App Flip

Liens rationalisés basés sur OAuth («rationalisés»)

La connexion simplifiée à Google basée sur OAuth ajoute la connexion à Google en plus de la liaison OAuth, permettant aux utilisateurs de terminer le processus de liaison sans quitter la surface de Google, réduisant ainsi les frictions et les chutes. La liaison simplifiée basée sur OAuth offre la meilleure expérience utilisateur avec une connexion, une création de compte et une liaison de compte transparentes en combinant la connexion Google avec la liaison OAuth. Votre service doit prendre en charge les points de terminaison d'autorisation et d'échange de jetons conformes à OAuth 2.0. En outre, votre point de terminaison d'échange de jetons doit prendre en charge les assertions de jeton Web JSON (JWT) et implémenter les intentions de check , de create et d' get .

Comment ça fonctionne:

Google revendique le compte utilisateur et vous transmet ces informations:

  • S'il existe un compte pour l'utilisateur dans votre base de données, l'utilisateur associe avec succès son compte Google à son compte sur votre service.
  • si aucun compte n'existe pour l'utilisateur dans votre base de données, l'utilisateur peut soit créer un nouveau compte 3P avec les informations déclarées que Google fournit: e-mail, nom et photo de profil , soit choisir de se connecter et de se lier à un autre e-mail (cela les nécessitera pour vous connecter à votre service via Web OAuth).

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

Quel flux devez-vous utiliser?

Nous vous recommandons de mettre en œuvre tous les flux pour garantir aux utilisateurs la meilleure expérience de liaison. Les flux simplifiés et inversés de l'application réduisent les frictions de liaison, car les utilisateurs sont en mesure de terminer le processus de liaison en très peu d'étapes. La liaison Web OAuth a le niveau d'effort le plus bas et constitue un bon point de départ, après quoi vous pouvez ajouter les autres flux de liaison.

Travailler avec des jetons

L'association des comptes Google est basée sur la norme industrielle OAuth 2.0.

Vous émettez 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 avec Google

Nous aurons besoin des détails de votre configuration OAuth 2.0 et de partager les informations d'identification pour activer l'association de compte. Voir l' inscription pour plus de détails.