Servizio Windows con autenticazione, è necessaria un'interfaccia utente

1

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?

    
posta HoneyBadger 12.01.2018 - 10:53
fonte

1 risposta

1

OAuth2 di per sé non richiede l'intera pagina Web di prompt di terze parti e token Multi Factor che sono difficili da automatizzare.

È possibile utilizzare il tipo di concessione della password e memorizzare un nome utente e una password di servizio nella configurazione delle applicazioni.

Tuttavia, se non controlli il server di autenticazione e devi far accedere una persona reale, il tuo flusso sembra sensato.

Potresti potenzialmente migliorarlo consentendo al destinatario dell'e-mail di completare il processo di autenticazione tramite un sito web piuttosto che dover interagire direttamente con il servizio. Forse anche inviando loro l'URL che ottieni dal servizio auth.

Ma ciò dipenderebbe dai dettagli della tua implementazione

    
risposta data 12.01.2018 - 13:31
fonte

Leggi altre domande sui tag