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 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é dans WCF.

Si vous avez déjà sélectionné une liaison, de plus amples informations sur les comportements au moment de l'exécution associés sont disponibles dans Comportements de sécurité dans WCF.

Certaines fonctions de sécurité ne sont pas programmables à l'aide des liaisons fournies par le système. Pour davantage 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 consulter la 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, WSHttpBinding (API) a un équivalent dans wsHttpBinding Element.

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 basicHttpBinding Element.

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) (page pouvant être en anglais).
  • 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é 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, consultez BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType et BasicHttpSecurityMode.

WSHttpBinding

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

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 wsDualHttpBinding Element.

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 le codage 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 netTcpBinding Element.

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 le codage 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 netNamedPipeBinding Element.

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 le codage 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 msmqIntegrationBinding element.

Cette liaison est optimisée pour créer des services et des clients WCF qui interagissent avec les 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 netMsmqBinding Element.

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 WSFederationHttpBinding element.

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

Haut débit

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

Haut débit

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

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 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'information d'identification. Cela se traduit en un client anonyme.

Basic

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 (page pouvant être en anglais).

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 (page pouvant être en anglais).

NTLM

Authentification NTLM (NT LAN Manager).

Windows

Authentification Windows.

Certificate

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

Aucune

Autorise le service à interagir avec des clients anonymes.

Authentification 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 condensé 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. De ce fait, WCF s'assure que le transport est sécurisé lors de l'utilisation d'informations d'identification de nom d'utilisateur.

Certificat

Autorise le service à imposer que le client soit authentifié à l'aide d'un certificat.

IssuedToken

Autorise le service à utiliser un service d'émission de jeton de sécurité afin de fournir un jeton personnalisé.

Voir aussi

Concepts

Vue d'ensemble de la sécurité
Sélection d'un type d'informations d'identification
Comportements de sécurité dans WCF

Autres ressources

Sécurisation des services et des clients
Fonctionnalités de sécurité avec des liaisons personnalisées