Prácticas recomendadas

En esta página, se describen algunas prácticas recomendadas generales para la integración con OAuth 2.0. Considera estas prácticas recomendadas, además de cualquier guía específica para tu tipo de aplicación y plataforma de desarrollo. Además, consulta los consejos para preparar tu app para producción y las políticas de OAuth 2.0 de Google.

Controla las credenciales de cliente de forma segura

Las credenciales de cliente de OAuth identifican la identidad de tu app y deben manejarse con cuidado. Solo almacena estas credenciales en un almacenamiento seguro, por ejemplo, con un administrador de secretos, como Google Cloud Secret Manager. No codifiques las credenciales, las confirmes en un repositorio de código ni las publiques de forma pública.

Controla los tokens de usuario de forma segura

Los tokens de usuario incluyen los tokens de actualización y los tokens de acceso que usa tu aplicación. Almacena los tokens de forma segura en reposo y nunca los transmitas en texto sin formato. Usa un sistema de almacenamiento seguro adecuado para tu plataforma, como Keystore en Android, Keychain Services en iOS y macOS o Credential Locker en Windows.

Revoca los tokens en cuanto ya no los necesites y bórralos de forma permanente de tus sistemas.

Además, considera estas prácticas recomendadas para tu plataforma:

  • En el caso de las aplicaciones del servidor que almacenan tokens para muchos usuarios, encríptalos en reposo y asegúrate de que tu almacén de datos no sea de acceso público a Internet.
  • En el caso de las apps nativas para computadoras, se recomienda usar el protocolo de clave de prueba para el intercambio de código (PKCE) para obtener códigos de autorización que se puedan intercambiar por tokens de acceso.

Controla la revocación y el vencimiento del token de actualización

Si tu app solicitó un token de actualización para el acceso sin conexión, también debes controlar su invalidación o vencimiento. Los tokens pueden invalidarse por diferentes motivos, por ejemplo, si vencieron o si el usuario o un proceso automatizado revocaron el acceso de tus apps. En este caso, considera con detenimiento cómo debe responder tu aplicación, incluido preguntar al usuario en el siguiente acceso o limpiar sus datos. Para recibir notificaciones sobre la revocación de tokens, realiza la integración con el servicio de Protección integral de la cuenta.

Usa la autorización incremental

Usa la autorización incremental para solicitar los permisos de OAuth adecuados cuando tu aplicación necesite la funcionalidad.

No debes solicitar acceso a los datos cuando el usuario se autentica por primera vez, a menos que sea esencial para la funcionalidad principal de tu app. En su lugar, solicita solo los permisos específicos que se necesitan para una tarea, siguiendo el principio de seleccionar los permisos más pequeños y limitados posibles.

Siempre solicita permisos en contexto para ayudar a los usuarios a comprender por qué tu app solicita acceso y cómo se usarán los datos.

Por ejemplo, tu aplicación puede seguir este modelo:

  1. El usuario se autentica con tu app.
    1. No se solicitan permisos adicionales. La app proporciona una funcionalidad básica para permitir que el usuario explore y use funciones que no requieren datos ni acceso adicionales.
  2. El usuario selecciona una función que requiere acceso a datos adicionales.
    1. Tu aplicación realiza una solicitud de autorización para este permiso de OAuth específico requerido para esta función. Si esta función requiere varios permisos, sigue las prácticas recomendadas que se indican a continuación.
    2. Si el usuario rechaza la solicitud, la app inhabilita la función y le brinda al usuario contexto adicional para solicitar acceso nuevamente.

Controla el consentimiento para varios permisos

Cuando solicites varios permisos a la vez, es posible que los usuarios no otorguen todos los permisos de OAuth que solicitaste. Tu app debe controlar la denegación de permisos inhabilitando la funcionalidad relevante.

Si la funcionalidad básica de tu app requiere varios permisos, explícalo al usuario antes de solicitarle su consentimiento.

Solo puedes volver a solicitarle al usuario que acepte una vez que haya indicado claramente su intención de usar la función específica que requiere el permiso. Tu app debe proporcionar al usuario contexto relevante y una justificación antes de solicitar permisos de OAuth.

Debes minimizar la cantidad de permisos que solicita tu app a la vez. En su lugar, usa la autorización incremental para solicitar permisos en el contexto de las funciones y la funcionalidad.

Usa navegadores seguros

En la Web, las solicitudes de autorización de OAuth 2.0 solo se deben realizar desde navegadores web con todas las funciones. En otras plataformas, asegúrate de seleccionar el tipo de cliente de OAuth correcto y de integrar OAuth según corresponda a tu plataforma. No redirecciona la solicitud a través de entornos de navegación incorporados, incluidas las vistas web en plataformas para dispositivos móviles, como WebView en Android o WKWebView en iOS. En su lugar, usa bibliotecas de OAuth nativas o Acceso con Google para tu plataforma.

Creación y configuración manuales de clientes de OAuth

Para evitar abusos, los clientes de OAuth no se pueden crear ni modificar de manera programática. Debes usar la consola de Google Play Console para aceptar de forma explícita las condiciones del servicio, configurar tu cliente de OAuth y prepararte para la verificación de OAuth.

Para los flujos de trabajo automatizados, considera usar cuentas de servicio en su lugar.