Exécution de l’authentification à l’aide de Schannel
Tous les protocoles Schannel exigent que le serveur fournisse un certificat d’une autorité de certification approuvée comme preuve de son identité. Ce processus est appelé authentification du serveur. L’authentification du client, où le client fournit une preuve de son identité, est facultative et peut être demandée par le serveur à tout moment.
Authentification du serveur
Le comportement par défaut de Schannel consiste à utiliser la fonction WinVerifyTrust pour vérifier l’intégrité et la propriété du certificat de serveur. Pour désactiver cette fonctionnalité, spécifiez ISC_REQ_MANUAL_CRED_VALIDATION lors de l’appel de la fonction InitializeSecurityContext (Schannel). Pour plus d’informations, consultez Validation manuelle des informations d’identification Schannel.
Authentification du client
Schannel ne valide pas les certificats du client ; le serveur doit effectuer cette authentification manuellement. En règle générale, le serveur case activée l’identité du client dans une base de données contenant des informations de compte d’utilisateur. Pour les serveurs qui doivent obtenir le compte d’un client à l’aide d’un certificat, consultez Mappage de certificats.
Lorsque le serveur demande l’authentification du client, le client doit envoyer au serveur l’un de ses certificats. Par défaut, Schannel tente, sans notification au client, de localiser un certificat client et de l’envoyer au serveur. Pour désactiver cette fonctionnalité, les clients spécifient ISC_REQ_USE_SUPPLIED_CREDS lors de l’appel de la fonction InitializeSecurityContext (Schannel). Lorsque cet indicateur est spécifié, Schannel retourne SEC_I_INCOMPLETE_CREDENTIALS au client lorsque le serveur demande l’authentification et que le client n’a pas encore fourni de certificat.