<security> de <customBinding>
Spécifie les options de sécurité pour une liaison personnalisée.
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<security> de <customBinding>
<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"
includeTimestamp="Boolean">
<issuedTokenParameters />
<localClientSettings />
<localServiceSettings />
<secureConversationBootstrap />
</security>
Attributs et éléments
Attributs
Attribut | Description |
---|---|
allowSerializedSigningTokenOnReply |
Facultatif. Valeur booléenne qui spécifie si un jeton sérialisé peut être utilisé sur la réponse. |
authenticationMode |
Facultatif. Spécifie le mode d'authentification utilisé entre l'initiateur et le répondeur. Reportez-vous ci-dessous pour connaître toutes les valeurs. La valeur par défaut est sspiNegotiated. |
defaultAlgorithmSuite |
Facultatif. Définit les algorithmes de chiffrement de message et de clé de type WRAP. Les algorithmes et les tailles de clé sont déterminés par la classe SecurityAlgorithmSuite. Ces algorithmes se mappent à ceux définis dans la spécification Security Policy Language (WS-SecurityPolicy). Les valeurs possibles sont indiquées ci-dessous. La valeur par défaut est Basic128. 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. Vous devez connaître les forces et les faiblesses des algorithmes concernés lorsque vous modifiez ce paramètre. Cet attribut est de type SecurityAlgorithmSuite. La valeur par défaut est Aes256. |
includeTimestamp |
Valeur booléenne qui spécifie si les horodatages sont inclus dans chaque message. La valeur par défaut est true. |
keyEntropyMode |
Spécifie la manière dont les clés de sécurisation des messages sont calculées. Les clés peuvent être basées uniquement sur la clé du client, sur la clé du service ou sur une combinaison des deux. Les valeurs valides sont :
La valeur par défaut est CombinedEntropy. Cet attribut est de type SecurityKeyEntropyMode. |
messageProtectionOrder |
Définit l'ordre dans lequel les algorithmes de sécurité au niveau du message sont appliqués au message. Les valeurs valides sont les suivantes :
La valeur par défaut est SignBeforeEncrypt. Cet attribut est de type MessageProtectionOrder. |
messageSecurityVersion |
Facultatif. Définit la version de WS-Security utilisée. Les valeurs valides sont les suivantes :
La valeur par défaut est WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 et peut être simplement exprimée en XML par Default. Cet attribut est de type MessageSecurityVersion. |
requireDerivedKeys |
Valeur booléenne qui spécifie si les clés peuvent être dérivées des clés de vérification d'origine. La valeur par défaut est true. |
requireSecurityContextCancellation |
Facultatif. Valeur booléenne qui spécifie si le contexte de sécurité doit être annulé et arrêté lorsqu'il n'est plus exigé. La valeur par défaut est true. |
requireSignatureConfirmation |
Facultatif. Valeur booléenne qui spécifie si la confirmation de signature WS-Security est activée. En cas de définition à true, les signatures de message sont confirmées par le répondeur. La valeur par défaut est false. La confirmation de signature est utilisée pour confirmer que le service répond en toute confiance à une demande. |
securityHeaderLayout |
Facultatif. Spécifie le classement des éléments dans l'en-tête de sécurité. Les valeurs valides sont :
La valeur par défaut est Strict. Cet élément est de type SecurityHeaderLayout. |
Éléments enfants
Élément | Description |
---|---|
Spécifie un jeton émis en cours. Cet élément est de type IssuedTokenParametersElement. |
|
Spécifie les paramètres de sécurité d'un client local pour cette liaison. Cet élément est de type LocalClientSecuritySettingsElement. |
|
Spécifie les paramètres de sécurité d'un service local pour cette liaison. Cet élément est de type LocalServiceSecuritySettingsElement. |
|
Spécifie les valeurs par défaut utilisées pour initialiser un service de conversation sécurisé. |
Éléments parents
Élément | Description |
---|---|
Définit toutes les fonctions de liaison de la liaison personnalisée. |
Notes
Pour plus d'informations sur l'utilisation de cet élément, consultez SecurityBindingElement Authentication Modes et How To: Create a Custom Binding Using the SecurityBindingElement.
Exemple
L'exemple suivant montre comment configurer la sécurité à l'aide d'une liaison personnalisée. Il indique comment utiliser une liaison personnalisée afin d'activer la sécurité au niveau du message avec un transport sécurisé. Cette procédure est utile lorsqu'un transport sécurisé est requis pour transmettre les messages entre le client et le service et, simultanément, les messages doivent être sécurisés au niveau du message. Cette configuration n'est pas prise en charge par les liaisons fournies par le système.
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. 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 la transmission entre le client et le service. Cette tâche est effectuée par l'élément de liaison <sslStreamSecurity>. Le certificat du service est configuré à l'aide d'un comportement de service.
En outre, la liaison personnalisée utilise la sécurité du message avec le type d'informations d'identification Windows, le type d'informations d'identification par défaut. Cette tâche est effectuée par l'élément de liaison <security> de <customBinding>. Le client et le service sont tous deux authentifiés à l'aide de la sécurité au niveau du message si le mécanisme d'authentification Kerberos est disponible. Si le mécanisme d'authentification Kerberos n'est pas disponible, l'authentification NTLM est utilisée. NTLM authentifie le client au service mais n'authentifie pas le service au client. L'élément de liaison <security> de <customBinding> est configuré pour utiliser authenticationType SecureConversation, ce qui entraîne la création d'une session de sécurité à la fois au niveau du client et du service. Ceci est nécessaire pour permettre au contrat de duplex du service de s'exécuter. Pour plus d'informations sur l'exécution de cet exemple, consultez 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 aussi
Référence
<customBinding>
SecurityElement
SecurityBindingElement
CustomBinding
Autres ressources
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
How To: Create a Custom Binding Using the SecurityBindingElement
Custom Binding Security