Il miglior approccio per scrivere il servizio Windows

0

Abbiamo una situazione in cui dobbiamo scrivere un servizio Windows usando c #, il servizio deve essere installato su un particolare server singolo. Anche il servizio deve comunicare con un DB per accedere a determinate tabelle per elaborare i dati.

Quale sarà l'approccio migliore per trasmettere le credenziali a questo servizio?

Abbiamo creato il servizio, ma ora stiamo facendo alcune R & D sulle credenziali di passaggio. Non vogliamo salvarli codificati all'interno del codice, ovviamente non ci piace l'idea di salvarli nel file sul server. Stiamo pensando di passarlo come parametri, quando installiamo il servizio usando InstallUtil.

Che cosa ne pensate voi ragazzi, è bello o c'è qualcosa di meglio?

    
posta Hitin 06.07.2015 - 09:37
fonte

1 risposta

1

L'approccio migliore è archiviarli in una sezione crittografata del tuo file di configurazione , la chiave per crittografare questo deve essere memorizzata nell'archivio protetto di Windows per l'utente che esegue come (cioè nessun altro, nemmeno un altro amministratore può quindi accedervi). Ciò presuppone che è necessario memorizzare e utilizzare queste credenziali per passare al DB, se si sta semplicemente eseguendo il servizio come utente particolare, semplicemente installarlo come tale utente. Crea un utente appositamente per eseguire questo servizio, che è ancora meglio per la sicurezza.

Con questo approccio, stai utilizzando Windows per la sicurezza, tutti i dati privati (ad es. la stringa di connessione al DB) sono crittografati in modo che solo l'utente del servizio possa accedervi e Windows si prende cura di tutti i dettagli.

Non passare come parametri (riga comandi) al servizio - chiunque abbia i diritti per visualizzare l'applet del pannello di controllo del servizio sarà in grado di vederli!

Inoltre, assicurati di utilizzare gli utenti del dominio AD: NTLM è crackabile in pochi minuti con l'hardware di oggi,

    
risposta data 06.07.2015 - 09:56
fonte

Leggi altre domande sui tag