Aperçu

L'association de comptes permet aux titulaires de compte Google de se connecter rapidement et de manière sécurisée à vos services. Vous pouvez activer l'association de comptes 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 le compte Google d'un utilisateur à son compte sur votre plate-forme en toute sécurité, et ainsi d'autoriser les applications et appareils Google à accéder à 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 certaines des raisons pour lesquelles l'association de comptes Google peut vous être utile:

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

  • regarder des vidéos et des films avec Google TV ;

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

  • Créer des fonctionnalités et des expériences personnalisées avec l'Assistant Google grâce aux actions conversationnelles, &Hey Google, commander mes produits habituels auprès de Starbucks"

  • Une fois votre compte Google associé à un compte partenaire de récompenses, les utilisateurs peuvent gagner des récompenses en regardant des diffusions en direct éligibles sur YouTube.

  • Préremplir les nouveaux comptes lors de l'inscription en utilisant les données partagées de manière consensuelle à partir d'un profil de compte Google

Fonctionnalités disponibles

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

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

  • Améliorez la sécurité grâce au code d'autorisation d'association OAuth.

  • Connecter les utilisateurs existants ou les nouveaux utilisateurs validés par Google à votre plate-forme afin d'obtenir leur consentement et de partager des données de manière sécurisée avec l'association simplifiée.

  • Fluidifiez l'expérience utilisateur grâce à la fonctionnalité App Flip. Depuis une appli Google de confiance, d'un simple geste, vous ouvrez en toute sécurité votre application Android ou iOS validée, et un geste permet d'accorder le consentement de l'utilisateur et d'associer les comptes.

  • Renforcer la confidentialité des utilisateurs en définissant des champs d'application personnalisés pour ne partager que les données nécessaires, renforcer la confiance des utilisateurs en définissant clairement l'utilisation de leurs données

  • L'accès aux données et aux services hébergés sur votre plate-forme peut être révoqué en dissociant les 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, tandis que la protection multicompte (RISC) vous permet d'informer Google de tout événement de dissociation qui se produit sur votre plate-forme.

Parcours d'association de compte

Il existe trois flux Google d'association de comptes, qui sont tous basés sur OAuth. Ils nécessitent de gérer ou de contrôler les points de terminaison d'autorisation et d'échange de jetons OAuth 2.0.

Au cours du processus d'association, vous attribuez des jetons d'accès à Google pour des comptes Google individuels après avoir obtenu l'autorisation des titulaires de compte d'associer leurs comptes et de 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 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 avec votre service avec Google. Le compte Google de l'utilisateur et votre service sont alors 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 à OAuth 2.0 pour le flux implicite, et exposer à la fois un point de terminaison d'autorisation et d'échange de jetons lors du flux de code d'autorisation.

Figure 1. Associer des comptes sur le téléphone d'un utilisateur avec le protocole Web OAuth

App Flip Association basée sur OAuth (cApp Flip')

Flux OAuth qui redirige les utilisateurs vers votre application pour l'associer.

L'association de l'application d'OAuth permet aux utilisateurs de passer d'une application mobile Android ou iOS validée à la plate-forme Google afin d'examiner les modifications proposées concernant l'accès aux données et d'accorder leur consentement pour associer leur compte à la plate-forme de leur compte Google. Pour activer le changement d'application, votre service doit être compatible avec les associations OAuth ou les associations Google Sign-In basées sur OAuth à l'aide du flux de code d'autorisation.

App Flip est compatible avec Android et iOS.

Fonctionnement:

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

  • Si l'application est détectée, l'utilisateur est redirigé vers votre application. Celle-ci recueille le consentement de l'utilisateur pour associer le compte à Google, puis retourne à la surface Google.
  • Si l'application est introuvable ou qu'une erreur se produit lors du retournement de l'application, l'utilisateur est redirigé vers le flux OAuth ou Web OAuth.

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

Association simplifiée basée sur OAuth ('Streamled')

L'association Google Sign-In simplifiée basée sur OAuth ajoute la fonctionnalité Google Sign-In en plus de l'association OAuth, ce qui permet aux utilisateurs de terminer le processus d'association sans quitter la surface Google, ce qui réduit les obstacles et les abandons. En associant Google Sign-In à l'association OAuth, la fonctionnalité Association simplifiée OAuth offre la meilleure expérience utilisateur possible. Votre service doit être compatible avec les points de terminaison d'autorisation et d'échange de jetons OAuth 2.0. De plus, le point de terminaison de votre échange de jetons doit prendre en charge les assertions JSON Web Token, et implémenter les intents check, create et get.

Fonctionnement:

Google revendique le compte utilisateur et vous transmet ces informations:

  • Si l'utilisateur se sert de votre compte dans votre base de données, il associe bien son compte Google à votre compte sur votre service.
  • Si l'utilisateur ne dispose d'aucun compte pour votre base de données, il peut créer un compte tiers avec les informations revendiquées de Google : adresse e-mail, nom et photo de profil, ou choisir de se connecter avec une autre adresse e-mail (ce qui nécessitera de se connecter au service via le protocole Web OAuth).

Figure 3. Association de comptes 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 flux afin d'offrir aux utilisateurs la meilleure expérience d'association possible. Les parcours simplifiés et d'adaptation de l'application réduisent les obstacles, car les utilisateurs peuvent effectuer le processus d'association en quelques étapes seulement. L'association avec le protocole Web OAuth demande le moins d'efforts et constitue un bon point de départ pour l'ajouter ensuite aux autres flux d'association.

Utiliser des jetons

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

Vous fournissez des jetons d'accès à Google pour des comptes Google individuels après avoir obtenu l'autorisation des titulaires de compte d'associer leurs comptes et de 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

Nous avons besoin des détails de la configuration d'OAuth 2.0 et du partage d'identifiants pour activer l'association de compte. Pour en savoir plus, consultez les inscriptions.