Sono in procinto di progettare un sistema che consiste in un'applicazione client e un singolo servizio web. Il client è distribuito su più macchine (installate da me o da un collega) e la comunicazione tra client e server avviene tramite Internet.
Quello che sto cercando è un modo per garantire che il servizio web possa ricevere solo le richieste da quelle macchine fisiche su cui ho originariamente installato l'applicazione client.
I computer eseguiranno una sorta di Windows, non sono ancora sicuro di quale edizione ancora. E il servizio web sarà basato su WCF.
Il mio attuale pensiero è installare un certificato client sulle macchine e usarlo per l'autenticazione sul servizio web. Non sono sicuro di come o se ci sia un meccanismo per bloccare il certificato sulla macchina fisica, o semplicemente per proteggerlo con una password per impedirne l'esportazione e l'installazione su un'altra macchina.
La mia conoscenza dei certificati è molto semplice, motivo per cui ti sto chiedendo se questo sembra un approccio praticabile, o se c'è un altro modo per funzionare meglio.
Modifica : Mi rendo conto che la mia domanda iniziale era un po 'vaga su quanto sicuro avrei voluto che fosse.
L'applicazione client può essere considerata come un fastidio quotidiano per gli utenti che sono costretti a usarlo. E uno dei punti con l'applicazione, è quello di essere in grado di dire che una persona era in questa posizione / computer in un determinato momento. Quindi voglio essere in grado di dire dal mio servizio web che la richiesta non proviene da "la mia macchina". Tutto ciò al fine di impedire all'utente "infastidito" di pensare a schemi per evitare di trovarsi nella posizione in cui si trova il computer client-app. Ad esempio copiare l'applicazione su un computer portatile.
Quindi, si tratta di prevenire i semplici modi per aggirare le mie installazioni dell'applicazione da uno dei miei computer. E il tipo di utente non è qualcuno con uno sfondo IT.
Grazie per le numerose risposte utili finora