Présentation

L'association de comptes 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 comptes Google pour partager les données d'un utilisateur de 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, et ainsi autoriser les applications et appareils Google à accéder à vos services.

Les utilisateurs peuvent associer ou dissocier leurs comptes, et éventuellement en créer un autre sur votre plate-forme à l'aide de l'association du compte Google.

Cas d'utilisation

Vous pouvez implémenter l'association du compte Google pour les raisons suivantes:

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

  • Regardez vos contenus vidéo et cinématographiques via 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 la lumière".

  • Créez des expériences et des fonctionnalités personnalisées pour l'Assistant Google avec les actions de conversation, "Hey Google, commande ce que je prends d'habitude chez Starbucks".

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

  • Préremplir les nouveaux comptes lors de l'inscription avec les données partagées consensuellement à partir d'un profil de compte Google

Fonctionnalités compatibles

Les fonctionnalités suivantes sont compatibles avec l'association du compte Google:

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

  • Renforcez la sécurité grâce au flux Code d'autorisation de l'association OAuth.

  • Connectez des 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 grâce à l'association simplifiée.

  • Réduisez les frictions grâce au retournement d'application. Dans une application Google de confiance, un seul geste suffit pour ouvrir de manière sécurisée votre application Android ou iOS validée, puis accorder le consentement de l'utilisateur et associer les comptes d'un seul geste.

  • 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 manière 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 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 initiés par Google, tandis que la protection multicompte (RISC) vous permet d'informer Google de tout événement de dissociation survenant sur votre plate-forme.

Flux d'association de comptes

Il existe trois flux d'association de comptes Google, qui sont tous basés sur OAuth et que vous devez 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 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 accepte de partager ses données avec Google sur votre service. Le compte Google de l'utilisateur et votre service sont alors associés.

L'association OAuth est compatible avec les flux de 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 doit exposer à la fois un point de terminaison d'autorisation et d'échange de jetons lorsque vous utilisez le flux de code d'autorisation.

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

Association de retournement d'application basée sur OAuth

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

La association de conversion d'application basée sur OAuth guide les utilisateurs lorsqu'ils passent de vos applications mobiles Android ou iOS validées à la plate-forme Google afin qu'ils examinent les modifications proposées concernant l'accès aux données et acceptent d'associer leur compte sur votre plate-forme à leur compte Google. Pour activer le retournement d'application, votre service doit être compatible avec l'association OAuth ou l'association Google Sign-In basée sur OAuth à l'aide du flux de code d'autorisation.

App Flip est compatible avec Android et iOS.

Comment ça marche ?

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

  • Si l 'application est trouvée, l'utilisateur est redirigé vers votre application. Celle-ci recueille son consentement pour associer son compte à Google, puis revient à la surface Google.
  • Si l'application est introuvable ou qu'une erreur se produit pendant le processus d'association d'application flip, l'utilisateur est redirigé vers le flux Web OAuth ou simplifié.

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

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

L'association rationalisée Google Sign-In basée sur OAuth ajoute Google Sign-In à l'association OAuth, ce qui permet aux utilisateurs d'effectuer l'association sans quitter la surface Google, ce qui réduit les frictions et les abandons. L'association rationalisée basée sur OAuth offre une expérience utilisateur optimale en combinant Google Sign-In et OAuth. Votre service doit être compatible avec les points de terminaison d'autorisation et d'échange de jetons conformes à OAuth 2.0. De plus, le point de terminaison d'échange de jetons doit accepter les assertions de jeton Web JSON (JWT) et implémenter les intents check, create et get.

Comment ça marche ?

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

  • Si un compte existe pour l'utilisateur dans votre base de données, l'utilisateur associe bien 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 compte tiers avec les informations déclarées fournies par Google (adresse e-mail, nom et photo de profil), soit choisir de se connecter et d'associer l'adresse e-mail (il devra alors se connecter à votre service via Web OAuth).

Image 3. Associer des comptes sur le téléphone d'un utilisateur avec l'association simplifiée

Quelle procédure devez-vous utiliser ?

Nous vous recommandons de mettre en œuvre tous les flux pour garantir aux utilisateurs la meilleure expérience d'association possible. Les flux rationalisés et App Flip permettent de simplifier l'association, car les utilisateurs peuvent effectuer le processus d'association en quelques étapes. L'association Web avec OAuth représente le niveau d'effort le plus faible et constitue un bon point de départ pour compléter les autres procédures d'association.

Utiliser des jetons

L'association du compte Google est basée sur la norme du secteur OAuth 2.0.

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

Pour activer l'association de comptes, nous aurons besoin d'informations sur votre configuration OAuth 2.0 et de partager vos identifiants. Pour en savoir plus, consultez la page sur l'inscription.