Prácticas recomendadas

En esta página, se abordan algunas de las prácticas recomendadas generales para la integración de OAuth 2.0. Ten en cuenta estas prácticas recomendadas, además de cualquier guía específica para el tipo de aplicación y plataforma de desarrollo que uses. Consulta también los consejos sobre cómo preparar tu app para la producción y las políticas de OAuth 2.0 de Google.

Administra las credenciales de los clientes de forma segura

Las credenciales del cliente de OAuth identifican la identidad de tu app y deben manejarse con cuidado. Almacena estas credenciales solo en un almacenamiento seguro, por ejemplo, mediante un administrador de secretos como Google Cloud Secret Manager. No codifique las credenciales, no las confirme en un repositorio de código ni las publique de forma pública.

Administra tokens de usuario de forma segura

Los tokens de usuario incluyen tokens de actualización y tokens de acceso que utiliza tu aplicación. Almacena 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 sean necesarios y bórralos de forma permanente de tus sistemas.

Además, ten en cuenta 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 el almacén de datos no sea de acceso público a Internet.
  • En el caso de las apps nativas para computadoras de escritorio, se recomienda usar el protocolo de clave de prueba para el intercambio de código (PKCE) a fin de obtener códigos de autorización que se pueden intercambiar por tokens de acceso.

Controla la revocación y el vencimiento de los tokens 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 se podrían invalidar por diferentes motivos. Por ejemplo, es posible que hayan vencido o que el usuario o un proceso automatizado hayan revocado el acceso a tus apps. En este caso, piensa detenidamente cómo debería responder tu aplicación, lo que incluye invitar al usuario a su siguiente acceso o limpiar sus datos. Para recibir una notificación sobre la revocación de tokens, integra el servicio de Protección integral de la cuenta.

Usar la autorización incremental

Usa la autorización incremental para solicitar los permisos adecuados de OAuth 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 cambio, solicita solo los alcances específicos que se necesitan para una tarea, de acuerdo con el principio de seleccionar el alcance más pequeño y limitado posible.

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 solicitaron permisos adicionales. La app proporciona una funcionalidad básica para permitir que el usuario explore y use funciones que no requieren acceso ni datos 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 alcance de OAuth específico que es necesario para esta función. Si esta función requiere varios permisos, sigue las prácticas recomendadas que aparecen a continuación.
    2. Si el usuario rechaza la solicitud, la app inhabilitará la función y le brindará contexto adicional para que vuelva a solicitar acceso.

Maneja 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 alcances inhabilitando funcionalidades relevantes.

Si la funcionalidad básica de la app requiere varios alcances, explícale esto al usuario antes de solicitar su consentimiento.

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

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

Usa navegadores seguros

En la Web, las solicitudes de autorización de OAuth 2.0 solo deben realizarse desde navegadores web con funciones completas. En otras plataformas, asegúrate de seleccionar el tipo de cliente de OAuth correcto y, luego, integra OAuth según corresponda para tu plataforma. No redirecciones la solicitud a través de entornos de navegación incorporados, incluidas las WebViews en plataformas móviles, como WebView en Android o WKWebView en iOS. En su lugar, usa bibliotecas nativas de OAuth o el 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 Google Developers 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.