<security> di <customBinding>
Specifica le opzioni di protezione per un'associazione personalizzata.
<system.serviceModel>
<bindings>
<associazionePersonalizzata>
<associazione>
<security> di <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>
Attributi ed elementi
Attributi
Attributo | Descrizione |
---|---|
allowSerializedSigningTokenOnReply |
Facoltativo. Valore booleano che specifica se è possibile utilizzare un token serializzato nella risposta. |
authenticationMode |
Facoltativo. Specifica la modalità di autenticazione utilizzata tra l'iniziatore e il risponditore. Di seguito sono riportati tutti i valori. L'impostazione predefinita è sspiNegotiated. |
defaultAlgorithmSuite |
Facoltativo. Imposta la crittografia dei messaggi e gli algoritmi di incapsulamento della chiave. Gli algoritmi e le dimensioni della chiave sono determinati dalla classe SecurityAlgorithmSuite. Questi algoritmi sono associati a quelli stabiliti nelle specifiche del linguaggio dei criteri di protezione (WS-SecurityPolicy). I valori possibili sono riportati di seguito. L'impostazione predefinita è Basic128. Questo attributo viene utilizzato con una piattaforma differente che utilizza un insieme di algoritmi diverso da quello predefinito. Quando si apportano modifiche a questa impostazione, è necessario essere consapevoli dei punti di forza e dei punti di debolezza degli algoritmi pertinenti. L'attributo è di tipo SecurityAlgorithmSuite. L'impostazione predefinita è Aes256. |
includeTimestamp |
Valore booleano che specifica se in ogni messaggio vengono inclusi gli indicatori di data e ora. L'impostazione predefinita è true. |
keyEntropyMode |
Specifica la modalità di calcolo delle chiavi per la protezione dei messaggi. Le chiavi possono essere basate solo sul materiale della chiave client, solo sul materiale della chiave del servizio o su una combinazione di entrambi. I valori validi sono:
L'impostazione predefinita è CombinedEntropy. L'attributo è di tipo SecurityKeyEntropyMode. |
messageProtectionOrder |
Imposta l'ordine nel quale gli algoritmi di protezione a livello di messaggio vengono applicati al messaggio. Di seguito vengono elencati i valori validi:
L'impostazione predefinita è SignBeforeEncrypt. L'attributo è di tipo MessageProtectionOrder. |
messageSecurityVersion |
Facoltativo. Imposta la versione di WS-Security da utilizzare. Di seguito vengono elencati i valori validi:
L'impostazione predefinita è WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 e può essere espressa in XML semplicemente come Default. L'attributo è di tipo MessageSecurityVersion. |
requireDerivedKeys |
Valore booleano che specifica se le chiavi possono essere derivate dalle chiavi di prova originali. L'impostazione predefinita è true. |
requireSecurityContextCancellation |
Facoltativo. Valore booleano che specifica se il contesto di protezione deve essere annullato e terminato quando non è più necessario. L'impostazione predefinita è true. |
requireSignatureConfirmation |
Facoltativo. Valore booleano che specifica se la conferma della firma WS-Security è attivata. Quando è impostato su true, le firme del messaggio vengono confermate dal responder. L'impostazione predefinita è false. La conferma della firma è utilizzata per confermare che la risposta del servizio sia completamente compatibile con una richiesta. |
securityHeaderLayout |
Facoltativo. Specifica l'ordine degli elementi nell'intestazione di protezione. I valori validi sono:
L'impostazione predefinita è Strict. L'elemento è di tipo SecurityHeaderLayout. |
Elementi figlio
Elemento | Descrizione |
---|---|
Specifica un token corrente rilasciato. L'elemento è di tipo IssuedTokenParametersElement. |
|
Specifica le impostazioni di protezione di un client locale per questa associazione. L'elemento è di tipo LocalClientSecuritySettingsElement. |
|
Specifica le impostazioni di protezione di un servizio locale per questa associazione. L'elemento è di tipo LocalServiceSecuritySettingsElement. |
|
Specifica i valori predefiniti utilizzati per iniziare un servizio di conversazione protetta. |
Elementi padre
Elemento | Descrizione |
---|---|
Definisce tutte le funzionalità di associazione dell'associazione personalizzata. |
Osservazioni
Per ulteriori informazioni sull'utilizzo di questo elemento, vedere SecurityBindingElement Authentication Modes e How To: Create a Custom Binding Using the SecurityBindingElement.
Esempio
Nell'esempio seguente è dimostrato come configurare la protezione mediante un'associazione personalizzata. Viene mostrato come utilizzare un'associazione personalizzata per attivare la protezione a livello di messaggio insieme con un trasporto sicuro. Questo è utile quando è necessario un trasporto protetto per trasmettere i messaggi tra client e servizio e simultaneamente i messaggi devono essere protetti a livello di messaggio. Questa configurazione non è supportata dalle associazioni fornite dal sistema.
La configurazione del servizio definisce un'associazione personalizzato che supporta la comunicazione TCP protetta mediante il protocollo TLS/SSL e la protezione dei messaggi di Windows. L'associazione personalizzata utilizza un certificato del servizio per autenticare il servizio sul livello del trasporto e proteggere i messaggi durante la trasmissione tra client e servizio. Ciò viene ottenuto dall'elemento di associazione <protezioneFlussoSsl>. Il certificato del servizio è configurato mediante un comportamento del servizio.
Inoltre, l'associazione personalizzata utilizza la protezione dei messaggi con tipo di credenziale Windows, che è il tipo di credenziale predefinito. Ciò viene ottenuto dall'elemento di associazione <security> di <customBinding>. Entrambi il client e il servizio vengono autenticati mediante la protezione a livello di messaggio se è disponibile il meccanismo di autenticazione Kerberos. Se il meccanismo di autenticazione Kerberos non è disponibile, viene utilizzata l'autenticazione NTLM. NTLM autentica il client con il servizio ma non autentica il servizio con il client. L'elemento di associazione <security> di <customBinding> è configurato per utilizzare come authenticationType SecureConversation, che comporta la creazione di una sessione di protezione nel client e nel servizio. Ciò è necessario per consentire il funzionamento del contratto duplex del servizio. Per ulteriori informazioni sull'esecuzione di questo esempio, vedere 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>
Vedere anche
Riferimenti
<associazionePersonalizzata>
SecurityElement
SecurityBindingElement
CustomBinding
Altre risorse
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
How To: Create a Custom Binding Using the SecurityBindingElement
Custom Binding Security