Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica as opções de segurança para uma associação personalizada.
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<security>
Sintaxe
<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>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai
Attributes
| Attribute | Description |
|---|---|
| allowSerializedSigningTokenOnReply | Optional. Um valor booliano que especifica se um token serializado pode ser usado na resposta. O valor padrão é false. Ao usar uma associação dupla, a configuração padrão true e qualquer configuração feita será ignorada. |
| authenticationMode | Optional. Especifica o modo de autenticação usado entre o iniciador e o respondente. Veja abaixo todos os valores. O padrão é sspiNegotiated. |
| defaultAlgorithmSuite | Optional. Define a criptografia de mensagem e os algoritmos de encapsulamento de chave. Os algoritmos e os tamanhos de chave são determinados pela SecurityAlgorithmSuite classe. Esses algoritmos são mapeados para aqueles especificados na especificação de Linguagem de Política de Segurança (WS-SecurityPolicy). Os valores possíveis são mostrados abaixo. O valor padrão é Basic256.Esse atributo é usado ao trabalhar com uma plataforma diferente que opta por um conjunto de algoritmos diferente do padrão. Você deve estar ciente dos pontos fortes e fracos dos algoritmos relevantes ao fazer modificações nessa configuração. Esse atributo é do tipo SecurityAlgorithmSuite. |
| includeTimestamp | Um valor booliano que especifica se os carimbos de data/hora são incluídos em cada mensagem. O padrão é true. |
| keyEntropyMode | Especifica a maneira como as chaves para proteger mensagens são computadas. As chaves podem ser baseadas apenas no material da chave do cliente, somente no material da chave de serviço ou em uma combinação de ambos. Valores válidos são - ClientEntropy: a chave de sessão é baseada nos dados de chave fornecidos pelo cliente.- ServerEntropy: a chave de sessão é baseada nos dados de chave fornecidos pelo servidor.- CombinedEntropy: a chave de sessão é baseada nos dados de chave fornecidos pelo cliente e pelo serviço.O padrão é CombinedEntropy.Esse atributo é do tipo SecurityKeyEntropyMode. |
| Messageprotectionorder | Define a ordem na qual os algoritmos de segurança em nível de mensagem são aplicados à mensagem. Os valores válidos incluem o seguinte: - SignBeforeEncrypt: assine primeiro e, em seguida, criptografe.- SignBeforeEncryptAndEncryptSignature: assine primeiro, criptografe e, em seguida, criptografe a assinatura.- EncryptBeforeSign: criptografe primeiro e, em seguida, assine.O valor padrão depende da versão de WS-Security sendo usada. O valor padrão é SignBeforeEncryptAndEncryptSignature ao usar WS-Security 1.1. O valor padrão é SignBeforeEncrypt ao usar WS-Security 1.0.Esse atributo é do tipo MessageProtectionOrder. |
| Messagesecurityversion | Optional. Define a versão de WS-Security usada. Os valores válidos incluem o seguinte: - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 - WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 O padrão é WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 e pode ser expresso no XML como simplesmente Default. Esse atributo é do tipo MessageSecurityVersion. |
| requireDerivedKeys | Um valor booliano que especifica se as chaves podem ser derivadas das chaves de prova originais. O padrão é true. |
| requireSecurityContextCancellation | Optional. Um valor booliano que especifica se o contexto de segurança deve ser cancelado e encerrado quando ele não é mais necessário. O padrão é true. |
| requireSignatureConfirmation | Optional. Um valor booliano que especifica se WS-Security confirmação de assinatura está habilitada. Quando definido como true, as assinaturas de mensagem são confirmadas pelo respondente. Quando a associação personalizada é configurada para certificados mútuos ou é configurada para usar tokens emitidos (associações WSS 1.1) esse atributo usa como padrão true. Caso contrário, o padrão é false.A confirmação da assinatura é usada para confirmar que o serviço está respondendo em plena consciência de uma solicitação. |
| securityHeaderLayout | Optional. Especifica a ordenação dos elementos no cabeçalho de segurança. Valores válidos são - Strict: os itens são adicionados ao cabeçalho de segurança de acordo com o princípio geral de "declarar antes do uso".- Lax: os itens são adicionados ao cabeçalho de segurança em qualquer ordem que confirme ao WSS: segurança da mensagem SOAP.- LaxWithTimestampFirst: os itens são adicionados ao cabeçalho de segurança em qualquer ordem que confirme ao WSS: segurança de mensagem SOAP, exceto pelo fato de que o primeiro elemento no cabeçalho de segurança deve ser um elemento wsse:Timestamp.- LaxWithTimestampLast: os itens são adicionados ao cabeçalho de segurança em qualquer ordem que confirme ao WSS: segurança de mensagem SOAP, exceto pelo fato de que o último elemento no cabeçalho de segurança deve ser um elemento wsse:Timestamp.O padrão é Strict.Esse elemento é do tipo SecurityHeaderLayout. |
Atributo authenticationMode
| Value | Description |
|---|---|
| String | AnonymousForCertificateAnonymousForSslNegotiatedCertificateOverTransportIssuedTokenIssuedTokenForCertificateIssuedTokenForSslNegotiatedIssuedTokenOverTransportKerberosKerberosOverTransportMutualCertificateMutualCertificateDuplexMutualSslNegotiatedSecureConversationSspiNegotiatedUserNameForCertificateUserNameForSslNegotiatedUserNameOverTransportSspiNegotiatedOverTransport |
Atributo defaultAlgorithm
| Value | Description |
|---|---|
| Basic128 | Use criptografia Aes128, Sha1 para resumo de mensagens e Rsa-oaep-mgf1p para quebra de chave. |
| Básico192 | Use criptografia Aes192, Sha1 para resumo de mensagens, Rsa-oaep-mgf1p para quebra de chave. |
| Básico256 | Use criptografia Aes256, Sha1 para resumo de mensagens, Rsa-oaep-mgf1p para quebra de chave. |
| Basic256Rsa15 | Use o Aes256 para criptografia de mensagens, Sha1 para resumo de mensagens e Rsa15 para quebra de chave. |
| Basic192Rsa15 | Use o Aes192 para criptografia de mensagens, Sha1 para resumo de mensagens e Rsa15 para quebra de chave. |
| Tripledes | Use criptografia TripleDes, Sha1 para resumo de mensagens, Rsa-oaep-mgf1p para quebra de chave. |
| Basic128Rsa15 | Use o Aes128 para criptografia de mensagens, Sha1 para resumo de mensagens e Rsa15 para quebra de chave. |
| TripleDesRsa15 | Use criptografia TripleDes, Sha1 para resumo de mensagens e Rsa15 para quebra de chave. |
| Basic128Sha256 | Use o Aes128 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa-oaep-mgf1p para quebra de chave. |
| Basic192Sha256 | Use o Aes192 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa-oaep-mgf1p para quebra de chave. |
| Basic256Sha256 | Use o Aes256 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa-oaep-mgf1p para quebra-chave. |
| TripleDesSha256 | Use TripleDes para criptografia de mensagem, Sha256 para resumo de mensagens e Rsa-oaep-mgf1p para quebra de chave. |
| Basic128Sha256Rsa15 | Use o Aes128 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa15 para quebra de chave. |
| Basic192Sha256Rsa15 | Use o Aes192 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa15 para quebra de chave. |
| Basic256Sha256Rsa15 | Use o Aes256 para criptografia de mensagens, Sha256 para resumo de mensagens e Rsa15 para quebra de chave. |
| TripleDesSha256Rsa15 | Use TripleDes para criptografia de mensagem, Sha256 para resumo de mensagens e Rsa15 para quebra-chave. |
Elementos filho
| Elemento | Description |
|---|---|
| <issuedTokenParameters> | Especifica um token emitido atualmente. Esse elemento é do tipo IssuedTokenParametersElement. |
| <localClientSettings> | Especifica as configurações de segurança de um cliente local para essa associação. Esse elemento é do tipo LocalClientSecuritySettingsElement. |
| <localServiceSettings> | Especifica as configurações de segurança de um serviço local para essa associação. Esse elemento é do tipo LocalServiceSecuritySettingsElement. |
| <secureConversationBootstrap> | Especifica os valores padrão usados para iniciar um serviço de conversa segura. |
Elementos pai
| Elemento | Description |
|---|---|
| <ligação> | Define todos os recursos de associação da associação personalizada. |
Observações
Para obter mais informações sobre como usar esse elemento, consulte modos de autenticação SecurityBindingElement e como criar uma associação personalizada usando o SecurityBindingElement.
Example
O exemplo a seguir demonstra como configurar a segurança usando uma associação personalizada. Ele mostra como usar uma associação personalizada para habilitar a segurança em nível de mensagem junto com um transporte seguro. Isso é útil quando um transporte seguro é necessário para transmitir as mensagens entre o cliente e o serviço e, simultaneamente, as mensagens devem estar seguras no nível da mensagem. Essa configuração não tem suporte por associações fornecidas pelo sistema.
A configuração de serviço define uma associação personalizada que dá suporte à comunicação TCP protegida usando o protocolo TLS/SSL e a segurança de mensagens do Windows. A associação personalizada usa um certificado de serviço para autenticar o serviço no nível de transporte e proteger as mensagens durante a transmissão entre o cliente e o serviço. Isso é feito pelo <elemento de associação sslStreamSecurity> . O certificado do serviço é configurado usando um comportamento de serviço.
Além disso, a associação personalizada usa a segurança da mensagem com o tipo de credencial do Windows - esse é o tipo de credencial padrão. Isso é feito pelo elemento de associação de segurança . O cliente e o serviço são autenticados usando a segurança em nível de mensagem se o mecanismo de autenticação Kerberos estiver disponível. Se o mecanismo de autenticação Kerberos não estiver disponível, a autenticação NTLM será usada. O NTLM autentica o cliente no serviço, mas não autentica o serviço no cliente. O elemento de associação de segurança é configurado para usar SecureConversation authenticationType, o que resulta na criação de uma sessão de segurança no cliente e no serviço. Isso é necessário para permitir que o contrato duplex do serviço funcione. Para obter mais informações sobre como executar este exemplo, consulte Segurança de Associação Personalizada.
<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>