Actualmente tengo una aplicación de PC nativa que crea y carga una configuración en un dispositivo Linux incorporado (es decir, el cliente). Este dispositivo se conecta a Google Calendar a través de su API OAuth2. La configuración requiere:
- El propietario de un recurso para iniciar sesión en la consola de administración de Google y descargar el JSON que contiene el secreto del cliente
- Importe el archivo JSON al software y autorice la cuenta a través de un código de tiempo y un navegador web
- Conéctese al cliente (que está protegido por contraseña) y use el archivo JSON ahora autorizado para conectarlo para obtener los tokens y comunicarse con el servidor
Los pasos 1 y 2 normalmente son manejados por el departamento de TI y el paso 3 generalmente es manejado por un integrador externo. Por lo tanto, una vez autorizado, el software cifra el archivo JSON, la contraseña protege la configuración y puede enviarse a dicha tercera parte.
¿Es suficiente cifrar el archivo JSON y la contraseña para proteger la configuración? En teoría, este archivo ahora puede usarse en cualquier hardware al que se pueda conectar el software, por lo que existe el riesgo de que las credenciales se utilicen incorrectamente. Eliminar el archivo JSON del software haría que la implementación sea mucho menos transparente.
¿Existe una alternativa además de la educación sobre el riesgo mínimo aceptable? Lo único en lo que puedo pensar para mantener a ambas partes felices es que de alguna manera exija que el token sea reautorizado después de una sesión, pero no estoy seguro de que se pueda imponer algo así en el servidor de Google.