<> de sécurité <de CustomBinding ><security> of <customBinding>

Spécifie les options de sécurité d’une liaison personnalisée.Specifies the security options for a custom binding.

<configuration> <configuration>
   <System. serviceModel >   <system.serviceModel>
     <liaisons >     <bindings>
       <customBinding >       <customBinding>
         <> de liaison        <binding>
           <> de sécurité          <security>

SyntaxeSyntax

<security allowSerializedSigningTokenOnReply="Boolean"
          authenticationMode="AuthenticationMode"
          defaultAlgorithmSuite="SecurityAlgorithmSuite"
          includeTimestamp="Boolean"
          requireDerivedKeys="Boolean"
          keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
          messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
          messageSecurityVersion="WSSecurityJan2004/WSSecurityXXX2005"
          requireDerivedKeys="Boolean"
          requireSecurityContextCancellation="Boolean"
          requireSignatureConfirmation="Boolean"
          securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast">
   <issuedTokenParameters />
   <localClientSettings />
   <localServiceSettings />
   <secureConversationBootstrap />
</security>

Attributs et élémentsAttributes and Elements

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.The following sections describe attributes, child elements, and parent elements

AttributsAttributes

AttributAttribute DescriptionDescription
allowSerializedSigningTokenOnReplyallowSerializedSigningTokenOnReply facultatif.Optional. Valeur booléenne qui spécifie si un jeton sérialisé peut être utilisé sur la réponse.A Boolean value that specifies if a serialized token can be used on reply. La valeur par défaut est false.The default value is false. Si vous utilisez une liaison double, le paramètre a la valeur par défaut true et tout paramètre défini sera ignoré.When using a dual binding, the setting defaults to true and any setting made will be ignored.
authenticationModeauthenticationMode facultatif.Optional. Spécifie le mode d'authentification utilisé entre l'initiateur et le répondeur.Specifies the authentication mode used between the initiator and the responder. Reportez-vous ci-dessous pour connaître toutes les valeurs.See below for all values.

Par défaut, il s’agit de sspiNegotiated.The default is sspiNegotiated.
defaultAlgorithmSuitedefaultAlgorithmSuite facultatif.Optional. Définit les algorithmes de chiffrement de message et de clé de type WRAP.Sets the message encryption and key-wrap algorithms. Les algorithmes et les tailles de clé sont déterminés par la classe SecurityAlgorithmSuite.The algorithms and the key sizes are determined by the SecurityAlgorithmSuite class. Ces algorithmes se mappent à ceux définis dans la spécification Security Policy Language (WS-SecurityPolicy).These algorithms map to those specified in the Security Policy Language (WS-SecurityPolicy) specification.

Les valeurs possibles sont indiquées ci-dessous.Possible values are shown below. La valeur par défaut est Basic256.The default value is Basic256.

Cet attribut est employé lors de l'utilisation d'une plate-forme différente qui opte pour un jeu d'algorithmes différent de la valeur par défaut.This attribute is used when working with a different platform that opts for a set of algorithms different than the default. Vous devez connaître les forces et les faiblesses des algorithmes concernés lorsque vous modifiez ce paramètre.You should be aware of the strengths and weaknesses of the relevant algorithms when making modifications to this setting. Cet attribut est de type SecurityAlgorithmSuite.This attribute is of type SecurityAlgorithmSuite.
includeTimestampincludeTimestamp Valeur booléenne qui spécifie si les horodatages sont inclus dans chaque message.A Boolean value that specifies whether time stamps are included in each message. Par défaut, il s’agit de true.The default is true.
keyEntropyModekeyEntropyMode Spécifie la manière dont les clés de sécurisation des messages sont calculées.Specifies the way that keys for securing messages are computed. Les clés peuvent être basées uniquement sur la clé du client, sur la clé du service ou sur une combinaison des deux.Keys can be based on the client key material only, on the service key material only or a combination of both. Les valeurs valides sont les suivantes :Valid values are

- ClientEntropy : La clé de session est basée sur les données de clé fournies par le client.- ClientEntropy: The session key is based on key data provided by the client.
- ServerEntropy : La clé de session est basée sur les données de clés fournies par le serveur.- ServerEntropy: The session key is based on key data provided by the server.
- CombinedEntropy : La clé de session est basée sur les données de clé fournies par le client et le service.- CombinedEntropy: The session key is based on the key data provided by the client and service.

Par défaut, il s’agit de CombinedEntropy.The default is CombinedEntropy.

Cet attribut est de type SecurityKeyEntropyMode.This attribute is of type SecurityKeyEntropyMode.
messageProtectionOrdermessageProtectionOrder Définit l'ordre dans lequel les algorithmes de sécurité au niveau du message sont appliqués au message.Sets the order in which message level security algorithms are applied to the message. Les valeurs valides sont les suivantes :Valid values include the following:

- SignBeforeEncrypt : Commencez par signer, puis chiffrez.- SignBeforeEncrypt: Sign first, then encrypt.
- SignBeforeEncryptAndEncryptSignature : Connectez tout d’abord, chiffrez, puis chiffrez la signature.- SignBeforeEncryptAndEncryptSignature: Sign first, encrypt, then encrypt the signature.
- EncryptBeforeSign : Chiffrez tout d’abord, puis signez.- EncryptBeforeSign: Encrypt first, then sign.

La valeur par défaut dépend de la version de WS-Security qui est utilisée.The default value depends upon the version of WS-Security being used. La valeur par défaut est SignBeforeEncryptAndEncryptSignature lors de l'utilisation de WS-Security 1,1.The default value is SignBeforeEncryptAndEncryptSignature when using WS-Security 1.1. La valeur par défaut est SignBeforeEncrypt lors de l'utilisation de WS-Security 1.0.The default value is SignBeforeEncrypt when using WS-Security 1.0.

Cet attribut est de type MessageProtectionOrder.This attribute is of type MessageProtectionOrder.
messageSecurityVersionmessageSecurityVersion facultatif.Optional. Définit la version de WS-Security utilisée.Sets the version of WS-Security that is used. Les valeurs valides sont les suivantes :Valid values include the following:

- WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11- WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11
- WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10- WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
- WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10- WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10

La valeur par défaut est WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 et peut être simplement exprimée en XML par Default.The default is WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 and can be expressed in the XML as simply Default. Cet attribut est de type MessageSecurityVersion.This attribute is of type MessageSecurityVersion.
requireDerivedKeysrequireDerivedKeys Valeur booléenne qui spécifie si les clés peuvent être dérivées des clés de vérification d'origine.A Boolean value that specifies if keys can be derived from the original proof keys. Par défaut, il s’agit de true.The default is true.
requireSecurityContextCancellationrequireSecurityContextCancellation facultatif.Optional. Valeur booléenne qui spécifie si le contexte de sécurité doit être annulé et arrêté lorsqu'il n'est plus exigé.A Boolean value that specifies if security context should be cancelled and terminated when it is no longer needed. Par défaut, il s’agit de true.The default is true.
requireSignatureConfirmationrequireSignatureConfirmation facultatif.Optional. Valeur booléenne qui spécifie si la confirmation de signature WS-Security est activée.A Boolean value that specifies whether WS-Security signature confirmation is enabled. En cas de définition à true, les signatures de message sont confirmées par le répondeur.When set to true, message signatures are confirmed by the responder. Lorsque la liaison personnalisée est configurée pour des certificats mutuels ou si elle est configurée pour utiliser des jetons émis (liaisons WSS 1.1) cet attribut a la valeur par défaut true.When the custom binding is configured for mutual certificates or it is configured to use issued tokens (WSS 1.1 bindings) this attribute defaults to true. Sinon, la valeur par défaut est false.Otherwise, the default is false.

La confirmation de signature est utilisée pour confirmer que le service répond en toute confiance à une demande.Signature confirmation is used to confirm that the service is responding in full awareness of a request.
securityHeaderLayoutsecurityHeaderLayout facultatif.Optional. Spécifie le classement des éléments dans l'en-tête de sécurité.Specifies the ordering of the elements in security header. Les valeurs valides sont les suivantes :Valid values are

- Strict : Les éléments sont ajoutés à l’en-tête de sécurité conformément au principe général « déclarer avant d’utiliser ».- Strict: Items are added to the security header according to the general principle of "declare before use".
- Lax : Les éléments sont ajoutés à l'en-tête de sécurité dans n'importe quel ordre qui confirme WSS: SOAP Message security.- Lax: Items are added to the security header in any order that confirms to WSS: SOAP Message security.
- LaxWithTimestampFirst : Les éléments sont ajoutés à l'en-tête de sécurité dans n'importe quel ordre qui confirme WSS: SOAP Message security, excepté que le premier élément de l'en-tête de sécurité doit être un élément wsse:Timestamp.- LaxWithTimestampFirst: Items are added to the security header in any order that confirms to WSS: SOAP Message security except that the first element in the security header must be a wsse:Timestamp element.
- LaxWithTimestampLast : Les éléments sont ajoutés à l'en-tête de sécurité dans n'importe quel ordre qui confirme WSS: SOAP Message security, excepté que le dernier élément de l'en-tête de sécurité doit être un élément wsse:Timestamp.- LaxWithTimestampLast: Items are added to the security header in any order that confirms to WSS: SOAP Message security except that the last element in the security header must be a wsse:Timestamp element.

Par défaut, il s’agit de Strict.The default is Strict.

Cet élément est de type SecurityHeaderLayout.This element is of type SecurityHeaderLayout.

authenticationMode, attributauthenticationMode Attribute

ValueValue DescriptionDescription
StringString AnonymousForCertificate

AnonymousForSslNegotiated

CertificateOverTransport

IssuedToken

IssuedTokenForCertificate

IssuedTokenForSslNegotiated

IssuedTokenOverTransport

Kerberos

KerberosOverTransport

MutualCertificate

MutualCertificateDuplex

MutualSslNegotiated

SecureConversation

SspiNegotiated

UserNameForCertificate

UserNameForSslNegotiated

UserNameOverTransport

SspiNegotiatedOverTransport

defaultAlgorithm, attributdefaultAlgorithm Attribute

ValueValue DescriptionDescription
Basic128Basic128 Utilisez le chiffrement Aes128, Sha1 pour le résumé du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes128 encryption, Sha1 for message digest, and Rsa-oaep-mgf1p for key wrap.
Basic192Basic192 Utilisez le chiffrement Aes192, Sha1 pour le résumé du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes192 encryption, Sha1 for message digest, Rsa-oaep-mgf1p for key wrap.
Basic256Basic256 Utilisez le chiffrement Aes256, Sha1 pour le condensat du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes256 encryption, Sha1 for message digest, Rsa-oaep-mgf1p for key wrap.
Basic256Rsa15Basic256Rsa15 Utilisez Aes256 pour le chiffrement du message, Sha1 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes256 for message encryption, Sha1 for message digest and Rsa15 for key wrap.
Basic192Rsa15Basic192Rsa15 Utilisez Aes192 pour le chiffrement du message, Sha1 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes192 for message encryption, Sha1 for message digest and Rsa15 for key wrap.
TripleDesTripleDes Utilisez le chiffrement TripleDes, Sha1 pour le condensat du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use TripleDes encryption, Sha1 for message digest, Rsa-oaep-mgf1p for key wrap.
Basic128Rsa15Basic128Rsa15 Utilisez Aes128 pour le chiffrement du message, Sha1 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes128 for message encryption, Sha1 for message digest and Rsa15 for key wrap.
TripleDesRsa15TripleDesRsa15 Utilisez le chiffrement TripleDes, Sha1 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use TripleDes encryption, Sha1 for message digest and Rsa15 for key wrap.
Basic128Sha256Basic128Sha256 Utilisez Aes256 pour le chiffrement du message, Sha256 pour le résumé du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes256 for message encryption, Sha256 for message digest and Rsa-oaep-mgf1p for key wrap.
Basic192Sha256Basic192Sha256 Utilisez Aes192 pour le chiffrement du message, Sha256 pour le condensat du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes192 for message encryption, Sha256 for message digest and Rsa-oaep-mgf1p for key wrap.
Basic256Sha256Basic256Sha256 Utilisez Aes256 pour le chiffrement du message, Sha256 pour le résumé du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use Aes256 for message encryption, Sha256 for message digest and Rsa-oaep-mgf1p for key wrap.
TripleDesSha256TripleDesSha256 Utilisez TripleDes pour le chiffrement du message, Sha256 pour le résumé du message et Rsa-oaep-mgf1p pour la clé de type WRAP.Use TripleDes for message encryption, Sha256 for message digest and Rsa-oaep-mgf1p for key wrap.
Basic128Sha256Rsa15Basic128Sha256Rsa15 Utilisez Aes128 pour le chiffrement du message, Sha256 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes128 for message encryption, Sha256 for message digest and Rsa15 for key wrap.
Basic192Sha256Rsa15Basic192Sha256Rsa15 Utilisez Aes192 pour le chiffrement du message, Sha256 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes192 for message encryption, Sha256 for message digest and Rsa15 for key wrap.
Basic256Sha256Rsa15Basic256Sha256Rsa15 Utilisez Aes256 pour le chiffrement du message, Sha256 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use Aes256 for message encryption, Sha256 for message digest and Rsa15 for key wrap.
TripleDesSha256Rsa15TripleDesSha256Rsa15 Utilisez TripleDes pour le chiffrement du message, Sha256 pour le condensat du message et Rsa15 pour la clé de type WRAP.Use TripleDes for message encryption, Sha256 for message digest and Rsa15 for key wrap.

Éléments enfantsChild Elements

ÉlémentElement DescriptionDescription
<issuedTokenParameters><issuedTokenParameters> Spécifie un jeton émis en cours.Specifies a current issued token. Cet élément est de type IssuedTokenParametersElement.This element is of type IssuedTokenParametersElement.
<localClientSettings><localClientSettings> Spécifie les paramètres de sécurité d’un client local pour cette liaison.Specifies the security settings of a local client for this binding. Cet élément est de type LocalClientSecuritySettingsElement.This element is of type LocalClientSecuritySettingsElement.
<localServiceSettings><localServiceSettings> Spécifie les paramètres de sécurité d’un service local pour cette liaison.Specifies the security settings of a local service for this binding. Cet élément est de type LocalServiceSecuritySettingsElement.This element is of type LocalServiceSecuritySettingsElement.
<secureConversationBootstrap><secureConversationBootstrap> Spécifie les valeurs par défaut utilisées pour initialiser un service de conversation sécurisé.Specifies the default values used for initiating a secure conversation service.

Éléments parentsParent Elements

ÉlémentElement DescriptionDescription
<binding><binding> Définit toutes les fonctions de liaison d’une liaison personnalisée.Defines all binding capabilities of the custom binding.

NotesRemarks

Pour plus d’informations sur l’utilisation de cet élément, consultez modes d’authentification SecurityBindingElement et procédure : Créez une liaison personnalisée à l’aidede SecurityBindingElement.For more information about using this element, see SecurityBindingElement Authentication Modes and How to: Create a Custom Binding Using the SecurityBindingElement.

ExempleExample

L’exemple suivant montre comment configurer la sécurité à l’aide d’une liaison personnalisée.The following example demonstrates how to configure security using a custom binding. Il indique également comment utiliser une liaison personnalisée afin d’activer la sécurité de niveau message à l’aide d’un transport sécurisé.It shows how to use a custom binding to enable message-level security together with a secure transport. Cette configuration est utile lorsqu'un transport sécurisé est requis pour la transmission des messages entre le client et le service et que ces messages doivent en même temps bénéficier d'une sécurité de niveau message.This is useful when a secure transport is required to transmit the messages between client and service and simultaneously the messages must be secure on the message level. Cette configuration n’est pas prise en charge par les liaisons fournies par le système.This configuration is not supported by system-provided bindings.

La configuration du service définit une liaison personnalisée qui prend en charge la communication TCP protégée à l'aide du protocole TLS/SSL et de la sécurité des messages Windows.The service configuration defines a custom binding that supports TCP communication protected using TLS/SSL protocol, and Windows message security. La liaison personnalisée utilise un certificat de service afin d’authentifier le service au niveau du transport et de protéger les messages pendant leur transmission entre le client et le service.The custom binding uses a service certificate to authenticate the service on the transport level and to protect the messages during the transmission between client and service. Cela est accompli par l' < élément de liaison section sslStreamSecurity >.This is accomplished by the <sslStreamSecurity> binding element. Le certificat du service est configuré à l'aide d'un comportement de service.The service's certificate is configured using a service behavior.

En outre, la liaison personnalisée utilise la sécurité de niveau message avec le type d’informations d’identification Windows, c’est-à-dire le type par défaut.Additionally, the custom binding uses message security with Windows credential type - this is the default credential type. Cela est accompli par l’élément de liaison de sécurité .This is accomplished by the security binding element. Le client et le service sont tous deux authentifiés à l'aide de la sécurité de niveau message lorsque le mécanisme d'authentification Kerberos est disponible.Both client and service are authenticated using message-level security if Kerberos authentication mechanism is available. Si le mécanisme d'authentification Kerberos n'est pas disponible, l'authentification NTLM est utilisée.If the Kerberos authentication mechanism is not available, NTLM authentication is used. NTLM authentifie le client auprès du service mais n'authentifie pas le service auprès du client.NTLM authenticates the client to the service but does not authenticate service to the client. L’élément de liaison de sécurité est configuré SecureConversation pour utiliser AuthenticationType, ce qui entraîne la création d’une session de sécurité sur le client et le service.The security binding element is configured to use SecureConversation authenticationType, which results in the creation of a security session on both the client and the service. Ceci est nécessaire pour permettre au contrat duplex du service de fonctionner.This is required to enable the service's duplex contract to work. Pour plus d’informations sur l’exécution de cet exemple, consultez sécurité de la liaison personnalisée.For more information on running this example, see Custom Binding Security.

<configuration>
  <system.serviceModel>
    <services>
      <service name="Microsoft.ServiceModel.Samples.CalculatorService"
               behaviorConfiguration="CalculatorServiceBehavior">
        <host>
          <baseAddresses>
            <!-- use following base address -->
            <add baseAddress="net.tcp://localhost:8000/ServiceModelSamples/Service"/>
          </baseAddresses>
        </host>
        <endpoint address=""
                  binding="customBinding"
                  bindingConfiguration="Binding1"
                  contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
        <!-- the mex endpoint is exposed at net.tcp://localhost:8000/ServiceModelSamples/service/mex -->
        <endpoint address="mex"
                  binding="mexTcpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <!-- configure a custom binding -->
      <customBinding>
        <binding name="Binding1">
          <security authenticationMode="SecureConversation"
                    requireSecurityContextCancellation="true">
          </security>
          <textMessageEncoding messageVersion="Soap12WSAddressing10"
                               writeEncoding="utf-8" />
          <sslStreamSecurity requireClientCertificate="false" />
          <tcpTransport />
        </binding>
      </customBinding>
    </bindings>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata />
          <serviceDebug includeExceptionDetailInFaults="False" />
          <serviceCredentials>
            <serviceCertificate findValue="localhost"
                                storeLocation="LocalMachine"
                                storeName="My"
                                x509FindType="FindBySubjectName" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Voir aussiSee also