Association de comptes Google avec le transfert d'application OAuth

基于 OAuth 的应用快速关联 (App Flip) 关联功能可让用户快速将其在您的身份验证系统中的账号关联到其 Google 账号。 如果用户在发起账户关联过程时手机上已安装您的应用,系统会顺畅地将他们转到您的应用以获取用户授权。

这种方法可提供更快的账户关联过程,因为用户无需重新输入用户名和密码进行身份验证;相反,App Flip 会利用用户在您的应用中的账号凭据。用户将其 Google 账号与您的应用关联后,便可利用您开发的任何集成。

您可以为 iOS 和 Android 应用设置 App Flip。

此图显示了用户将其 Google 账号与您的身份验证系统相关联的步骤。第一张屏幕截图显示了用户如何选择您的应用(如果其 Google 账号已与您的应用相关联)。第二张屏幕截图显示了用户将其 Google 账号与您的应用相关联的确认信息。第三张屏幕截图显示了 Google 应用中已成功关联的用户账号。
图 1.用户手机上使用 App Flip 进行账号关联。

要求

如需实现 App Flip,您必须满足以下要求:

  • 您必须拥有 Android 或 iOS 应用。
  • 您必须拥有、管理和维护支持 OAuth 2.0 授权代码流程的 OAuth 2.0 服务器。

基于 OAuth 的 App Flip 流程

以下序列图详细说明了用户、Google 应用、您的应用和您的授权服务器之间针对 App Flip 的交互。

用户 Google 应用 您的应用 Google 服务器 您的授权 服务器 1. 发起关联 2. 深层链接到您的应用 3. 显示意见征求屏幕 4. 用户授予意见征求 5. 获取授权代码 6. authorization_code 7. 返回到 Google 应用 8. 将代码传递给 Google 服务器 9. 令牌交换 (POST) 10. access_token, refresh_token 11. 存储用户令牌 12. 访问用户资源
图 2.App Flip 流程中的事件序列。 如果提供了授权代码,则令牌交换将以 服务器到服务器的方式进行,与基于浏览器的 OAuth 关联流程中的方式相同。

角色和职责

下表定义了 App Flip 流程中执行者的角色和职责。

执行者 / 组件 GAL 角色 职责
Google 应用 / 服务器 OAuth 客户端 发起账户关联过程,触发到您的移动应用深层链接,将授权代码交换为令牌,并安全地存储这些令牌以访问您服务的 API。
您的应用 授权代理 对用户进行身份验证(通常使用现有应用凭据), 获取意见征求,并从您的服务器检索授权代码。
您的授权服务器 授权服务器 验证授权代码和刷新令牌,并向 Google 服务器颁发访问 令牌。

Principes de conception

Cette section décrit les exigences et les recommandations de conception pour l'écran de consentement à l'association de compte App Flip. Une fois que Google a appelé votre application, celle-ci affiche l'écran de consentement à l'utilisateur.

Conditions requises

  1. Vous devez indiquer que le compte de l'utilisateur est associé à Google, et non à un produit Google spécifique, tel que Google Home ou l'Assistant Google.

Recommandations

Nous vous recommandons d'effectuer les opérations suivantes :

  1. Affichez les règles de confidentialité de Google. Incluez un lien vers les Règles de confidentialité de Google sur l'écran de consentement.

  2. Données à partager : Utilisez un langage clair et concis pour indiquer à l'utilisateur les données dont Google a besoin et pourquoi.

  3. Incitation à l'action claire : Indiquez clairement l'incitation à l'action sur votre écran de consentement, par exemple "Accepter et associer". En effet, les utilisateurs doivent comprendre quelles données ils doivent partager avec Google pour associer leurs comptes.

  4. Possibilité de refuser ou d'annuler Fournissez aux utilisateurs un moyen de revenir en arrière, de refuser ou d'annuler s'ils choisissent de ne pas associer leur compte.

  5. Possibilité de dissocier le compte. Offrez aux utilisateurs un mécanisme pour dissocier leur compte, par exemple une URL vers les paramètres de leur compte sur votre plate-forme. Vous pouvez également inclure un lien vers le compte Google où les utilisateurs peuvent gérer leur compte associé.

  6. Possibilité de modifier le compte utilisateur Suggérez aux utilisateurs une méthode pour changer de compte. Cela est particulièrement utile si les utilisateurs ont tendance à posséder plusieurs comptes.

    • Si un utilisateur doit fermer l'écran d'autorisation pour changer de compte, envoyez une erreur récupérable à Google afin qu'il puisse se connecter au compte souhaité avec l'association OAuth et le flux implicite.
  7. Incluez votre logo. Affichez le logo de votre entreprise sur l'écran de consentement. Utilisez vos consignes de style pour placer votre logo. Si vous souhaitez également afficher le logo de Google, consultez Logos et marques déposées.

Cette figure montre un exemple d'écran de consentement avec des encadrés indiquant les exigences et recommandations individuelles à suivre lorsque vous concevez un écran de consentement utilisateur.
Figure 2. Consignes de conception de l'écran d'autorisation pour l'association de comptes.

Implémenter App Flip dans vos applications

Pour implémenter App Flip, vous devez modifier le code d'autorisation de l'utilisateur dans votre application afin d'accepter un lien profond de Google.

Pour prendre en charge App Flip dans votre application Android, suivez les instructions du guide d'implémentation Android.

Pour prendre en charge App Flip dans votre application iOS, suivez les instructions du guide d'implémentation iOS.

Tester l'app flip

Vous pouvez simuler l'échange d'applications à l'aide d'applications exemples et de test avant de disposer d'applications de production validées et d'un serveur OAuth 2.0 fonctionnel.

Lors du changement d'application, une application Google ouvre d'abord votre application, qui demande ensuite une réponse de code d'autorisation à votre serveur OAuth 2.0. Lors de la dernière étape, la réponse est renvoyée à l'application Google.

Prérequis

Pour simuler une application Google et déclencher l'intent qui lance votre application, téléchargez et installez l'outil de test App Flip pour Android et iOS.

Téléchargez et installez l'exemple App Flip pour Android et iOS afin de simuler votre application et de sélectionner un type de réponse OAuth 2.0.

Séquence de test

  1. Ouvrez l'outil de test App Flip.
  2. Appuyez sur Try Flip! pour lancer l'application exemple App Flip.
  3. Sélectionnez une réponse parmi les boutons radio de l'application exemple.
  4. Appuyez sur Send pour renvoyer une réponse OAuth 2.0 simulée à l'outil de test.
  5. Consultez les messages du journal de l'outil de test pour obtenir un auth_code ou des informations sur les erreurs.

Tests en production

Vous pouvez tester App Flip en production après avoir terminé l'enregistrement et l'implémentation de votre serveur OAuth 2.0.

Il est recommandé d'utiliser un seul compte Google et une adresse e-mail spécifique à la tâche pour les tests automatisés.

L'état de l'association de comptes peut être consulté dans la section Comptes associés lorsque vous êtes connecté en tant que titulaire du compte Google. Vous pouvez également dissocier les comptes entre les tests répétés.

Vous pouvez éventuellement choisir d'implémenter RISC pour dissocier le compte de manière programmatique et informer Google de la modification.