Vinculação da Conta do Google com o App Flip baseado em 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 服务器颁发访问 令牌。

Diretrizes de design

Esta seção descreve os requisitos e as recomendações de design para a tela de consentimento da vinculação de contas do App Flip. Depois que o Google chamar seu app, ele vai mostrar a tela de consentimento ao usuário.

Requisitos

  1. Você precisa informar que a conta do usuário está sendo vinculada ao Google, não a um produto específico, como o Google Home ou o Google Assistente.

Recomendações

Portanto, recomendamos que você faça o seguinte:

  1. Mostrar a Política de Privacidade do Google. Inclua um link para a Política de Privacidade do Google na tela de consentimento.

  2. Dados que serão compartilhados. Use uma linguagem clara e concisa para informar ao usuário quais dados dele o Google exige e por quê.

  3. Call-to-action clara. Inclua uma call-to-action clara na tela de permissão, como "Concordar e vincular". Isso porque os usuários precisam entender quais dados são obrigatórios para compartilhar com o Google e vincular as contas.

  4. Capacidade de negar ou cancelar. Ofereça uma maneira para os usuários voltarem, negarem ou cancelarem, caso não queiram vincular.

  5. Capacidade de desvincular. Ofereça um mecanismo para os usuários desvincularem, como um URL para as configurações da conta na sua plataforma. Como alternativa, inclua um link para a Conta do Google, onde os usuários podem gerenciar a conta vinculada.

  6. Capacidade de mudar a conta de usuário. Sugira um método para os usuários trocarem de conta. Isso é especialmente útil se os usuários costumam ter várias contas.

    • Se um usuário precisar fechar a tela de permissão para trocar de conta, envie um erro recuperável ao Google para que ele possa fazer login na conta desejada com a vinculação do OAuth e o fluxo implícito.
  7. Inclua seu logotipo. Mostre o logotipo da sua empresa na tela de consentimento. Use as diretrizes de estilo para posicionar seu logotipo. Se você também quiser mostrar o logotipo do Google, consulte Logotipos e marcas registradas.

Esta figura mostra um exemplo de tela de consentimento com destaques para os requisitos e recomendações individuais a serem seguidos ao projetar uma tela de consentimento do usuário.
Figura 2. Diretrizes de design da tela de consentimento para vinculação de contas.

Implementar a vinculação no app nos seus apps

Para implementar a vinculação no app, modifique o código de autorização do usuário no app para aceitar um link direto do Google.

Para oferecer suporte à vinculação no app no seu app Android, siga as instruções no guia de implementação do Android.

Para oferecer suporte à vinculação no app no seu app iOS, siga as instruções no guia de implementação do iOS.

Testar a vinculação no app

A vinculação no app pode ser simulada usando apps de exemplo e de teste antes que os apps de produção verificados e um servidor OAuth 2.0 funcional estejam disponíveis.

Durante a vinculação no app, um app do Google vai abrir seu app, que vai solicitar uma resposta de código de autorização do seu servidor OAuth 2.0. Na etapa final, a resposta é retornada ao app do Google.

Pré-requisitos

Para simular um app do Google e acionar a intent que inicia seu app, faça o download e instale a ferramenta de teste de vinculação no app para Android e iOS.

Faça o download e instale o exemplo de vinculação no app para Android e iOS para simular seu app e selecionar um tipo de resposta do OAuth 2.0.

Sequência de testes

  1. Abra a ferramenta de teste de vinculação no app.
  2. Pressione Try Flip! para iniciar o app de exemplo de vinculação no app.
  3. Selecione uma resposta nos botões de opção no app de exemplo.
  4. Pressione Send para retornar uma resposta simulada do OAuth 2.0 para a ferramenta de teste.
  5. Verifique as mensagens de registro da ferramenta de teste para ver um auth_code ou detalhes do erro.

Teste de produção

A vinculação no app pode ser testada na produção depois de concluir o registro e a implementação do servidor OAuth 2.0.

Recomendamos uma única Conta do Google e um endereço de e-mail específico da tarefa para testes automatizados.

O estado de vinculação das contas pode ser visualizado usando Contas vinculadas quando você faz login como titular da Conta do Google. As contas também podem ser desvinculadas entre testes repetidos.

Como opção, você pode implementar RISC para desvincular e notificar o Google sobre a mudança de forma programática.