Descripci�n general

La vinculaci�n de cuentas permite que los titulares de las Cuentas de Google se conecten de forma r�pida, fluida y segura a tus servicios. Puedes implementar la vinculaci�n de Cuentas de Google para compartir los datos de un usuario provenientes de tu plataforma con las apps y los servicios de Google.

El protocolo OAuth 2.0 seguro te permite vincular de forma segura la Cuenta de Google de un usuario con su cuenta en tu plataforma, lo que otorga acceso a tus servicios a las aplicaciones y los dispositivos de Google.

Los usuarios pueden vincular o desvincular sus cuentas y, de manera opcional, crear una cuenta nueva en tu plataforma con la vinculaci�n de Cuentas de Google.

Casos de uso

Algunos de los motivos para implementar la vinculaci�n de Cuentas de Google son los siguientes:

  • Comparte los datos de un usuario desde tu plataforma con las apps y los servicios de Google.

  • Reproduce tus videos y pel�culas con Google TV.

  • Administrar y controlar los dispositivos conectados a Google Smart Home mediante la app de Google Home y Asistente de Google, di "Hey Google, enciende las luces".

  • Crea experiencias y funciones personalizadas de Asistente de Google para usuarios con Acciones de conversaci�n y "Hey Google, pide lo de siempre en Starbucks".

  • Permite que los usuarios ganen recompensas por mirar transmisiones en vivo aptas en YouTube despu�s de vincular su Cuenta de Google con una cuenta de socio de recompensas.

  • Prepropaga las cuentas nuevas durante el registro con datos compartidos consensuadamente de un perfil de Cuenta de Google.

Funciones admitidas

Las siguientes funciones son compatibles con la vinculaci�n de Cuentas de Google:

  • Comparte tus datos de forma r�pida y sencilla mediante el flujo impl�cito de la vinculaci�n de OAuth.

  • Proporciona mayor seguridad con el flujo de c�digo de autorizaci�n de la vinculaci�n de OAuth.

  • Permite el acceso de usuarios existentes o el registro de nuevos usuarios verificados por Google en tu plataforma, obt�n su consentimiento y comparte datos de forma segura con la vinculaci�n optimizada.

  • Reduce los inconvenientes con Cambio de app. En una app de Google de confianza, con solo presionar una vez, se abre de forma segura tu app verificada para Android o iOS, y con solo presionar una vez se otorga el consentimiento del usuario y se vinculan las cuentas.

  • Mejora la privacidad del usuario mediante la definici�n de permisos personalizados para compartir solo los datos necesarios y aumenta la confianza de los usuarios mediante la definici�n clara de c�mo se usan sus datos.

  • El acceso a los datos y servicios alojados en tu plataforma se puede revocar mediante la desvinculaci�n de las cuentas. La implementaci�n de un extremo de revocaci�n de tokens opcional te permite mantenerte en sincronizaci�n con los eventos iniciados por Google, mientras que la protecci�n entre cuentas (RISC) te permite notificar a Google sobre cualquier evento de desvinculaci�n que ocurra en tu plataforma.

Flujos de vinculaci�n de cuentas

Existen 3 flujos de vinculaci�n de Cuentas de Google, todos basados en OAuth y requieren que administres o controles los extremos de autorizaci�n y de intercambio de tokens que cumplen con OAuth 2.0.

Durante el proceso de vinculaci�n, emites tokens de acceso a Google para Cuentas de Google individuales despu�s de obtener el consentimiento de los titulares de las cuentas para vincular sus cuentas y compartir datos.

Vinculaci�n con OAuth ("Web OAuth")

Este es el flujo de OAuth b�sico que env�a a los usuarios a tu sitio web para vincularlo. Se redirecciona al usuario a tu sitio web para que acceda a su cuenta. Una vez que accede, el usuario da su consentimiento para compartir sus datos en tu servicio con Google. En ese momento, la Cuenta de Google del usuario y tu servicio estar�n vinculados.

La vinculaci�n de OAuth admite el c�digo de autorizaci�n y los flujos de OAuth impl�citos. Tu servicio debe alojar un extremo de autorizaci�n que cumpla con OAuth 2.0 para el flujo impl�cito y debe exponer un extremo de autorizaci�n y un extremo de intercambio de tokens cuando se use el flujo de c�digo de autorizaci�n.

Figura�1: Vinculaci�n de cuentas en el tel�fono de un usuario con OAuth web

Vinculaci�n de cambio de app basada en OAuth ("Cambio de app")

Un flujo de OAuth que env�a a los usuarios a tu app para su vinculaci�n

La vinculaci�n de apps basada en OAuth gu�a a los usuarios a medida que se mueven entre tus apps para dispositivos m�viles para Android o iOS verificadas y la plataforma de Google a fin de revisar los cambios propuestos en el acceso a los datos y otorgar su consentimiento para vincular su cuenta en tu plataforma con su Cuenta de Google. Para habilitar App Flip, tu servicio debe ser compatible con la vinculaci�n de OAuth o la vinculaci�n de Acceso con Google basada en OAuth mediante el flujo de c�digo de autorizaci�n.

Cambio de app es compatible con Android y iOS.

C�mo funciona:

Google app verifica si tu app est� instalada en el dispositivo del usuario:

  • Si se encuentra la app, el usuario "gira" la app. Tu app obtiene su consentimiento para vincular la cuenta con Google y, luego, "regresa" a la plataforma de Google.
  • Si no se encuentra la app o se produce un error durante el proceso de vinculaci�n de cambio de app, se redirecciona al usuario al flujo optimizado o web de OAuth.

Figura�2. Vinculaci�n de cuentas en el tel�fono de un usuario con Cambio de app

Vinculaci�n optimizada basada en OAuth ("Optimizada")

La vinculaci�n optimizada del Acceso con Google basado en OAuth agrega el Acceso con Google a la vinculaci�n de OAuth, lo que permite a los usuarios completar el proceso de vinculaci�n sin salir de la plataforma de Google, lo que reduce las fricciones y los abandonos. La vinculaci�n optimizada basada en OAuth ofrece la mejor experiencia del usuario con un acceso fluido, la creaci�n de cuentas y la vinculaci�n de cuentas mediante la combinaci�n del Acceso con Google y la vinculaci�n de OAuth. El servicio debe admitir extremos de intercambio de tokens y de autorizaci�n que cumplan con OAuth 2.0. Adem�s, el extremo de intercambio de tokens debe admitir aserciones de JSON Web Token (JWT) y, adem�s, implementar los intents check, create y get.

C�mo funciona:

Google confirma la cuenta de usuario y te pasa esta informaci�n:

  • Si existe una cuenta para el usuario en tu base de datos, este vincular� correctamente su Cuenta de Google con su cuenta en tu servicio.
  • Si no existe una cuenta para el usuario en tu base de datos, este puede crear una nueva cuenta de terceros con la informaci�n afirmada que proporciona Google : correo electr�nico, nombre y foto de perfil, o elegir acceder y vincularlo con otro correo electr�nico (esto requerir� que acceda a tu servicio mediante OAuth web).

Figura�3. Vinculaci�n de cuentas en el tel�fono de un usuario con la vinculaci�n optimizada

�Qu� flujo deber�as usar?

Recomendamos implementar todos los flujos para garantizar que los usuarios obtengan la mejor experiencia de vinculaci�n. Los flujos optimizado y de cambio de app reducen la fricci�n de la vinculaci�n, ya que los usuarios pueden completar el proceso en muy pocos pasos. La vinculaci�n de OAuth para la Web ofrece el m�nimo esfuerzo y es un buen punto de partida. Luego, puedes agregar otros flujos de vinculaci�n.

Trabaja con tokens

La vinculaci�n de Cuentas de Google se basa en el est�ndar de la industria OAuth 2.0.

Emites tokens de acceso a Google para Cuentas de Google individuales despu�s de obtener el consentimiento de los titulares de las cuentas para vincular sus cuentas y compartir datos.

Tipos de tokens

OAuth 2.0 usa cadenas llamadas tokens para comunicarse entre el agente de usuario, la aplicaci�n cliente y el servidor OAuth 2.0.

Se pueden usar tres tipos de tokens de OAuth 2.0 durante la vinculaci�n de cuentas:

  • C�digo de autorizaci�n . Un token de corta duraci�n que se puede intercambiar por un token de acceso y actualizaci�n. Por motivos de seguridad, Google llama a su punto final de autorizaci�n para obtener un c�digo de un solo uso o de muy corta duraci�n.

  • Token de acceso . Un token que otorga al portador acceso a un recurso. Para limitar la exposici�n que podr�a resultar de la p�rdida de este token, tiene una vida �til limitada, que generalmente expira despu�s de aproximadamente una hora.

  • Actualizar token . Un token de larga duraci�n que se puede intercambiar por un nuevo token de acceso cuando caduca un token de acceso. Cuando su servicio se integra con Google, este token es almacenado y utilizado exclusivamente por Google. Google llama a su punto final de intercambio de tokens para intercambiar tokens de actualizaci�n por tokens de acceso, que a su vez se utilizan para acceder a los datos del usuario.

Manejo de tokens

Las condiciones de carrera en entornos agrupados y los intercambios cliente-servidor pueden dar lugar a situaciones complejas de gesti�n de errores y tiempos al trabajar con tokens. Por ejemplo:

  • Recibe una solicitud de un nuevo token de acceso y emite un nuevo token de acceso. Al mismo tiempo, recibe una solicitud de acceso al recurso de su servicio utilizando el token de acceso anterior no vencido.
  • Google a�n no ha recibido (o nunca ha recibido) la respuesta del token de actualizaci�n. Mientras tanto, el token de actualizaci�n v�lido anteriormente se utiliza en una solicitud de Google.

Las solicitudes y respuestas pueden llegar en cualquier orden, o no llegar debido a que los servicios asincr�nicos se ejecutan en un cl�ster, el comportamiento de la red u otros medios.

No se puede garantizar un estado compartido inmediato y totalmente consistente tanto dentro como entre sus sistemas de manejo de tokens y los de Google. M�ltiples tokens v�lidos y no vencidos pueden coexistir dentro o entre sistemas en un corto per�odo de tiempo. Para minimizar el impacto negativo del usuario, le recomendamos que haga lo siguiente:

  • Acepte tokens de acceso no vencidos, incluso despu�s de que se emita un token m�s nuevo.
  • Utilice alternativas para actualizar la rotaci�n de tokens .
  • Admite m�ltiples tokens de acceso y actualizaci�n simult�neamente v�lidos. Por seguridad, debe limitar la cantidad de tokens y la vida �til del token.
Manejo de mantenimiento e interrupciones

Durante el mantenimiento o las interrupciones no planificadas, es posible que Google no pueda llamar a sus puntos finales de autorizaci�n o intercambio de tokens para obtener acceso y actualizar tokens.

Sus puntos finales deben responder con un c�digo de error 503 y un cuerpo vac�o. En este caso, Google vuelve a intentar solicitudes fallidas de intercambio de tokens durante un tiempo limitado. Siempre que Google pueda obtener m�s tarde los tokens de acceso y actualizaci�n, los usuarios no pueden ver las solicitudes fallidas.

Las solicitudes fallidas de un token de acceso dan como resultado un error visible, si las inicia un usuario. Los usuarios deber�n volver a intentar vincular los errores si se utiliza el flujo OAuth 2.0 impl�cito.

Recomendaciones

Existen muchas soluciones para minimizar el impacto del mantenimiento. Algunas opciones a considerar:

  • Mantenga su servicio existente y enrute un n�mero limitado de solicitudes a su servicio reci�n actualizado. Migre todas las solicitudes solo despu�s de confirmar la funcionalidad esperada.

  • Reduzca la cantidad de solicitudes de tokens durante el per�odo de mantenimiento:

    • Limite los per�odos de mantenimiento a menos de la vida �til del token de acceso.

    • Aumente temporalmente la vida �til del token de acceso:

      1. Aumente la vida �til del token a un per�odo superior al de mantenimiento.
      2. Espere el doble de la duraci�n de su token de acceso, lo que permite a los usuarios intercambiar tokens de corta duraci�n por tokens de mayor duraci�n.
      3. Entrar en mantenimiento.
      4. Responda a las solicitudes de token con un c�digo de error 503 y un cuerpo vac�o.
      5. Salir de mantenimiento.
      6. Disminuye la vida �til del token a la normalidad.

Registrarse en Google

Necesitaremos detalles de tu configuraci�n de OAuth 2.0 y compartir las credenciales para habilitar la vinculaci�n de cuentas. Consulta el art�culo sobre registro para obtener m�s informaci�n.