2012-06-13 5 views
8

Penso che ci sia un vuoto nel mio modello mentale di autenticazione WCF, sperando che qualcuno possa aiutarmi a compilarlo.WCF - È necessario un certificato di servizio per autenticare i client?

Quindi, sto creando un servizio WCF e vorrei avere clienti l'autenticazione tramite certificati, e messaggio- livello di sicurezza. Mi piacerebbe che il servizio convalidasse questi utilizzando la catena di fiducia in modo che non necessitassi del certificato di ogni client installato sul servizio. Per ora, non sono interessato a far autenticare il servizio al cliente.

Ecco la mia comprensione di ciò che è necessario per fare questo:

  1. il cliente ha bisogno di un certificato firmato da una CA che è attendibile sul lato del servizio.
  2. Il servizio richiede un CRL installato per tale CA.
  3. La configurazione del servizio deve avere la sicurezza del messaggio attivata, specificare clientCredentialType = "Certificato" e catena di sicurezza per la convalida del certificato client.
  4. La configurazione del client deve avere la sicurezza dei messaggi attivata, specificare clientCredentialType = "Certificato" e un comportamento dell'endpoint che indica come trovare il certificato client nell'archivio.

Il client invia una richiesta al servizio, inviando il suo certificato. Il servizio vede che il certificato del cliente è firmato dalla sua CA fidata e lascia passare la richiesta.

Ora, tutte le procedure dettagliate di questo processo che ho trovato includono anche una fase di creazione di un certificato per il servizio. Nessuno di loro spiega a cosa serve, che mi sta lanciando. Perché è necessario un certificato di servizio se voglio solo autenticare i client?

risposta

7

Hai ragione. In teoria non è richiesto alcun certificato server, in pratica wcf ti impone di usarne uno. La buona notizia è che si dovrebbe usare un certificato fittizio per il server e impostare ProtectionLevel su SignOnly. Suggerisco di leggere this article che parla in uno scenario simile e per lo più rilevante.

+0

Impressionante, grazie - "Perché WCF dice così" funziona per me. =) – user1454265

+0

Sei un dio ... grazie per quell'articolo – DdW