Prácticas recomendadas para implementar Acceder con Google

Acceder con Google

Introducción

Acceder con Google (SiwG) es una forma rápida y segura para que los usuarios accedan a tu app o sitio web. Implementarla correctamente no solo simplifica el proceso de registro del usuario, sino que también mejora la seguridad de tu aplicación. En este documento, se describen las prácticas recomendadas para integrar Acceder con Google en las plataformas web, Android y iOS. Esta documentación se centra únicamente en la autenticación. La autorización está fuera del alcance de este documento.

Lista de tareas de hitos de integración

Esta lista de tareas proporciona una hoja de ruta general para guiarte en el proceso de integración de Acceder con Google. Se organiza en fases clave, desde la configuración inicial hasta el lanzamiento de producción. Usa esta lista para hacer un seguimiento de tu progreso y haz clic en los vínculos para consultar la guía detallada de cada hito.

Fase 0: Primeros pasos (opcional)

Comienza tu integración con codelabs prácticos y paso a paso para desarrolladores.

Web: Completa el codelab de One Tap y el botón de Acceder con Google para crear una integración web básica.

Android: Completa el codelab de Android para aprender los conceptos básicos del Administrador de credenciales de Android.

iOS: Completa el codelab de iOS para obtener una introducción al SDK de iOS.

Fase 1: Configuración del proyecto y la marca de Google Cloud

Asegúrate de que tu proyecto esté configurado para el éxito desde el principio.

Estructura los proyectos de Google Cloud para diferentes entornos y marcas.

Completa la configuración de la pantalla de consentimiento de OAuth con toda la información de asistencia y de desarrollo de la marca que se requiera.

Crea el tipo de ID de cliente de OAuth correcto para cada plataforma (Web, Android, iOS).

Fase 2: Desarrollo principal: frontend y backend

Crea la lógica segura del servidor y la experiencia del usuario específica de la plataforma.

En el desarrollo de tu frontend, haz lo siguiente:

Revisa y aplica las prácticas recomendadas generales de experiencia del usuario (UX) para maximizar la adopción y la confianza de los usuarios.

Web: Usa la biblioteca oficial de JavaScript e integra los flujos de Button y One Tap.

Android: Usa el SDK oficial de Android para realizar la integración.

iOS: Usa el SDK oficial de iOS para realizar la integración.

En el desarrollo de backend, haz lo siguiente:

Implementa una validación segura de backend de los tokens de ID de Google.

Usa el reclamo sub como el identificador de usuario único y permanente en tu sistema.

Planifica la separación de los permisos de autenticación y autorización si corresponde.

Fase 3: Refuerzo de la seguridad y lanzamiento de producción

Asegúrate de que tu integración sea segura, cumpla con los requisitos y esté lista para la producción.

Revisa e implementa las prácticas recomendadas de seguridad.

Completa el proceso de verificación de la app de OAuth antes del lanzamiento.

Asegúrate de que tu aplicación maneje correctamente la revocación de tokens cuando se borre la cuenta del usuario.

Prácticas recomendadas generales (todas las plataformas)

Estas prácticas se aplican independientemente de la plataforma para la que desarrolles. Los desarrolladores también deben revisar las políticas generales de OAuth 2.0 para garantizar el cumplimiento total.

En esta sección, se describen las prácticas recomendadas para estructurar tus proyectos de Google Cloud y configurar tus clientes de OAuth para garantizar la seguridad y el cumplimiento de la marca.

  • Usa proyectos separados para las pruebas y la producción

    Dado que algunas políticas de Google solo se aplican a las aplicaciones de producción, debes crear proyectos separados en Google Cloud Console para tus diferentes entornos de implementación, como desarrollo, etapa de pruebas y producción. Consulta esta página para obtener más detalles.

  • Usa proyectos separados para cada marca o dominio

    Si tu organización administra varias aplicaciones con marcas distintas, cada marca debe tener su propio proyecto de Google Cloud dedicado. La información visible para el usuario que se muestra en la pantalla de consentimiento, como el nombre de la aplicación, el logotipo, el correo electrónico de asistencia y los vínculos a las Condiciones del Servicio y la Política de Privacidad, se configura a nivel del proyecto. Esto significa que todos los IDs de cliente de OAuth creados en un mismo proyecto compartirán la misma marca. Asignar a cada marca su propio proyecto garantiza que los usuarios vean la información legal y de desarrollo de la marca correctas para la aplicación específica que están usando.

  • Proporciona un correo electrónico de asistencia genérico

    La dirección de correo electrónico de asistencia al usuario se muestra públicamente en la pantalla de consentimiento de OAuth. Para mantener la profesionalidad y garantizar la continuidad, siempre configura un correo electrónico de asistencia genérico (p.ej., support@yourdomain.com) en la configuración de la pantalla de consentimiento de OAuth del proyecto de Google Cloud en lugar de la dirección de correo electrónico de un empleado individual. Consulta esta página para obtener más detalles.

  • Cliente de OAuth por plataforma

    Debes crear un cliente de OAuth independiente para cada plataforma en la que se ejecute tu aplicación (p.ej., Web, Android y iOS), todo dentro del mismo proyecto de Google Cloud. Usar el tipo de cliente correcto para cada plataforma es fundamental por dos motivos principales:

    • Seguridad mejorada: Cada tipo de cliente habilita funciones de seguridad específicas de la plataforma. Por ejemplo, un cliente de Android se puede bloquear con su nombre de paquete y certificado de firma, lo que impide el uso no autorizado de tu ID de cliente.
    • Funcionalidad adecuada: Garantiza que tu aplicación se integre correctamente con los SDKs y las funciones específicos de la plataforma, como Credential Manager en Android o el SDK de Sign in with Google para iOS.

    Esta estructura también simplifica la experiencia del usuario. Dado que el consentimiento se maneja a nivel del proyecto de Google Cloud, los usuarios solo deben otorgarlo una vez a tu aplicación en todas las plataformas. Para obtener más detalles, consulta las políticas oficiales de OAuth 2.0.

  • Cómo completar la verificación de la app de OAuth

    Para que tu app de producción muestre su nombre y logotipo, debe estar verificada. El tipo de verificación depende de los datos que le solicites al usuario.

    • Acceder con Google solo solicita alcances de autenticación (email, profile y openid), por lo que está sujeto a una Verificación de la marca más simple. Por lo general, este proceso es más rápido y se enfoca en confirmar la identidad de tu marca.

    Para ayudarte a planificar tu cronograma de lanzamiento, Google proporciona un desglose de los diferentes tipos de verificación y sus tiempos de revisión esperados. Para obtener más detalles sobre las políticas de verificación, consulta el Centro de ayuda para la verificación de apps con OAuth.

Seguridad y manejo de tokens

En esta sección, se describen los requisitos del entorno de ejecución y las medidas de seguridad que los desarrolladores deben implementar en sus servidores de backend.

  • Integra tokens de ID de Google en tu backend

    • Verifica el token de ID: Siempre verifica la integridad del token de ID de Google en tu servidor de backend. Nunca confíes en un token solo porque se envía desde tu cliente. Te recomendamos que uses una biblioteca cliente de las APIs de Google para esta verificación. Consulta Cómo verificar el token de ID de Google en el servidor para obtener más detalles.
    • Usa el reclamo sub: Usa solo el campo sub del token de ID de Google como identificador del usuario, ya que es único y estable entre todas las Cuentas de Google, y nunca se reutiliza. Debes almacenar el campo sub y asociarlo con el usuario en tu sistema de administración de cuentas. Si bien puedes usar la dirección de correo electrónico del token de ID para verificar si el usuario tiene una cuenta existente, no uses la dirección de correo electrónico como identificador, ya que una Cuenta de Google puede tener varias direcciones de correo electrónico en diferentes momentos.
  • Revoca los tokens cuando se borra la cuenta

    Se recomienda proporcionar a los usuarios que acceden con Google la capacidad de desconectar su Cuenta de Google de tu aplicación. Si un usuario decide borrar su cuenta, debes revocar todos los tokens de acceso y actualización que haya obtenido tu aplicación.

    Para obtener detalles sobre la revocación de tokens del cliente, consulta la documentación de Web, Android o iOS. Para la revocación del servidor, visita Usa OAuth 2.0 para aplicaciones de servidor web.

  • Separa la autenticación de la autorización

    Los SDKs de Acceder con Google solo solicitan los alcances necesarios para la autenticación. Si tu aplicación necesita acceder a otros servicios de Google (como Calendario de Google o Drive), debes solicitar esos permisos por separado y solo cuando el usuario intente realizar una acción que los requiera. Consulta Momentos separados de autenticación y autorización para obtener más detalles.

  • Prácticas recomendadas sobre seguridad

    Para una integración segura, siempre verifica el token de ID en tu servidor de backend con la biblioteca cliente de la API de Google. Para obtener una protección más integral contra diversas amenazas, implementa el paquete de seguridad y la Protección integral de la cuenta (RISC). Además, en el caso de las apps para iOS, se recomienda integrar Verificación de aplicaciones para garantizar que las solicitudes provengan de tu app auténtica.

Experiencia del usuario (UX)

En esta sección, se explica cómo optimizar los elementos visibles para el usuario y los flujos de acceso y registro.

  • Muestra el botón de forma destacada: El botón de Acceder con Google debe ser claramente visible y accesible en tu página de acceso y registro.

  • Sigue los lineamientos de desarrollo de la marca: Usa los botones de acceso oficiales con la marca de Google para garantizar una experiencia del usuario coherente y confiable. Revisa los Lineamientos de desarrollo de la marca de Acceder con Google oficiales.

  • Registro sin inconvenientes: Para los usuarios nuevos, crea automáticamente una cuenta o dirígelos al flujo de creación de cuentas nuevas en su primer flujo de Acceder con Google exitoso. En el backend, verifica si existe un usuario con el ID de sub determinado. Si no existe, crea una cuenta nueva. Esto minimiza el esfuerzo de registro.

  • Acceso optimizado: Para los usuarios recurrentes, usa el ID de sub para identificarlos y autenticarlos en su cuenta existente. Implementa funciones como el acceso automático para Web y Android para que vuelvan a tu app de forma rápida y segura.

  • Administrar métodos de acceso con redes sociales: Proporciona una sección centralizada de "Cuentas conectadas" en la configuración del usuario, donde los usuarios pueden administrar varios métodos de acceso con redes sociales (p.ej., Google).

    • Vinculación: Proporciona un botón "Acceder con Google" para los usuarios existentes que usan otros métodos (p.ej., nombre de usuario y contraseña). Si hace clic en este botón, se iniciará el flujo de autenticación para vincular su Cuenta de Google a su perfil existente.

    • Desvinculación: Proporciona una opción para desconectar la cuenta. Para completar este paso, debes revocar los tokens y quitar la asociación de Google de tu base de datos.

Implementación en Android (apps y juegos)

Apps para Android estándar

En el caso de las implementaciones de Android, debes usar Credential Manager. Es el enfoque recomendado para controlar las credenciales del usuario y proporciona una experiencia de acceso unificada, segura y coherente en Android.

Usa el ID de cliente de OAuth para Android en la implementación. Si ya implementaste Acceder con Google en otras plataformas (p.ej., la Web o iOS), debes crear un nuevo ID de cliente de OAuth de tipo Android en el mismo proyecto de Google Cloud.

Flujos de implementación

Una implementación sólida debe incluir la IU de la hoja inferior de Credential Manager y un botón de Acceder con Google.

  • Hoja inferior: Es un mensaje de baja fricción controlado por el desarrollador que presenta Credential Manager cuando un usuario llega a tu pantalla de acceso.
  • Botón de Acceder con Google: Este es el flujo de acceso explícito iniciado por el usuario en el que este puede presionar para comenzar.
  • Es fundamental contar con una configuración precisa del proyecto de Google Cloud. Esto implica crear los tipos correctos de IDs de cliente de OAuth y proporcionar detalles específicos, como la huella digital del certificado SHA-1 de tu app. Para asegurarte de que la configuración sea correcta, sigue con precisión la guía oficial para desarrolladores de Android.

Siempre debes incluir el flujo del botón, ya que es posible que el usuario descarte la hoja inferior o la haya inhabilitado en sus preferencias. El botón garantiza que siempre pueda iniciar el proceso de acceso.

Estrategia de posición

  • Botón de Acceder con Google:

    • Ubicación: Muestra el botón de acceso con Google en tus páginas de acceso o registro exclusivas.
    • Visibilidad: Colócalo en un lugar destacado junto con otros métodos de acceso, como los campos de nombre de usuario y contraseña, o bien otros proveedores de acceso con redes sociales.
  • Hoja inferior del Administrador de credenciales:

    • Activador: La hoja inferior se debe invocar automáticamente cuando se inicie la página de acceso o cuando se inicie la app. No debe activarse cuando el usuario presiona un botón.
    • Acceso automático: Para los usuarios recurrentes, se recomienda habilitar la opción de acceso automático en Credential Manager. Esto permite que los usuarios que regresan (que ya dieron su consentimiento) vuelvan a acceder a tu app sin ninguna interacción.

Juegos para Android

En el caso de los juegos para Android, no se recomienda usar Credential Manager. En su lugar, los desarrolladores de juegos deben usar el enfoque de los Servicios de juego de Google Play (PGS), que se centra en la identidad de Google multiplataforma con Acceder con Google. Puedes encontrar más detalles en la documentación sobre la identidad de Google multiplataforma con Acceder con Google.

Implementación en iOS

Usa el SDK oficial de Acceder con Google

En el caso de las apps para iOS, debes usar el SDK oficial de Sign in with Google para iOS y macOS. Esta biblioteca proporciona la forma más segura y fácil de usar para integrar Acceder con Google.

Usa el ID de cliente de OAuth para iOS para la implementación. Si ya implementaste Acceder con Google en otras plataformas (p.ej., Web o Android), debes crear un nuevo ID de cliente de OAuth de tipo iOS en el mismo proyecto de Google Cloud.

Agrega el botón "Acceder con Google"

  • Colocación: Agrega el botón "Acceder con Google" a la vista de acceso de tu app, tanto en las páginas de registro como en las de acceso. Colócalo de forma destacada junto con otros métodos de acceso, como los campos de nombre de usuario y contraseña, o bien otros proveedores de acceso con redes sociales.
  • Usa componentes recomendados: Usa los componentes de botones oficiales que proporciona el SDK para SwiftUI y UIKit. Estos componentes generan automáticamente un botón que cumple con los lineamientos de desarrollo de la marca de Google y son la forma recomendada de mostrar el botón.

Mejora la seguridad con App Check

Protege tus recursos de backend contra abusos verificando que las solicitudes a tu cliente de OAuth 2.0 provengan de tu app auténtica. La Verificación de aplicaciones usa un proveedor de certificación para verificar que las solicitudes provengan de una instancia genuina y no adulterada de tu app, y rechaza las que no lo hagan. Consulta App Check para el Acceso con Google en iOS para obtener más detalles.

Implementación web

Orientación para sitios web y aplicaciones web

Usa la biblioteca oficial de JavaScript de Acceder con Google

Para las implementaciones web, debes usar la biblioteca oficial de JavaScript de Acceder con Google. Esta es la generación más reciente de las bibliotecas de identidad de Google para la Web y, además, incluye las funciones Button y One Tap.

Usa el ID de cliente de OAuth para Web en la implementación. Si ya implementaste Acceder con Google en otras plataformas (p.ej., Android o iOS), debes crear un nuevo ID de cliente de OAuth de tipo web en el mismo proyecto de Google Cloud.

Implementa los flujos de botón y de One Tap

Se recomienda implementar el botón "Acceder con Google" y la experiencia de acceso con One Tap.

  • Botón de Acceder con Google: Este es el flujo explícito de acceso o registro iniciado por el usuario.
  • One Tap: Proporciona un mensaje de acceso o registro sin inconvenientes y con pocas interrupciones.
  • Usa el mismo ID de cliente de OAuth para Web en ambas implementaciones.

Siempre debes incluir el botón como una opción de acceso principal. Los usuarios pueden descartar o inhabilitar One Tap en la configuración de su Cuenta de Google, pero el botón siempre estará disponible, lo que garantiza que los usuarios nunca se queden sin poder acceder.

Estrategia de posición

  • Botón de Acceder con Google:

    • Ubicación: Muestra el botón personalizado de Acceder con Google en tus páginas de acceso o registro exclusivas.
      • Ten en cuenta que no existe un solo patrón que funcione mejor para todos los sitios (p.ej., redireccionamiento frente a ventana emergente). Tu equipo de diseño web o UX debe probar y optimizar estos flujos para maximizar las tasas de finalización tanto del registro como del acceso.
    • Visibilidad: Colócalo en un lugar destacado junto con otros métodos de acceso, como los campos de nombre de usuario y contraseña, o bien otros proveedores de acceso con redes sociales.
    • Revisión: Consulta la sección Consideraciones sobre el botón de Acceder con Google para obtener información sobre la configuración y el rendimiento óptimos.
  • Instrucción de One Tap:

    • Ubicación: Muestra el mensaje de One Tap en varias páginas de tu sitio web, como páginas de productos individuales, páginas de artículos y hasta la página principal. El principal beneficio de One Tap es que permite a los usuarios acceder o crear una cuenta sin salir de la página actual.
    • Acceso automático: Para los usuarios recurrentes, se recomienda habilitar la opción de acceso automático en One Tap. Esto permite que los usuarios que regresan (que ya dieron su consentimiento) vuelvan a acceder a tu app sin ninguna interacción.
    • Revisión: La sección Consideraciones sobre One Tap para lograr una configuración y un rendimiento óptimos.