Partager via


Liaisons et sécurité

Les liaisons fournies par le système incluses dans Windows Communication Foundation (WCF) offrent un moyen rapide de programmer des applications WCF. À une exception près, toutes les liaisons ont un schéma de sécurité par défaut activé. Cette rubrique vous aide à sélectionner la liaison appropriée pour vos besoins de sécurité.

Pour obtenir une vue d’ensemble de la sécurité WCF, consultez Vue d’ensemble de la sécurité. Pour plus d’informations sur la programmation de WCF à l’aide de liaisons, consultez Programmation de la sécurité WCF.

Si vous avez déjà sélectionné une liaison, vous pouvez en savoir plus sur les comportements d’exécution associés à la sécurité dans les comportements de sécurité.

Certaines fonctions de sécurité ne sont pas programmables à l’aide des liaisons fournies par le système. Pour plus de contrôle à l’aide d’une liaison personnalisée, consultez Fonctionnalités de sécurité avec des liaisons personnalisées.

Fonctions de sécurité des liaisons

WCF inclut un certain nombre de liaisons fournies par le système qui répondent à la plupart des besoins. Si une liaison particulière n'est pas suffisante, vous pouvez également créer une liaison personnalisée. Pour obtenir la liste des liaisons fournies par le système, consultez System-Provided Liaisons. Pour plus d’informations sur les liaisons personnalisées, consultez Liaisons personnalisées.

Chaque liaison dans WCF comporte deux formes : en tant qu’API et en tant qu’élément XML utilisé dans un fichier de configuration. Par exemple, l’API WSHttpBinding a un équivalent dans <wsHttpBinding>.

La section suivante répertorie les deux formulaires pour chaque liaison et récapitule les fonctionnalités de sécurité.

BasicHttp

Dans le code, utilisez la BasicHttpBinding classe ; dans la configuration, utilisez basicHttpBinding<>.

Cette liaison est conçue pour être utilisée avec une gamme de technologies existantes, notamment les suivantes :

  • Services Web ASP.NET (ASMX), version 1.

  • Applications WSE (Améliorations des Services Web).

  • Profil de base tel que défini dans la spécification (WS-I) de l’interopérabilité des services web (https://go.microsoft.com/fwlink/?LinkId=38955).

  • Profil de sécurité de base tel que défini dans WS-I.

Par défaut, cette liaison n’est pas sécurisée. Il est conçu pour interagir avec les services ASMX. Lorsque la sécurité est activée, la liaison est conçue pour une interopérabilité transparente avec des mécanismes de sécurité IIS (Internet Information Services), tels que l’authentification de base, digest et la sécurité Windows intégrée. Pour plus d’informations, consultez Vue d’ensemble de la sécurité des transports. Cette liaison prend en charge les fonctionnalités suivantes :

  • Sécurité du transport HTTPS.

  • Authentification de base HTTP.

  • WS-Security.

Pour plus d'informations, voir BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType et BasicHttpSecurityMode.

WSHttpBinding

Dans le code, utilisez la WSHttpBinding classe ; dans la configuration, utilisez wsHttpBinding<>.

Par défaut, cette liaison implémente la spécification WS-Security et fournit une interopérabilité avec les services qui implémentent les spécifications WS-*. Il prend en charge les éléments suivants :

  • Sécurité du transport HTTPS.

  • WS-Security.

  • Protection de transport HTTPS avec sécurité des informations d’identification de message SOAP pour l’authentification de l’appelant.

Pour plus d’informations, consultez WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialType et HttpProxyCredentialType.

WSDualHttpBinding

Dans le code, utilisez la WSDualHttpBinding classe ; dans la configuration, utilisez <wsDualHttpBinding>.

Cette liaison est conçue pour permettre les applications de services duplex. Cette liaison implémente la spécification WS-Security pour la sécurité de transfert basée sur les messages. La sécurité des transports n’est pas disponible. Par défaut, il fournit les fonctionnalités suivantes :

  • Implémente la messagerie WS-Reliable pour la fiabilité.

  • Implémente WS-Security pour la sécurité du transfert et l’authentification.

  • Utilise HTTP pour la remise des messages.

  • Utilise l’encodage de message texte/XML.

À l'aide de WS-Security (sécurité au niveau de la couche de message), la liaison vous permet de configurer les paramètres suivants :

  • Suite d’algorithmes de sécurité pour déterminer l’algorithme de chiffrement.

  • Options de liaison pour les éléments suivants :

    • Fourniture des informations d'identification de service disponibles hors bande au niveau du client.

    • Fourniture des informations d'identification de service négociées à partir du service dans le cadre de l'installation des canaux.

Pour plus d’informations, consultez WSDualHttpSecurity et WSDualHttpSecurityMode.

NetTcpBinding

Dans le code, utilisez la NetTcpBinding classe ; dans la configuration, utilisez netTcpBinding<>.

Cette liaison est optimisée pour la communication entre ordinateurs. Par défaut, il présente les caractéristiques suivantes :

  • Elle implémente la sécurité au niveau de la couche de transport.

  • Utilise la sécurité de Windows pour garantir la sécurité et l'authentification du transfert.

  • Utilise TCP pour le transport.

  • Implémente l’encodage de message binaire.

  • Mise en œuvre du système de messagerie WS-Reliable.

Les options incluent :

  • Sécurité au niveau de la couche de message (à l'aide de WS-Security).

  • Sécurité du transport avec les informations d’identification du message : confidentialité et intégrité fournies par le protocole TLS (Transport Layer Security) via TCP et informations d’identification pour l’autorisation fournie par WS-Security.

Pour plus d’informations, consultez NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp et MessageCredentialType.

NetNamedPipeBinding

Dans le code, utilisez la NetNamedPipeBinding classe ; dans la configuration, utilisez netNamedPipeBinding<>.

Cette liaison est optimisée pour la communication entre processus (généralement sur le même ordinateur). Par défaut, cette liaison présente les caractéristiques suivantes :

  • Utilise la sécurité de transport pour le transfert de messages et l’authentification.

  • Utilise des canaux nommés pour la remise des messages.

  • Implémente l’encodage de message binaire.

  • Chiffrement et signature de message.

Les options incluent :

  • Authentification à l’aide de la sécurité Windows.

Pour plus d'informations, consultez NetNamedPipeSecurity, NetNamedPipeSecurityMode et NamedPipeTransportSecurity.

MsmqIntegrationBinding

Dans le code, utilisez la classe MsmqIntegrationBinding ; dans la configuration, utilisez <msmqIntegrationBinding>.

Cette liaison est optimisée pour créer des clients et des services WCF qui interagissent avec des points de terminaison MICROSOFT Message Queuing (MSMQ) non WCF.

Par défaut, cette liaison utilise la sécurité du transport et fournit les caractéristiques de sécurité suivantes :

  • La sécurité peut être désactivée (Aucun).

  • Sécurité du transport MSMQ (Transport).

Pour plus d’informations, consultez NetMsmqSecurity et NetMsmqSecurityMode.

NetMsmqBinding

Dans le code, utilisez la NetMsmqBinding classe ; dans la configuration, utilisez netMsmqBinding<>.

Cette liaison est destinée à être utilisée lors de la création de services WCF qui nécessitent la prise en charge des messages en file d’attente MSMQ.

Par défaut, cette liaison utilise la sécurité du transport et fournit les caractéristiques de sécurité suivantes :

  • La sécurité peut être désactivée (Aucun).

  • Sécurité du transport MSMQ (Transport).

  • Sécurité des messages basés sur SOAP (Message).

  • Transport et sécurité des messages simultanés (les deux).

  • Types d’informations d’identification du client pris en charge : None, Windows, UserName, Certificate, IssuedToken.

Les Certificate informations d’identification sont prises en charge uniquement lorsque le mode de sécurité est défini sur Both ou Message.

Pour plus d’informations, consultez MessageSecurityOverMsmq et MsmqTransportSecurity.

WSFederationHttpBinding

Dans le code, utilisez la WSFederationHttpBinding classe ; dans la configuration, utilisez wsFederationHttpBinding<>.

Par défaut, cette liaison utilise WS-Security (sécurité de la couche message).

Pour plus d’informations, consultez Fédération, WSFederationHttpSecurityet WSFederationHttpSecurityMode.

Liaisons personnalisées

Si aucune des liaisons fournies par le système ne répond à vos exigences, vous pouvez créer une liaison personnalisée avec un élément de liaison de sécurité personnalisé. Pour plus d’informations, consultez Fonctionnalités de sécurité avec des liaisons personnalisées.

Options de liaison

Le tableau suivant récapitule les fonctionnalités proposées dans le paramètre de mode de sécurité, autrement dit, elle répertorie les fonctionnalités disponibles lorsque le mode de sécurité est défini sur Transport, Messageou TransportWithMessageCredential. Utilisez ce tableau pour vous aider à trouver les fonctionnalités de sécurité dont votre application a besoin.

Réglage Fonctionnalités
Transport Authentification du serveur

Authentification du client

Sécurité point à point

Interopérabilité

Accélération matérielle

Débit élevé

Pare-feu sécurisé

Applications à latence élevée

Rechiffrement sur plusieurs étapes
Message Authentification du serveur

Authentification du client

Sécurité de bout en bout

Interopérabilité

Revendications enrichies

Fédération

Authentification multifacteur

Jetons personnalisés

Service de notaire/horodatage

Applications à latence élevée

Persistance des signatures de message
TransportWithMessageCredential Authentification du serveur

Authentification du client

Sécurité point à point

Interopérabilité

Accélération matérielle

Débit élevé

Revendications client enrichies

Fédération

Authentification multifacteur

Jetons personnalisés

Pare-feu sécurisé

Applications à latence élevée

Rechiffrement sur plusieurs étapes

Le tableau suivant répertorie les liaisons qui prennent en charge les différents paramètres de mode. Sélectionnez une liaison dans le tableau à utiliser pour créer le point de terminaison de votre service.

Reliure Prise en charge du mode de transport Prise en charge du mode Message Prise en charge de TransportWithMessageCredential
BasicHttpBinding Oui Oui Oui
WSHttpBinding Oui Oui Oui
WSDualHttpBinding Non Oui Non
NetTcpBinding Oui Oui Oui
NetNamedPipeBinding Oui Non Non
NetMsmqBinding Oui Oui Non
MsmqIntegrationBinding Oui Non Non
wsFederationHttpBinding Non Oui Oui

Informations d'identification de transport dans les liaisons

Le tableau suivant répertorie les types d’informations d’identification du client disponibles lors de l’utilisation BasicHttpBinding ou WSHttpBinding en mode de sécurité de transport.

Catégorie Descriptif
Aucun Spécifie que le client n’a pas besoin de présenter d’informations d’identification. Cela se traduit par un client anonyme.
Élémentaire Authentification de base. Pour plus d’informations, consultez RFC 2617 – Authentification HTTP : Authentification de base et Digest, disponible à l’adresse https://go.microsoft.com/fwlink/?LinkId=84023.
Résumé Authentification Digest. Pour plus d’informations, consultez RFC 2617 – Authentification HTTP : Authentification de base et Digest, disponible à l’adresse https://go.microsoft.com/fwlink/?LinkId=84023.
NTLM Authentification NTLM (NT LAN Manager).
Fenêtres Authentification Windows.
Certificat Authentification effectuée à l’aide d’un certificat.
IssuedToken Permet au service de demander que le client soit authentifié à l’aide d’un jeton émis par un service de jeton de sécurité ou par CardSpace. Pour plus d’informations, consultez Fédération et Jetons émis.

Informations d'identification du client de message dans les liaisons

Le tableau suivant répertorie les types d’informations d’identification du client disponibles lors de l’utilisation d’une liaison en mode de sécurité message.

Catégorie Descriptif
Aucun Permet au service d’interagir avec des clients anonymes.
Fenêtres Permet aux échanges de messages SOAP d’être effectués dans le contexte authentifié d’une information d’identification Windows.
Nom d’utilisateur Permet au service de demander que le client soit authentifié à l’aide d’informations d’identification de nom d’utilisateur. Notez que lorsque le mode de sécurité est défini TransportWithMessageCredentialsur , WCF ne prend pas en charge l’envoi d’une synthèse de mot de passe ou la dérivation de clés à l’aide du mot de passe et l’utilisation de ces clés pour la sécurité du mode Message. Par conséquent, WCF exige que le transport soit sécurisé lorsqu'on utilise des informations d'identification de nom d'utilisateur.
Certificat Permet au service de demander que le client soit authentifié à l’aide d’un certificat.
IssuedToken Permet au service d’utiliser un service de jeton de sécurité pour fournir un jeton personnalisé.

Voir aussi