Liaisons et sécurité

Les liaisons fournies par le système incluses avec Windows Communication Foundation (WCF) permettent de programmer rapidement des applications WCF. À une exception près, la méthode de sécurité par défaut de toutes les liaisons est activée. Cette rubrique vous permet de sélectionner la liaison appropriée à 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, de plus amples informations sur les comportements du runtime associés sont disponibles dans 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 spécifique ne suffit pas, vous pouvez également créer une liaison personnalisée. Pour une liste de liaisons fournies par le système, consultez Liaisons fournies par le système. Pour plus d’informations sur les liaisons personnalisées, consultez Liaisons personnalisées.

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

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

BasicHttp

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

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

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

  • Applications WSE (Web Service Enhancements).

  • Basic Profile tel que défini dans la spécification WS-I (Web Services Interoperability) (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. Elle est conçue pour interagir avec les services ASMX. Lorsque la sécurité est activée, la liaison fournit une interopérabilité transparente avec les 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é du transport. 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 classe WSHttpBinding. Dans la configuration, utilisez la classe <wsHttpBinding>.

Par défaut, cette liaison implémente la spécification WS-Security et fournit l’interopérabilité avec les services qui implémentent les spécifications WS-*. Elle prend en charge les fonctionnalités suivantes :

  • Sécurité du transport HTTPS.

  • WS-Security.

  • Protection du transport HTTPS avec sécurité des informations d'identification de message SOAP permettant d'authentifier l'appelant.

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

WSDualHttpBinding

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

Cette liaison est conçue pour activer des applications de service duplex. Elle implémente la spécification WS-Security pour la sécurité de transfert basée sur les messages. La sécurité de transport n'est pas disponible. Par défaut, elle fournit les fonctionnalités suivantes :

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

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

  • Utilise HTTP pour la remise de messages.

  • Utilise l'encodage de message Text/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 :

  • La suite algorithmique de sécurité afin de 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 classe NetTcpBinding. Dans la configuration, utilisez la classe <netTcpBinding>.

Cette liaison est optimisée pour la communication d’un ordinateur à l’autre. Par défaut, elle présente les caractéristiques suivantes :

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

  • Elle tire parti de la sécurité Windows pour l'authentification et la sécurité de transfert.

  • Elle utilise TCP pour le transport.

  • Elle implémente l'encodage de message binaire.

  • Elle implémente WS-Reliable Messaging.

Les options disponibles sont les suivantes :

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

  • Sécurité de transport à l'aide des informations d'identification du message : confidentialité et intégrité fournies par TLS (Transport Layer Security), informations d'identification pour l'autorisation fournies par WS-Security.

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

NetNamedPipeBinding

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

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

  • Elle utilise la sécurité de transport pour l'authentification et le transfert de messages.

  • Elle utilise des canaux nommés pour la remise de messages.

  • Elle implémente l'encodage de message binaire.

  • Chiffrement et signature des messages

Les options disponibles sont les suivantes :

  • 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 la classe <msmqIntegrationBinding>.

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

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

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

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

Pour plus d’informations, consultez NetMsmqSecurity et NetMsmqSecurityMode.

NetMsmqBinding

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

Cette liaison est prévue pour être utilisée dans le cadre de la création de services WCF qui requièrent la prise en charge des message en file d’attente MSMQ.

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

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

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

  • Sécurité des messages SOAP (Message).

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

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

L'information d'identification Certificate est uniquement prise en charge lorsque le mode de sécurité a la valeur Both ou Message.

Pour plus d’informations, consultez MessageSecurityOverMsmq et MsmqTransportSecurity.

WSFederationHttpBinding

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

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

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

Liaisons personnalisées

Si aucune des liaisons fournies par le système ne répondent à vos besoins, vous pouvez créer une liaison personnalisée à l’aide d’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 offertes par le paramètre de mode de sécurité défini ; autrement dit, il répertorie les fonctionnalités disponibles lorsque le mode de sécurité a la valeur Transport, Messageou TransportWithMessageCredential. Utilisez-le pour rechercher les fonctionnalités de sécurité que votre application requiert.

Paramètre 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 des sauts multiples
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 des sauts multiples

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

Liaison Prise en charge du mode Transport Prise en charge du mode Message Prise en charge de TransportWithMessageCredential
BasicHttpBinding Oui Oui Oui
WSHttpBinding Oui Oui Oui
WSDualHttpBinding No Oui No
NetTcpBinding Oui Oui Oui
NetNamedPipeBinding Oui No Non
NetMsmqBinding Oui Oui No
MsmqIntegrationBinding Oui No 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 de BasicHttpBinding ou WSHttpBinding en mode de sécurité Transport.

Type Description
None Spécifie que le client n'a pas besoin de présenter d'informations d'identification. Cela se traduit en un client anonyme.
De base Authentification de base. Pour plus d’informations, consultez la RFC 2617 - Authentification HTTP : Authentification de base et Digest disponible à l’adresse https://go.microsoft.com/fwlink/?LinkId=84023.
Digest Authentification Digest. Pour plus d’informations, consultez la 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).
Windows Authentification Windows.
Certificat Authentification effectuée à l'aide d'un certificat.
IssuedToken Autorise le service à imposer que le client soit authentifié à l’aide d’un jeton émis par un service d’émission 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.

Type Description
None Autorise le service à interagir avec des clients anonymes.
Windows Autorise les échanges de messages SOAP à se produire sous le contexte authentifié d'une information d'identification Windows.
UserName Autorise le service à imposer que le client soit authentifié à l'aide d'une information d'identification de nom d'utilisateur. Notez que lorsque le mode de sécurité a la valeur TransportWithMessageCredential, WCF ne prend pas en charge l’envoi d’un condensat du mot de passe ou la dérivation de clés à l’aide du mot de passe, ainsi que l’utilisation de ces clés pour le mode de sécurité Message. Par conséquent, WCF s’assure que le transport est sécurisé lors de l’utilisation des informations d’identification de nom d’utilisateur.
Certificat Autorise le service à exiger une authentification du client via un certificat.
IssuedToken Autorise le service à utiliser un service d'émission de jeton de sécurité afin de fournir un jeton personnalisé.

Voir aussi