Abbiamo bisogno di migliorare un sistema che fornisca aggiornamenti software (file firmware / software) a un dispositivo Bluetooth attraverso un'applicazione "companion" installata sugli smartphone dei clienti (ios / android).
Il processo di aggiornamento è implementato attraverso chiamate a un server API REST (ASP.net, TLS 1.2) ed essendo "userless" (ma con app diverse) abbiamo utilizzato OAuth2 con il flusso "client_credentials", fino ad ora.
Abbiamo utilizzato la coppia "client_id" e "client_secret" per identificare l'applicazione del chiamante e quindi iniettare alcune attestazioni nel token al portatore, utile ad esempio per fornire firmware diversi a diverse applicazioni. Allo stesso tempo, abbiamo utilizzato questo sistema per prevenire richieste API non autorizzate.
Funziona, ma non ho mai amato questo sistema completamente per vari motivi, ad esempio:
- Senza utenti, il server token non crea solo un sovraccarico?
- L'archiviazione dell'ID client e del segreto (in testo non crittografato) nelle app mobili è sicuro?
Ho letto le chiavi API, ma come questo post dice che non sono abbastanza .
Penso che stiamo "estendendo" gli obiettivi di OAuth2 alle nostre esigenze, ci sono modi migliori per gestirlo?