Durchführen der Authentifizierung mit Schannel
Alle Schannel-Protokolle erfordern, dass der Server ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle (CA) als Nachweis seiner Identität bereitstellt. Dieser Prozess wird als Serverauthentifizierung bezeichnet. Die Clientauthentifizierung, bei der der Client einen Nachweis seiner Identität bereitstellt, ist optional und kann jederzeit vom Server angefordert werden.
Authentifizieren des Servers
Das Standardverhalten von Schannel besteht darin, die WinVerifyTrust-Funktion zu verwenden, um die Integrität und den Besitz des Serverzertifikats zu überprüfen. Um dieses Feature zu deaktivieren, geben Sie beim Aufrufen der Funktion InitializeSecurityContext (Schannel) ISC_REQ_MANUAL_CRED_VALIDATION an. Weitere Informationen finden Sie unter Manuelles Überprüfen von Schannel-Anmeldeinformationen.
Authentifizieren des Clients
Schannel überprüft die Zertifikate des Clients nicht. Der Server muss diese Authentifizierung manuell durchführen. In der Regel überprüft der Server die Identität des Clients in einer Datenbank, die Benutzerkontoinformationen enthält. Informationen zu Servern, die ein Clientkonto mithilfe eines Zertifikats abrufen müssen, finden Sie unter Zuordnen von Zertifikaten.
Wenn der Server die Clientauthentifizierung anfordert, muss der Client dem Server eines seiner Zertifikate senden. Standardmäßig versucht Schannel ohne Benachrichtigung an den Client, ein Clientzertifikat zu suchen und es an den Server zu senden. Um dieses Feature zu deaktivieren, geben Clients beim Aufrufen der Funktion InitializeSecurityContext (Schannel) ISC_REQ_USE_SUPPLIED_CREDS an. Wenn dieses Flag angegeben ist, gibt Schannel SEC_I_INCOMPLETE_CREDENTIALS an den Client zurück, wenn der Server eine Authentifizierung anfordert und der Client zuvor kein Zertifikat bereitgestellt hat.