Devo creare un servizio Windows che richiede l'autenticazione OAuth2. Il servizio è inteso (come tutti i servizi dovrebbero essere) per l'esecuzione automatica (nessun utente deve essere registrato in Windows). Il problema è che è necessaria l'interazione dell'utente per ottenere l'autenticazione OAuth2.
Il servizio utilizza un'API di terze parti (non ho il controllo su di esso) per eseguire alcuni controlli e invia un'email se un controllo risulta negativo. L'API richiede l'autenticazione tramite un sito Web. Il servizio verrà eseguito su un server "sempre attivo".
Una volta convalidata l'autenticazione, avrei un token di aggiornamento per aggiornare periodicamente l'autenticazione. Quindi non sarà più necessaria l'interazione dell'utente dovrebbe dopo l'autenticazione iniziale.
Penso che la soluzione migliore sia creare un'applicazione winForm / WPF che richieda all'utente di accedere al sito Web, installare e avviare il servizio. Come detto, una volta autenticato, il servizio può essere eseguito automaticamente poiché l'autenticazione può essere periodicamente aggiornata (i token vengono salvati in un file crittografato). Se per qualche motivo l'autenticazione viene persa, il servizio può inviare un'e-mail che richiede a un utente di effettuare l'accesso e di eseguire nuovamente l'autenticazione.
Immagino il seguente flusso:
Questa è una soluzione consigliabile o c'è qualcosa di meglio? Ho dimenticato / perso qualcosa?