Necesitamos mejorar un sistema que ofrece actualizaciones de software (archivos de firmware / software) a un dispositivo Bluetooth a través de una aplicación "complementaria" instalada en los teléfonos inteligentes de los clientes (ios / android).
El proceso de actualización se implementa a través de llamadas a un servidor de API REST (ASP.net, TLS 1.2) y al ser "sin usuario" (pero con diferentes aplicaciones) usamos OAuth2 con flujo de "client_credentials", hasta ahora.
Utilizamos la pareja "client_id" y "client_secret" para identificar la aplicación del que llama y luego inyectar algunas reclamaciones en el token de portador, útil por ejemplo, para dar diferentes firmware a diferentes aplicaciones. Al mismo tiempo, utilizamos este sistema para evitar solicitudes de API no autorizadas.
Funciona, pero nunca me encantó este sistema por varias razones, por ejemplo:
- Sin usuarios, el servidor de token no crea solo sobrecarga?
- ¿Es seguro almacenar la identificación y el secreto del cliente (en texto claro) en aplicaciones móviles?
He leído sobre las claves de la API, pero como esta publicación no son suficientes .
Creo que estamos "extendiendo" los propósitos de OAuth2 a nuestras necesidades, ¿hay mejores maneras de manejar esto?