<sicurezza> di <customBinding>
Specifica le opzioni di sicurezza di un'associazione personalizzata.
<Configurazione>
<system.serviceModel>
<bindings>
<Custombinding>
<Associazione>
<Sicurezza>
Sintassi
<security allowSerializedSigningTokenOnReply="Boolean"
authenticationMode="AuthenticationMode"
defaultAlgorithmSuite="SecurityAlgorithmSuite"
includeTimestamp="Boolean"
requireDerivedKeys="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
messageSecurityVersion="WSSecurityJan2004/WSSecurityXXX2005"
requireSecurityContextCancellation="Boolean"
requireSignatureConfirmation="Boolean"
securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast">
<issuedTokenParameters />
<localClientSettings />
<localServiceSettings />
<secureConversationBootstrap />
</security>
Attributi ed elementi
Nelle sezioni seguenti vengono descritti attributi, elementi figlio ed elementi padre.
Attributi
Attributo | Descrizione |
---|---|
allowSerializedSigningTokenOnReply | Facoltativo. Valore booleano che specifica se è possibile usare un token serializzato nella risposta. Il valore predefinito è false . Se si usa un'associazione duplice, l'impostazione assume true come valore predefinito e qualsiasi impostazione effettuata sarà ignorata. |
authenticationMode | Facoltativo. Specifica la modalità di autenticazione usata tra l'iniziatore e il risponditore. Di seguito sono riportati tutti i valori. Il valore predefinito è 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 indicati nella specifica Security Policy Language (WS-SecurityPolicy). I valori possibili sono riportati di seguito. Il valore predefinito è Basic256 .Questo attributo viene usato con una piattaforma differente che usa un set 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. |
includeTimestamp | Valore booleano che specifica se in ogni messaggio vengono inclusi gli indicatori di data e ora. Il valore predefinito è true . |
keyEntropyMode | Specifica la modalità di calcolo delle chiavi per la sicurezza 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: - ClientEntropy : la chiave di sessione si basa sui dati chiave forniti dal client.- ServerEntropy : la chiave di sessione si basa sui dati chiave forniti dal server.- CombinedEntropy : la chiave di sessione si basa sui dati chiave forniti dal client e dal servizio.Il valore predefinito è CombinedEntropy .L'attributo è di tipo SecurityKeyEntropyMode. |
messageProtectionOrder | Imposta l'ordine nel quale gli algoritmi di sicurezza a livello di messaggio vengono applicati al messaggio. I valori validi sono i seguenti: - SignBeforeEncrypt : firmare prima, quindi crittografare.- SignBeforeEncryptAndEncryptSignature : firma prima, crittografa e quindi crittografa la firma.- EncryptBeforeSign : crittografare prima, quindi firmare.Il valore predefinito dipende dalla versione di WS-Security usata. Il valore predefinito è SignBeforeEncryptAndEncryptSignature quando si usa WS-Security 1,1. Il valore predefinito è SignBeforeEncrypt quando si usa WS-Security 1.0.L'attributo è di tipo MessageProtectionOrder. |
messageSecurityVersion | Facoltativo. Imposta la versione di WS-Security da usare. I valori validi sono i seguenti: - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 - WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 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. Il valore predefinito è true . |
requireSecurityContextCancellation | Facoltativo. Valore booleano che specifica se il contesto di sicurezza deve essere annullato e terminato quando non è più necessario. Il valore predefinito è 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. Quando l'associazione personalizzata è configurata per i certificati reciproci o per usare token rilasciati (associazioni WSS 1.1), questo attributo assume true come valore predefinito. Diversamente, il valore predefinito è false .La conferma della firma è usata per confermare che la risposta del servizio sia completamente compatibile con una richiesta. |
securityHeaderLayout | Facoltativo. Specifica l'ordine degli elementi nell'intestazione di sicurezza. I valori validi sono: - Strict : gli elementi vengono aggiunti all'intestazione di sicurezza in base al principio generale di "dichiara prima dell'uso".- Lax : gli elementi vengono aggiunti all'intestazione di sicurezza in qualsiasi ordine che conferma a WSS: sicurezza dei messaggi SOAP.- LaxWithTimestampFirst : gli elementi vengono aggiunti all'intestazione di sicurezza in qualsiasi ordine che conferma a WSS: sicurezza dei messaggi SOAP, ad eccezione del fatto che il primo elemento nell'intestazione di sicurezza deve essere un elemento wsse:Timestamp.- LaxWithTimestampLast : gli elementi vengono aggiunti all'intestazione di sicurezza in qualsiasi ordine che conferma a WSS: sicurezza dei messaggi SOAP, ad eccezione del fatto che l'ultimo elemento nell'intestazione di sicurezza deve essere un elemento wsse:Timestamp.Il valore predefinito è Strict .L'elemento è di tipo SecurityHeaderLayout. |
Attributo authenticationMode
Valore | Descrizione |
---|---|
Stringa | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
Attributo defaultAlgorithm
Valore | Descrizione |
---|---|
Basic128 | Usa crittografia Aes128, Sha1 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic192 | Usa crittografia Aes192, Sha1 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic256 | Usa crittografia Aes256, Sha1 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic256Rsa15 | Usa Aes256 per la crittografia del messaggio, Sha1 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
Basic192Rsa15 | Usa Aes192 per la crittografia del messaggio, Sha1 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
TripleDes | Usa crittografia TripleDes, Sha1 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic128Rsa15 | Usa crittografia Aes128, Sha1 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
TripleDesRsa15 | Usa crittografia TripleDes, Sha1 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
Basic128Sha256 | Usare Aes128 per la crittografia dei messaggi, Sha256 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic192Sha256 | Usa Aes192 per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic256Sha256 | Usa crittografia Aes256, Sha256 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
TripleDesSha256 | Usa TripleDes per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa-oaep-mgf1p per l'incapsulamento della chiave. |
Basic128Sha256Rsa15 | Usa Aes128 per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
Basic192Sha256Rsa15 | Usa Aes192 per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
Basic256Sha256Rsa15 | Usa Aes256 per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
TripleDesSha256Rsa15 | Usa TripleDes per la crittografia del messaggio, Sha256 per il digest del messaggio e Rsa15 per l'incapsulamento della chiave. |
Elementi figlio
Elemento | Descrizione |
---|---|
<issuedTokenParameters> | Specifica un token corrente rilasciato. L'elemento è di tipo IssuedTokenParametersElement. |
<localClient Impostazioni> | Specifica le impostazioni di sicurezza di un client locale per questa associazione. L'elemento è di tipo LocalClientSecuritySettingsElement. |
<localService Impostazioni> | Specifica le impostazioni di sicurezza di un servizio locale per questa associazione. L'elemento è di tipo LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Specifica i valori predefiniti usati per iniziare un servizio di conversazione protetta. |
Elementi padre
Elemento | Descrizione |
---|---|
<Associazione> | Definisce tutte le funzionalità di associazione dell'associazione personalizzata. |
Osservazioni:
Per altre informazioni sull'uso di questo elemento, vedere SecurityBindingElement Authentication Modes e Procedura: Creare un'associazione personalizzata tramite SecurityBindingElement.
Esempio
Nell'esempio seguente è dimostrato come configurare la sicurezza mediante un'associazione personalizzata. Viene mostrato come usare un'associazione personalizzata per abilitare la sicurezza 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 sicurezza dei messaggi di Windows. L'associazione personalizzata usa un certificato del servizio per autenticare il servizio sul livello del trasporto e proteggere i messaggi durante la trasmissione tra client e servizio. Questa operazione viene eseguita dall'elemento <di associazione sslStreamSecurity> . Il certificato del servizio è configurato mediante un comportamento del servizio.
L'associazione personalizzata usa inoltre la sicurezza dei messaggi con tipo di credenziale di Windows, che è il tipo di credenziale predefinito. Questa operazione viene eseguita dall'elemento di associazione di sicurezza . Il client e il servizio vengono autenticati mediante la sicurezza a livello di messaggio se il meccanismo di autenticazione Kerberos è disponibile. Se il meccanismo di autenticazione Kerberos non è disponibile, viene usata l'autenticazione NTLM. NTLM autentica il client con il servizio, ma non autentica il servizio con il client. L'elemento di associazione di sicurezza è configurato per l'uso SecureConversation
di authenticationType, che comporta la creazione di una sessione di sicurezza sia nel client che nel servizio. Questa operazione è necessaria per consentire il funzionamento del contratto duplex del servizio. Per altre informazioni sull'esecuzione di questo esempio, vedere Sicurezza dell'associazione personalizzata.
<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>