Visão geral

A vinculação de contas permite que os titulares de Contas do Google se conectem aos seus serviços de forma rápida, simples e segura. Você pode optar por implementar a vinculação de contas do Google para compartilhar os dados de um usuário de sua plataforma com aplicativos e serviços do Google.

O protocolo OAuth 2.0 seguro permite que você vincule com segurança a Conta do Google de um usuário à conta dele em sua plataforma, concedendo assim aos aplicativos e dispositivos do Google acesso aos seus serviços.

Os usuários podem vincular ou desvincular suas contas e, opcionalmente, criar uma nova conta em sua plataforma com a vinculação de contas do Google.

Casos de uso

Alguns dos motivos para implementar a vinculação de contas do Google são:

  • Compartilhe os dados de um usuário de sua plataforma com aplicativos e serviços do Google.

  • Reproduza seu conteúdo de vídeo e filme usando o Google TV .

  • Gerencie e controle os dispositivos conectados ao Google Smart Home usando o aplicativo Google Home e o Google Assistant, "Ei, Google, acenda as luzes".

  • Crie experiências e funcionalidades personalizadas do Google Assistente com ações de conversação , "Ei, Google, peça o meu habitual na Starbucks".

  • Permita que os usuários ganhem prêmios assistindo a transmissões ao vivo qualificadas no YouTube depois de vincular a Conta do Google a uma conta de parceiro de recompensas .

  • Preencher novas contas durante a inscrição com dados compartilhados de forma consensual de um perfil de Conta do Google .

Recursos compatíveis

Esses recursos são compatíveis com a vinculação de contas do Google:

  • Compartilhe seus dados de maneira rápida e fácil usando o fluxo implícito de vinculação OAuth .

  • Forneça segurança aprimorada com o fluxo de código de autorização de vinculação OAuth .

  • Faça login de usuários existentes ou inscreva novos usuários verificados pelo Google em sua plataforma, obtenha o consentimento deles e compartilhe dados com segurança com vinculação simplificada .

  • Reduza o atrito com o App Flip . A partir de um aplicativo confiável do Google, um toque abre com segurança seu aplicativo Android ou iOS verificado e um toque concede o consentimento do usuário e vincula as contas.

  • Melhore a privacidade do usuário definindo escopos personalizados para compartilhar apenas os dados necessários, aumente a confiança do usuário definindo claramente como seus dados são usados.

  • O acesso a dados e serviços hospedados em sua plataforma pode ser revogado desvinculando contas. A implementação de um endpoint de revogação de token opcional permite que você fique sincronizado com os eventos iniciados pelo Google, enquanto a proteção entre contas (RISC) permite notificar o Google sobre quaisquer eventos de desvinculação que ocorram em sua plataforma.

Fluxos de vinculação de contas

Existem três fluxos de vinculação de contas do Google, todos baseados em OAuth e exigem que você gerencie ou controle a autorização compatível com OAuth 2.0 e os endpoints de troca de token.

Durante o processo de vinculação, você emite tokens de acesso ao Google para Contas do Google individuais após obter o consentimento dos titulares das contas para vincular suas contas e compartilhar dados.

Vinculação OAuth ('Web OAuth')

Este é o fluxo OAuth básico que envia os usuários ao seu site para vinculação. O usuário é redirecionado ao seu site para fazer login em sua conta. Depois de fazer login, o usuário consente em compartilhar seus dados, em seu serviço, com o Google. Nesse ponto, a Conta do Google do usuário e seu serviço são vinculados.

A vinculação OAuth dá suporte ao código de autorização e aos fluxos OAuth implícitos. Seu serviço deve hospedar um endpoint de autorização compatível com OAuth 2.0 para o fluxo implícito e deve expor um endpoint de autorização e troca de token ao usar o fluxo de código de autorização.

Figura 1 . Vinculação de conta no telefone de um usuário com Web OAuth

App Flip Linking baseado em OAuth ('App Flip')

Um fluxo OAuth que envia usuários ao seu aplicativo para vinculação.

O App Flip Linking baseado em OAuth orienta os usuários à medida que eles se movem entre seus aplicativos móveis Android ou iOS verificados e a plataforma do Google para revisar as alterações de acesso a dados propostas e conceder seu consentimento para vincular suas contas em sua plataforma com suas contas do Google. Para ativar o App Flip, seu serviço deve ser compatível com OAuth Linking ou Google Sign-in Linking baseado em OAuth usando o fluxo de código de autorização .

O App Flip é compatível com Android e iOS .

Como funciona:

O Google app verifica se seu app está instalado no dispositivo do usuário:

  • Se o aplicativo for encontrado, o usuário será 'invertido' para seu aplicativo. Seu aplicativo obtém o consentimento do usuário para vincular a conta ao Google e, em seguida, "volta" para a superfície do Google.
  • Se o aplicativo não for encontrado ou ocorrer um erro durante o processo de vinculação de flip do aplicativo, o usuário será redirecionado para o fluxo Simplificado ou Web OAuth.

Figura 2 . Vinculação de conta no telefone de um usuário com o App Flip

Link simplificado baseado em OAuth ('Simplificado')

Login do Google baseado em OAuth A vinculação simplificada adiciona o Login do Google à vinculação de OAuth, permitindo que os usuários concluam o processo de vinculação sem sair da superfície do Google, reduzindo atritos e desistências. A vinculação simplificada baseada em OAuth oferece a melhor experiência do usuário com login contínuo, criação de conta e vinculação de conta combinando o Login do Google com vinculação OAuth. Seu serviço deve oferecer suporte a autorização compatível com OAuth 2.0 e pontos de extremidade de troca de token. Além disso, seu ponto de extremidade de troca de token deve oferecer suporte a declarações JSON Web Token (JWT) e implementar as intenções check , create e get .

Como funciona:

O Google declara a conta de usuário e passa essas informações para você:

  • Se existir uma conta para o usuário em seu banco de dados, o usuário vinculará com êxito sua conta do Google à sua conta em seu serviço.
  • se não houver uma conta para o usuário em seu banco de dados, o usuário poderá criar uma nova conta 3P com as informações fornecidas pelo Google : e- mail, nome e foto do perfil ou optar por fazer login e vincular a outro e-mail (isso exigirá que eles para entrar no seu serviço via Web OAuth).

Figura 3 . Vinculação de conta no telefone de um usuário com vinculação simplificada

Qual fluxo você deve usar?

Recomendamos implementar todos os fluxos para garantir que os usuários tenham a melhor experiência de vinculação. Os fluxos de inversão simplificada e de aplicativo reduzem o atrito de vinculação, pois os usuários podem concluir o processo de vinculação em poucas etapas. A vinculação do Web OAuth tem o menor nível de esforço e é um bom ponto de partida, após o qual você pode adicionar outros fluxos de vinculação.

Trabalhando com tokens

A vinculação de contas do Google é baseada no padrão do setor OAuth 2.0.

Você emite tokens de acesso ao Google para Contas do Google individuais após obter o consentimento dos titulares das contas para vincular suas contas e compartilhar dados.

代币类型

OAuth 2.0使用称为令牌的字符串在用户代理,客户端应用程序和OAuth 2.0服务器之间进行通信。

帐户链接期间可以使用三种OAuth 2.0令牌:

  • 授权码。可以交换访问权限的短期令牌和刷新令牌。为了安全起见,Google会调用您的授权端点来获取一次性使用或寿命很短的代码。

  • 访问令牌。授予承载者对资源的访问权的令牌。为了限制可能因丢失此令牌而导致的风险敞口,它的使用寿命有限,通常会在一个小时左右后过期。

  • 刷新令牌。访问令牌到期时可以交换新的访问令牌的长期令牌。当您的服务与Google集成时,此令牌将由Google专门存储和使用。 Google调用您的令牌交换端点,以将刷新令牌交换为访问令牌,这些访问令牌又用于访问用户数据。

代币处理

在使用令牌时,群集环境和客户端-服务器交换中的竞争条件可能导致复杂的时序和错误处理方案。例如:

  • 您收到一个新的访问令牌的请求,并发出一个新的访问令牌。同时,您会收到使用前一个未过期的访问令牌访问服务资源的请求。
  • 您的刷新令牌回复尚未被Google收到(或从未收到)。同时,先前有效的刷新令牌用于Google的请求中。

由于在群集中运行的异步服务,网络行为或其他方式,请求和答复可以以任何顺序到达,或者根本无法到达。

无法保证您和Google的令牌处理系统之间以及之间的即时且完全一致的共享状态。多个有效的未过期令牌可以在短时间内在系统内或系统之间共存。为了最大程度地减少对用户的负面影响,建议您执行以下操作:

  • 即使发布了更新的令牌,也要接受未过期的访问令牌。
  • 使用替代方法来刷新令牌轮换
  • 支持多个并发有效的访问和刷新令牌。为了安全起见,应限制令牌的数量和令牌的生存期。
维护和停运处理

在维护或计划外中断期间,Google可能无法调用您的授权或令牌交换端点来获取访问权限并刷新令牌。

您的端点应以503错误代码和空主体作为响应。在这种情况下,Google将在有限的时间内重试失败的令牌交换请求。如果Google以后能够获取刷新和访问令牌,则失败的请求对用户不可见。

如果用户发起访问请求失败的请求,则会导致可见错误。如果使用隐式OAuth 2.0流程,则要求用户重试链接失败。

推荐建议

有许多解决方案可以最大程度地减少维护影响。要考虑的一些选项:

  • 维护您现有的服务,并将有限数量的请求路由到您的新更新的服务。仅在确认预期功能后才能迁移所有请求。

  • 在维护期间减少令牌请求的数量:

    • 将维护周期限制为少于访问令牌生存期。

    • 临时增加访问令牌的生存期:

      1. 将令牌寿命增加到大于维护期限。
      2. 等待两次访问令牌生存期,从而使用户可以将短期令牌替换为较长令牌。
      3. 输入维护。
      4. 使用503错误代码和空主体来响应令牌请求。
      5. 退出维护。
      6. 将令牌生存期降低到正常水平。

Registrando-se no Google

Precisaremos de detalhes de sua configuração do OAuth 2.0 e de compartilhar credenciais para habilitar a vinculação de contas. Veja o registro para detalhes.