En esta página, se abordan algunas prácticas recomendadas generales para la integración con OAuth 2.0. Ten en cuenta estas prácticas recomendadas junto con cualquier orientación específica para el tipo de plataforma de aplicaciones y desarrollo que tengas. Además, consulta los consejos sobre cómo preparar tu app para producción y las políticas de OAuth 2.0 de Google.
Administra las credenciales de los clientes de forma segura
Las credenciales de 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 Secret Manager de Google Cloud. No codifiques las credenciales, las confirmes en un repositorio de código ni las publiques 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 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, servicios de llaveros en iOS y macOS, o Credential Locker en Windows.
Revoca los tokens cuando 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 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 administrar su invalidación o vencimiento. Es posible que los tokens se invaliden por diferentes motivos. Por ejemplo, es posible que hayan vencido o que el usuario haya revocado el acceso a tus apps o que un proceso automatizado haya sido revocado. En este caso, considera cuidadosamente cómo debería responder tu aplicación, lo que incluye pedirle al usuario su próximo acceso o limpiar sus datos. Para recibir notificaciones 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 su lugar, solicita solo los permisos específicos necesarios para una tarea, según 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:
- El usuario se autentica con tu app.
- No se solicitan permisos adicionales. La app proporciona funciones básicas para permitir que el usuario explore y use funciones que no requieren datos ni acceso adicionales.
- El usuario selecciona una función que requiere acceso a datos adicionales.
- 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 se indican a continuación.
- Si el usuario rechaza la solicitud, la app inhabilita la función y le brinda contexto adicional para que vuelva a solicitar acceso.
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 alcances inhabilitando la funcionalidad relevante.
Si la funcionalidad básica de la app requiere varios permisos, explícaselo al usuario antes de solicitar su consentimiento.
Solo puedes volver a pedirle al usuario 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 y justificación relevantes antes de solicitar permisos de OAuth.
Debes minimizar la cantidad de permisos que tu app solicita al mismo tiempo. En su lugar, usa la autorización incremental para solicitar alcances en el contexto de las características y funcionalidades.
Usa navegadores seguros
En la Web, las solicitudes de autorización de OAuth 2.0 solo deben realizarse desde navegadores web con todas las funciones. 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 en 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 confirmar explícitamente 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.