Sécurisation de servicesSecuring Services

La sécurité d’un service Windows Communication Foundation (WCF) est constituée de deux exigences principales : la sécurité de transfert et l’autorisation.Security of a Windows Communication Foundation (WCF) service consists of two primary requirements: transfer security and authorization. (Une troisième exigence, l’audit des événements de sécurité, est décrite dans audit.) En bref, la sécurité de transfert comprend l’authentification (vérification de l’identité du service et du client), de la confidentialité (chiffrement des messages) et de l’intégrité (signature numérique pour détecter la falsification).(A third requirement, auditing of security events, is described in Auditing.) In brief, transfer security includes authentication (verifying the identity of both the service and the client), confidentiality (message encryption), and integrity (digital signing to detect tampering). L'autorisation est le contrôle d'accès aux ressources, par exemple en autorisant uniquement les utilisateurs privilégiés à lire un fichier.Authorization is the control of access to resources, for example, allowing only privileged users to read a file. À l’aide des fonctionnalités de WCF, les deux exigences principales sont facilement implémentées.Using features of WCF, the two primary requirements are easily implemented.

À l’exception de la classe BasicHttpBinding (ou de l’élément <basicHttpBinding > dans la configuration), la sécurité de transfert est activée par défaut pour toutes les liaisons prédéfinies.With the exception of the BasicHttpBinding class (or the <basicHttpBinding> element in configuration), transfer security is enabled by default for all of the predefined bindings. Les rubriques de cette section présentent deux scénarios de base : implémentation de la sécurité de transfert et de l'autorisation sur un service intranet hébergé sur IIS (Internet Information Services) et implémentation de la sécurité de transfert et de l'autorisation sur un service hébergé sur IIS.The topics in this section cover two basic scenarios: implementing transfer security and authorization on an intranet service hosted on Internet Information Services (IIS), and implementing transfer security and authorization on a service hosted on IIS.

Notes

Windows XP Édition Familiale ne prend pas en charge l'authentification Windows.Windows XP Home does not support Windows authentication. Par conséquent, vous ne devez pas exécuter un service sur ce système.Therefore, you should not run a service on that system.

Concepts de base de la sécuritéSecurity Basics

La sécurité repose sur des informations d'identification.Security relies on credentials. Les informations d'identification prouvent qu'une entité est bien celle qu'elle prétend être.A credential proves that an entity is who it claims to be. (Une entité peut être une personne, un processus logiciel, une société ou tout ce qui peut être autorisé.) Par exemple, un client d’un service fait une revendication d' identitéet les informations d’identification prouvent cette revendication d’une certaine manière.(An entity can be a person, a software process, a company, or anything that can be authorized.) For example, a client of a service makes a claim of identity, and the credential proves that claim in some manner. Dans un scénario typique, un échange d'informations d'identification se produit.In a typical scenario, an exchange of credentials occurs. Tout d'abord, un service fait une revendication de son identité et la prouve au client avec des informations d'identification.First, a service makes a claim of its identity and proves it to the client with a credential. À son tour, le client fait une revendication d'identité et présente des informations d'identification au service.Conversely, the client makes a claim of identity and presents a credential to the service. Si les deux partis approuvent les informations d'identification de l'autre parti, un nouveau contexte de sécurité peut être établi dans lequel tous les messages sont échangés en toute confidentialité et sont signés afin de protéger leur intégrité.If both parties trust the other's credentials, then a secure context can be established in which all messages are exchanged in confidentiality, and all messages are signed to protect their integrity. Une fois que la service a établi l'identité du client, il peut mettre en correspondre les revendications des informations d'identification à un rôle ou une appartenance à un groupe.After the service establishes the client's identity, it can then match the claims in the credential to a role or membership in a group. Dans les deux cas, à l'aide du rôle ou du groupe auquel le client appartient, le service autorise le client à exécuter un jeu limité d'opérations qui dépend des privilèges du rôle ou du groupe.In either case, using the role or the group to which the client belongs, the service authorizes the client to perform a limited set of operations based on the role or group privileges.

Mécanismes de la sécurité WindowsWindows Security Mechanisms

Si l'ordinateur client et l'ordinateur de service se trouvent tous deux dans un domaine Windows qui requiert que tous deux se connectent au réseau, les informations d'identification sont fournies par l'infrastructure Windows.If the client and the service computer are both on a Windows domain that requires both to log on to the network, the credentials are provided by Windows infrastructure. Dans ce cas, les informations d'identification sont établies lorsqu'un utilisateur se connecte au réseau.In that case, the credentials are established when a computer user logs on to the network. Chaque utilisateur et chaque ordinateur du réseau doit être validé comme appartenant au jeu approuvé d'utilisateurs et d'ordinateurs.Every user and every computer on the network must be validated as belonging to the trusted set of users and computers. Sur un système Windows, chacun de ces utilisateurs et ordinateurs est également appelé principal de sécurité.On a Windows system, every such user and computer is also known as a security principal.

Sur un domaine Windows assorti d'un contrôleur Kerberos , le contrôleur Kerberos utilise un schéma reposant sur l'octroi de tickets à chaque principal de sécurité.On a Windows domain backed by a Kerberos controller, the Kerberos controller uses a scheme based on granting tickets to each security principal. Les tickets octroyés par le contrôleur sont approuvés par d'autres octroyeurs de tickets du système.The tickets the controller grants are trusted by other ticket granters in the system. Dès lors qu'une entité essaie d'exécuter une opération ou d'accéder à une ressource (comme un fichier ou un répertoire sur un ordinateur), la validité du ticket est vérifiée et, si elle est établie, un autre ticket est fourni à la principal de sécurité pour cette opération.Whenever an entity tries to perform some operation or access a resource (such as a file or directory on a machine), the ticket is examined for its validity and, if it passes, the principal is granted another ticket for the operation. Cette méthode d'octroi de tickets est plus efficace que l'autre solution qui consiste à essayer de valider l'entité principale pour chaque opération.This method of granting tickets is more efficient than the alternative of trying to validate the principal for every operation.

Un mécanisme plus ancien et moins sécurisé est utilisé sur les domaines Windows ; il s'agit de NT LAN Manager (NTLM).An older, less-secure mechanism used on Windows domains is NT LAN Manager (NTLM). Lorsque Kerberos ne peut pas être utilisé (généralement à l'extérieur d'un domaine Windows, comme dans un groupe de travail), NTLM peut être utilisé à la place.In cases where Kerberos cannot be used (typically outside of a Windows domain, such as in a workgroup), NTLM can be used as an alternative. NTLM est également disponible comme option de sécurité d'IIS.NTLM is also available as a security option for IIS.

Sur un système Windows, l'autorisation consiste à assigner chaque ordinateur et utilisateur à un jeu de rôles et de groupes.On a Windows system, authorization works by assigning each computer and user to a set of roles and groups. Par exemple, chaque ordinateur Windows doit être configuré et contrôlé par une personne (ou un groupe de personnes) ayant le rôle d' administrateur.For example, every Windows computer must be set up and controlled by a person (or group of people) in the role of the administrator. Il existe également un autre rôle, celui d' utilisateur, qui dispose d'un jeu beaucoup plus limité d'autorisations.Another role is that of the user, which has a much more constrained set of permissions. Outre le rôle, les utilisateurs sont assignés à des groupes.In addition to the role, users are assigned to groups. Un groupe permet à plusieurs utilisateurs de travailler avec le même rôle.A group allows multiple users to perform in the same role. Dans la pratique, un ordinateur Windows est par conséquent administré en assignant des utilisateurs à des groupes.In practice, therefore, a Windows machine is administered by assigning users to groups. Par exemple, plusieurs utilisateurs peuvent être assignés au groupe d'utilisateurs d'un ordinateur et un jeu beaucoup plus limité d'utilisateurs peut être assigné au groupe des administrateurs.For example, several users can be assigned to the group of users of a computer, and a much more constrained set of users can be assigned to the group of administrators. Sur un ordinateur local, un administrateur peut également créer des groupes et assigner d'autres utilisateurs (voire d'autres groupes) à ces groupes.On a local machine, an administrator can also create new groups and assign other users (or even other groups) to the group.

Sur un ordinateur qui exécute Windows, chaque dossier d'un répertoire peut être protégé.On a computer running Windows, every folder in a directory can be protected. Autrement dit, vous pouvez sélectionner un dossier et contrôler qui peut accéder aux fichiers et si ces utilisateurs peuvent ou non copier, modifier ou supprimer un fichier, ou encore ajouter des fichiers au dossier.That is, you can select a folder and control who can access the files, and whether or not they can copy the file, or (in the most privileged case) change a file, delete a file, or add files to the folder. Il s'agit du contrôle d'accès. Le mécanisme associé est appelé la liste de contrôle d'accès (ACL, Access Control List).This is known as access control, and the mechanism for it is known as the access control list (ACL). Lors de la création de l'ACL, vous pouvez assigner des privilèges d'accès à tout groupe, de même qu'aux membres individuels d'un domaine.When creating the ACL, you can assign access privileges to any group or groups, as well as individual members of a domain.

L’infrastructure WCF est conçue pour utiliser ces mécanismes de sécurité Windows.The WCF infrastructure is designed to use these Windows security mechanisms. Par conséquent, si vous créez un service déployé sur un intranet dont les clients sont limités aux membres du domaine Windows, la sécurité est facilement implémentée.Therefore, if you are creating a service that is deployed on an intranet, and whose clients are restricted to members of the Windows domain, security is easily implemented. Seuls les utilisateurs valides peuvent se connecter au domaine.Only valid users can log on to the domain. Une fois les utilisateurs connectés, le contrôleur Kerberos permet à chaque utilisateur d'établir des contextes de sécurité avec tout autre ordinateur ou application.After users are logged on, the Kerberos controller enables each user to establish secure contexts with any other computer or application. Sur un ordinateur local, des groupes peuvent facilement être créés, et lors de la protection de dossiers spécifiques, ces groupes peuvent être utilisés pour assigner des privilèges d'accès sur l'ordinateur.On a local machine, groups can be easily created, and when protecting specific folders, those groups can be used to assign access privileges on the computer.

Implémentation de la sécurité Windows sur des services intranetImplementing Windows Security on Intranet Services

Pour sécuriser une application qui s'exécute exclusivement sur un domaine Windows, vous pouvez utiliser les paramètres de sécurité par défaut de la liaison WSHttpBinding ou NetTcpBinding .To secure an application that runs exclusively on a Windows domain, you can use the default security settings of either the WSHttpBinding or the NetTcpBinding binding. Par défaut, toute personne se trouvant dans le même domaine Windows peut accéder aux services WCF.By default, anyone on the same Windows domain can access WCF services. Ces utilisateurs s'étant connectés au réseau, ils sont approuvés.Because those users have logged on to the network, they are trusted. Les messages entre un service et un client sont chiffrés à des fins de confidentialité et archivés à des fins d'intégrité.The messages between a service and a client are encrypted for confidentiality and signed for integrity. Pour plus d’informations sur la création d’un service qui utilise la sécurité Windows, consultez Comment : sécuriser un service avec des informations d’identification Windows.For more information about how to create a service that uses Windows security, see How to: Secure a Service with Windows Credentials.

Autorisation à l'aide de la classe PrincipalPermissionAttributeAuthorization Using the PrincipalPermissionAttribute Class

Si vous devez limiter l'accès aux ressources d'un ordinateur, le moyen le plus simple est d'utiliser la classe PrincipalPermissionAttribute .If you need to restrict the access of resources on a computer, the easiest way is to use the PrincipalPermissionAttribute class. Cet attribut vous permet de limiter l'invocation des opérations de service en exigeant que l'utilisateur appartienne à un groupe ou un rôle Windows spécifique ou qu'il soit un utilisateur spécifique.This attribute enables you to restrict the invocation of service operations by demanding that the user be in a specified Windows group or role, or to be a specific user. Pour plus d’informations, consultez Comment : restreindre l’accès avec la classe PrincipalPermissionAttribute.For more information, see How to: Restrict Access with the PrincipalPermissionAttribute Class.

Emprunt d'identitéImpersonation

L'emprunt d'identité est un autre mécanisme que vous pouvez utiliser pour contrôler l'accès aux ressources.Impersonation is another mechanism that you can use to control access to resources. Par défaut, un service hébergé par IIS s'exécutera sous l'identité du compte ASPNET.By default, a service hosted by IIS will run under the identity of the ASPNET account. Le compte ASPNET peut accéder uniquement aux ressources pour lesquelles il possède une autorisation.The ASPNET account can access only the resources for which it has permission. Toutefois, il est possible de définir l'ACL pour un dossier de manière à exclure le compte de service ASPNET tout en autorisant certaines autres identités à accéder au dossier.However, it is possible to set the ACL for a folder to exclude the ASPNET service account, but allow certain other identities to access the folder. Reste ensuite à savoir comment autoriser ces utilisateurs à accéder au dossier si le compte ASPNET n'y est pas autorisé.The question then becomes how to allow those users to access the folder if the ASPNET account is not allowed to do so. La solution consiste à utiliser l'emprunt d'identité. Le service est alors autorisé à utiliser les informations d'identification du client pour accéder à une ressource particulière.The answer is to use impersonation, whereby the service is allowed to use the credentials of the client to access a particular resource. L'accès à une base de données SQL Server à laquelle seuls certains utilisateurs sont autorisés à accéder est un autre exemple.Another example is when accessing a SQL Server database to which only certain users have permission. Pour plus d’informations sur l’utilisation de l’emprunt d’identité, consultez Comment : emprunter l’identité d’un client sur un service et délégation et emprunt d’identité.For more information about using impersonation, see How to: Impersonate a Client on a Service and Delegation and Impersonation.

Sécurité sur InternetSecurity on the Internet

La sécurité sur Internet revêt les mêmes spécifications que la sécurité sur un intranet.Security on the Internet consists of the same requirements as security on an intranet. Un service doit présenter ses informations d'identification pour prouver son authenticité, et les clients doivent prouver leur identité au service.A service needs to present its credentials to prove its authenticity, and clients need to prove their identity to the service. Une fois l'identité d'un client prouvée, le service peut contrôler le niveau d'accès du client aux ressources.Once a client's identity is proven, the service can control how much access the client has to resources. Toutefois, en raison de la nature hétérogène d'Internet, les informations d'identification présentées diffèrent de celles utilisées sur un domaine Windows.However, due to the heterogeneous nature of the Internet, the credentials presented differ from those used on a Windows domain. Alors qu'un contrôleur Kerberos gère l'authentification des utilisateurs sur un domaine avec des tickets pour les informations d'identification, sur Internet, les services et les clients peuvent utiliser de nombreuses méthodes pour présenter les informations d'identification.Whereas a Kerberos controller handles the authentication of users on a domain with tickets for credentials, on the Internet, services and clients rely on any one of several different ways to present credentials. Toutefois, l’objectif de cette rubrique est de présenter une approche commune qui vous permet de créer un service WCF accessible sur Internet.The objective of this topic, however, is to present a common approach that enables you to create a WCF service that is accessible on the Internet.

Utilisation d'IIS et d'ASP.NETUsing IIS and ASP.NET

Les spécifications de la sécurité Internet, tout comme les mécanismes de résolution de ces problèmes, ne sont pas nouveaux.The requirements of Internet security, and the mechanisms to solve those problems, are not new. IIS est le serveur Web de Microsoft pour Internet et propose de nombreuses fonctionnalités de sécurité qui répondent à ces problèmes. en outre, ASP.NET comprend des fonctionnalités de sécurité que les services WCF peuvent utiliser.IIS is Microsoft's Web server for the Internet and has many security features that address those problems; in addition, ASP.NET includes security features that WCF services can use. Pour tirer parti de ces fonctionnalités de sécurité, hébergez un service WCF sur IIS.To take advantage of these security features, host an WCF service on IIS.

Utilisation de fournisseurs d'appartenances et de rôles ASP.NETUsing ASP.NET Membership and Role Providers

ASP.NET inclut un fournisseur d'appartenances et de rôles.ASP.NET includes a membership and role provider. Ce fournisseur est une base de données de paires nom d'utilisateur/mot de passe utilisées pour l'authentification des appelants, qui vous permet également de spécifier les privilèges d'accès de chaque appelant.The provider is a database of user name/password pairs for authenticating callers that also allows you to specify each caller's access privileges. Avec WCF, vous pouvez facilement utiliser un fournisseur d’appartenances et de rôles préexistant par le biais de la configuration.With WCF, you can easily use a pre-existing membership and role provider through configuration. Pour obtenir un exemple d'application démontrant ces propos, consultez l'exemple Membership and Role Provider .For a sample application that demonstrates this, see the Membership and Role Provider sample.

Informations d'identification utilisées par IISCredentials Used by IIS

À la différence d'un domaine Windows assorti d'un contrôleur Kerberos, Internet est un environnement qui ne dispose d'aucun contrôleur pour gérer les millions d'utilisateurs qui se connectent à tout moment.Unlike a Windows domain backed by a Kerberos controller, the Internet is an environment without a single controller to manage the millions of users logging on at any time. Au lieu de cela, les informations d'identification sur Internet ont très souvent la forme de certificats X.509 (également appelés certificats Secure Sockets Layer ou SSL).Instead, credentials on the Internet most often are in the form of X.509 certificates (also known as Secure Sockets Layer, or SSL, certificates). Ces certificats sont généralement émis par une autorité de certification, qui peut être une société tierce qui se porte garant de l'authenticité du certificat et de la personne pour laquelle il a été émis.These certificates are typically issued by a certification authority, which can be a third-party company that vouches for the authenticity of the certificate and the person it has been issued to. Pour exposer votre service sur Internet, vous devez également fournir un tel certificat approuvé pour authentifier votre service.To expose your service on the Internet, you must also supply such a trusted certificate to authenticate your service.

Là se pose la question suivante : comment obtenir un tel certificat ?The question arises at this point, how do you get such a certificate? Une approche consiste à s'adresser à une autorité de certification tierce, telle qu'Authenticode ou VeriSign, lorsque vous êtes prêt à déployer votre service et à acheter un certificat pour votre service.One approach is to go to a third-party certification authority, such as Authenticode or VeriSign, when you are ready to deploy your service, and purchase a certificate for your service. Toutefois, si vous êtes dans la phase de développement avec WCF et que vous n’êtes pas encore prêt à vous engager à acheter un certificat, il existe des outils et des techniques pour créer des certificats X. 509 que vous pouvez utiliser pour simuler un déploiement de production.However, if you are in the development phase with WCF and not yet ready to commit to purchasing a certificate, tools and techniques exist for creating X.509 certificates that you can use to simulate a production deployment. Pour plus d’informations, consultez utilisation des certificats.For more information, see Working with Certificates.

Modes de sécuritéSecurity Modes

La programmation de la sécurité WCF implique quelques points de décision essentiels.Programming WCF security entails a few critical decision points. L'un des plus basiques est le choix du mode de sécurité.One of the most basic is the choice of security mode. Les deux principaux modes de sécurité sont le mode de transport et le mode de message.The two major security modes are transport mode and message mode.

Un troisième mode, qui combine la sémantique des deux principaux modes, est le mode de transport avec informations d'identification de message.A third mode, which combines the semantics of both major modes, is transport with message credentials mode.

Le mode de sécurité détermine de quelle manière les messages sont sécurisés. Chaque mode présente des avantages et des inconvénients, comme expliqué ci-après.The security mode determines how messages are secured, and each choice has advantages and disadvantages, as explained below. Pour plus d’informations sur la définition du mode de sécurité, consultez Comment : définir le mode de sécurité.For more information about setting the security mode, see How to: Set the Security Mode.

mode de transportTransport Mode

Il existe plusieurs couches entre le réseau et l'application.There are several layers between the network and the application. L'une d'elles est la couche transport , qui gère le transfert de messages entre des points de terminaison.One of these is the transport layer , which manages the transfer of messages between endpoints. Dans le cadre de cet objectif, il est nécessaire de comprendre que WCF utilise plusieurs protocoles de transport, chacun pouvant sécuriser le transfert des messages.For the present purpose, it is only required that you understand that WCF uses several transport protocols, each of which can secure the transfer of messages. (Pour plus d’informations sur les transports, consultez transports.)(For more information about transports, see Transports.)

Le protocole HTTP est très largement utilisé. Il en existe un autre, le protocole TCP.A commonly used protocol is HTTP; another is TCP. Chacun de ces protocoles peut sécuriser le transfert de messages par un ou plusieurs mécanismes propres au protocole.Each of these protocols can secure message transfer by a mechanism (or mechanisms) particular to the protocol. Par exemple, le protocole HTTP est sécurisé à l'aide de SSL sur HTTP, généralement abrégé en « HTTPS ».For example, the HTTP protocol is secured using SSL over HTTP, commonly abbreviated as "HTTPS." Ainsi, lorsque vous sélectionnez le mode de transport pour la sécurité, vous choisissez d'utiliser le mécanisme imposé par le protocole.Thus, when you select the transport mode for security, you are choosing to use the mechanism as dictated by the protocol. Par exemple, si vous sélectionnez la classe WSHttpBinding et lui assignez le mode de sécurité Transport, vous sélectionnez SSL sur HTTP (HTTPS) comme mécanisme de sécurité.For example, if you select the WSHttpBinding class and set its security mode to Transport, you are selecting SSL over HTTP (HTTPS) as the security mechanism. Le mode de transport présente l'avantage d'être plus efficace que le mode de message car la sécurité est intégrée à un niveau comparativement bas.The advantage of the transport mode is that it is more efficient than message mode because security is integrated at a comparatively low level. Si le mode de transport est utilisé, le mécanisme de sécurité doit être implémenté conformément à la spécification du transport. Les messages peuvent donc transiter en toute sécurité en allant uniquement d'un point à un autre sur le transport.When using transport mode, the security mechanism must be implemented according to the specification for the transport, and thus messages can flow securely only from point-to-point over the transport.

mode de messageMessage Mode

Par opposition, le mode de message assure la sécurité en incluant les données de sécurité dans chaque message.In contrast, message mode provides security by including the security data as part of every message. Avec l'utilisation des en-têtes de sécurité XML et SOAP, les informations d'identification et autres données nécessaires pour assurer l'intégrité et la confidentialité du message sont incluses dans chaque message.Using XML and SOAP security headers, the credentials and other data needed to ensure the integrity and confidentiality of the message are included with every message. Chaque message inclut des données de sécurité, ce qui a un impact sur les performances dans la mesure où chaque message doit être traité individuellement.Every message includes security data, so it results in a toll on performance because each message must be individually processed. (En mode de transport, une fois la couche de transport sécurisée, tous les messages sont acheminés librement.) Toutefois, la sécurité des messages présente un avantage sur la sécurité du transport : elle est plus flexible.(In transport mode, once the transport layer is secured, all messages flow freely.) However, message security has one advantage over transport security: it is more flexible. En effet, les spécifications de sécurité ne sont pas déterminées par le transport.That is, the security requirements are not determined by the transport. Vous pouvez utiliser tout type d'informations d'identification du client pour sécuriser le message.You can use any type of client credential to secure the message. (En mode de transport, le protocole de transport détermine le type d'informations d'identification du client que vous pouvez utiliser.)(In transport mode, the transport protocol determines the type of client credential that you can use.)

Transport avec informations d'identification de messageTransport with Message Credentials

Le troisième mode combine le meilleur de la sécurité de transport et de la sécurité de message.The third mode combines the best of both transport and message security. Dans ce mode, la sécurité de transport est utilisée pour garantir efficacement la confidentialité et l'intégrité de chaque message.In this mode, transport security is used to efficiently ensure the confidentiality and integrity of every message. En même temps, chaque message inclut ses propres informations d'identification, ce qui permet au message d'être authentifié.At the same time, every message includes its credential data, which allows the message to be authenticated. Avec l'authentification, l'autorisation peut également être implémentée.With authentication, authorization can also be implemented. En authentifiant un expéditeur, l'accès aux ressources peut être accordé (ou refusé) en fonction de l'identité de l'expéditeur.By authenticating a sender, access to resources can be granted (or denied) according to the sender's identity.

Spécification du type d'informations d'identification du client et de la valeur des informations d'identificationSpecifying the Client Credential Type and Credential Value

Après avoir sélectionné un mode de sécurité, vous voudrez sans doute spécifier un type d'informations d'identification du client.After you have selected a security mode, you may also want to specify a client credential type. Le type d'informations d'identification du client spécifie quel type un client doit utiliser pour s'authentifier auprès du serveur.The client credential type specifies what type a client must use to authenticate itself to the server.

Un type d'informations d'identification du client n'est pas requis dans tous les scénarios.Not all scenarios require a client credential type, however. Avec SSL sur HTTP (HTTPS), un service s'authentifie auprès du client.Using SSL over HTTP (HTTPS), a service authenticates itself to the client. Dans le cadre de cette authentification, le certificat du service est envoyé au client dans un processus appelé négociation.As part of this authentication, the service's certificate is sent to the client in a process called negotiation. Le transport sécurisé par SSL garantit que tous les messages sont confidentiels.The SSL-secured transport ensures that all messages are confidential.

Si vous créez un service qui requiert l'authentification du client, le type d'informations d'identification du client que vous choisirez dépend du transport et du mode sélectionnés.If you are creating a service that requires that the client be authenticated, your choice of a client credential type depends on the transport and mode selected. Par exemple, l'utilisation du transport HTTP et la sélection du mode de transport vous laissent différents choix, comme Basic ou Digest.For example, using the HTTP transport and choosing transport mode gives you several choices, such as Basic, Digest, and others. (Pour plus d’informations sur ces types d’informations d’identification, consultez Présentation de l’authentification http.)(For more information about these credential types, see Understanding HTTP Authentication.)

Si vous créez un service sur un domaine Windows qui sera uniquement disponible pour d'autres utilisateurs du réseau, le plus facile à utiliser est le type d'informations d'identification du client Windows.If you are creating a service on a Windows domain that will be available only to other users of the network, the easiest to use is the Windows client credential type. Toutefois, vous pouvez également avoir besoin de fournir un service avec un certificat.However, you may also need to provide a service with a certificate. Pour cela, consultez How to: Specify Client Credential Values.This is shown in How to: Specify Client Credential Values.

Valeurs d'informations d'identificationCredential Values

Une valeur d'informations d'identification représente les informations d'identification utilisées par le service.A credential value is the actual credential the service uses. Après avoir spécifié un type d'informations d'identification, vous pouvez également avoir besoin de configurer votre service avec les informations d'identification réelles.Once you have specified a credential type, you may also need to configure your service with the actual credentials. Si vous avez sélectionné Windows (et si le service s'exécutera sur un domaine Windows), vous ne spécifiez pas de valeur d'informations d'identification réelle.If you have selected Windows (and the service will run on a Windows domain), then you do not specify an actual credential value.

IdentityIdentity

Dans WCF, le terme identité a des significations différentes pour le serveur et le client.In WCF, the term identity has different meanings to the server and the client. Brièvement, lors de l'exécution d'un service, une identité est assignée au contexte de sécurité après l'authentification.In brief, when running a service, an identity is assigned to the security context after authentication. Pour afficher l'identité réelle, vérifiez les propriétés WindowsIdentity et PrimaryIdentity de la classe ServiceSecurityContext .To view the actual identity, check the WindowsIdentity and PrimaryIdentity properties of the ServiceSecurityContext class. Pour plus d’informations, consultez Comment : examiner le contexte de sécurité.For more information, see How to: Examine the Security Context.

Par opposition, sur le client, l'identité est utilisée pour valider le service.In contrast, on the client, identity is used to validate the service. Au moment du design, un développeur client peut affecter à l' <d’identité > élément une valeur obtenue du service.At design time, a client developer can set the <identity> element to a value obtained from the service. Au moment de l'exécution, le client vérifie la valeur de l'élément par rapport à l'identité réelle du service.At run time, the client checks the value of the element against the actual identity of the service. Si la vérification échoue, le client termine la communication.If the check fails, the client terminates the communication. La valeur peut être un nom d'utilisateur principal (UPN, User Principal Name) si le service s'exécute sous l'identité d'un utilisateur particulier ou un nom de principal du service (SPN, Service Principal Name) si le service s'exécute sous un compte d'ordinateur.The value can be a user principal name (UPN) if the service runs under a particular user's identity or a service principal name (SPN) if the service runs under a machine account. Pour plus d’informations, consultez identité du service et authentification.For more information, see Service Identity and Authentication. Les informations d'identification peuvent également être un certificat ou un champ d'un certificat qui identifie le certificat.The credential could also be a certificate, or a field found on a certificate that identifies the certificate.

Niveaux de protectionProtection Levels

La propriété ProtectionLevel est présente sur plusieurs classes d'attributs (telles que les classes ServiceContractAttribute et OperationContractAttribute ).The ProtectionLevel property occurs on several attribute classes (such as the ServiceContractAttribute and the OperationContractAttribute classes). Le niveau de protection est une valeur qui spécifie si les messages (ou parties de messages) qui prennent en charge un service sont signés, signés et chiffrés, ou envoyés sans signature ou chiffrement.The protection level is a value that specifies whether the messages (or message parts) that support a service are signed, signed and encrypted, or sent without signatures or encryption. Pour plus d’informations sur la propriété, consultez Présentation du niveau de protectionet pour obtenir des exemples de programmation, consultez How to : Set the ProtectionLevel Property.For more information about the property, see Understanding Protection Level, and for programming examples, see How to: Set the ProtectionLevel Property. Pour plus d’informations sur la conception d’un contrat de service avec les ProtectionLevel en contexte, consultez conception de contrats de service.For more information about designing a service contract with the ProtectionLevel in context, see Designing Service Contracts.

Voir aussiSee also