Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Différences de validation des certificats entre HTTPS, SSL sur TCP et la sécurité SOAP

Vous pouvez utiliser des certificats dans Windows Communication Foundation (WCF) avec la sécurité de couche de message (SOAP) en plus de la sécurité de couche de transport (TLS) sur HTTP (HTTPS) ou TCP. Cette rubrique décrit les différences dans la façon dont ces certificats sont validés.

Lors de l'utilisation du protocole HTTPS pour communiquer entre un client et un service, le certificat que le client utilise pour s'authentifier auprès du service doit prendre en charge l'approbation de chaîne. Autrement dit, il doit être chaîné à une autorité de certification racine approuvée. Dans le cas contraire, la couche HTTP lève une exception WebException avec le message "Le serveur distant a retourné une erreur : (403) Interdit". WCF revêt cette exception en tant que MessageSecurityException.

Lors de l'utilisation du protocole HTTPS pour communiquer entre un client et un service, le certificat avec lequel le serveur effectue l'authentification doit prendre en charge l'approbation de chaîne par défaut. Autrement dit, il doit être chaîné à une autorité de certification racine approuvée. Aucun contrôle en ligne n'est effectué pour voir si le certificat a été révoqué. Vous pouvez compenser ce comportement en enregistrant un rappel RemoteCertificateValidationCallback, comme illustré dans le code ci-dessous.


ServicePointManager.ServerCertificateValidationCallback +=
    new RemoteCertificateValidationCallback(ValidateServerCertificate);


où la signature pour ValidateServerCertificate est comme suit :


public static bool ValidateServerCertificate(
  object sender,
  X509Certificate certificate,
  X509Chain chain,
  SslPolicyErrors sslPolicyErrors)


L'implémentation de ValidateServerCertificate peut effectuer toutes les vérifications que le développeur d'une application cliente juge nécessaires pour valider le certificat de service.

Lors de l'utilisation du protocole SSL (Secure Sockets Layer) sur TCP ou de la sécurité (SOAP) de message, les certificats clients sont validés en fonction de la valeur de propriété CertificateValidationMode de la classe X509ClientCertificateAuthentication. La propriété a l'une des valeurs X509CertificateValidationMode. La vérification de la révocation est effectuée en fonction des valeurs de la valeur de propriété RevocationMode de la classe X509ClientCertificateAuthentication. La propriété a l'une des valeurs X509RevocationMode.


myServiceHost.Credentials.ClientCertificate.Authentication.
    CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;       

myServiceHost.Credentials.ClientCertificate.Authentication.
    RevocationMode=X509RevocationMode.Offline; 


Lors de l'utilisation du protocole SSL sur TCP ou de la sécurité de message (SOAP), les certificats de service sont validés en fonction de la valeur de propriété CertificateValidationMode de la classe X509ServiceCertificateAuthentication. La propriété a l'une des valeurs X509CertificateValidationMode.

La vérification de la révocation est effectuée en fonction des valeurs de la valeur de propriété RevocationMode de la classe X509ServiceCertificateAuthentication. La propriété a l'une des valeurs X509RevocationMode.


myClient.ClientCredentials.ServiceCertificate.
    Authentication.CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;
myClient.ClientCredentials.ServiceCertificate.Authentication.
    RevocationMode = X509RevocationMode.Offline;


Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft