Esecuzione dell'autenticazione tramite Schannel

Tutti i protocolli Schannel richiedono al server di fornire un certificato da un'autorità di certificazione attendibile (CA) come prova della propria identità. Questo processo è denominato autenticazione server. L'autenticazione client, in cui il client fornisce la prova della propria identità, è facoltativa e può essere richiesta dal server in qualsiasi momento.

Autenticazione del server

Il comportamento predefinito di Schannel consiste nell'usare la funzione WinVerifyTrust per verificare l'integrità e la proprietà del certificato del server. Per disabilitare questa funzionalità, specificare ISC_REQ_MANUAL_CRED_VALIDATION quando si chiama la funzione InitializeSecurityContext (Schannel). Per altre informazioni, vedere Convalida manuale delle credenziali Schannel.

Autenticazione del client

Schannel non convalida i certificati del client; il server deve eseguire questa autenticazione manualmente. In genere, il server verificherà l'identità del client in un database contenente informazioni sull'account utente. Per i server che devono ottenere l'account di un client usando un certificato, vedere Mapping dei certificati.

Quando il server richiede l'autenticazione client, il client deve inviare al server uno dei certificati. Per impostazione predefinita, Schannel, senza alcuna notifica al client, tenta di individuare un certificato client e inviarlo al server. Per disabilitare questa funzionalità, i client specificano ISC_REQ_USE_SUPPLIED_CREDS quando si chiama la funzione InitializeSecurityContext (Schannel). Quando questo flag viene specificato, Schannel restituirà SEC_I_INCOMPLETE_CREDENTIALS al client quando il server richiede l'autenticazione e il client non ha fornito in precedenza un certificato.