Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Especifica as opções de segurança para uma ligação personalizada.
<configuração>
<system.serviceModel>
<Encadernações>
<customBinding>
<Encadernação>
<Segurança>
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 | Opcional. Um valor booleano que especifica se um token serializado pode ser usado na resposta. O valor predefinido é false. Ao usar uma ligação dupla, a definição é por true defeito e qualquer configuração feita será ignorada. |
| authenticationMode | Opcional. Especifica o modo de autenticação usado entre o iniciador e o respondente. Veja abaixo para todos os valores. A predefinição é sspiNegotiated. |
| defaultAlgorithmSuite | Opcional. Define os algoritmos de encriptação de mensagens e key-wrap. Os algoritmos e os tamanhos das chaves são determinados pela SecurityAlgorithmSuite classe. Estes algoritmos correspondem aos especificados na especificação da Linguagem de Política de Segurança (WS-SecurityPolicy). Os valores possíveis são apresentados abaixo. O valor predefinido é Basic256.Este atributo é usado quando se trabalha com uma plataforma diferente que opta por um conjunto de algoritmos diferente do padrão. Deve estar ciente dos pontos fortes e fracos dos algoritmos relevantes ao fazer modificações nesta configuração. Este atributo é do tipo SecurityAlgorithmSuite. |
| includeTimestamp | Um valor booleano que especifica se os carimbos de data e hora estão incluídos em cada mensagem. A predefinição é true. |
| keyEntropyMode | Especifica a forma como as chaves para proteger mensagens são calculadas. As chaves podem basear-se apenas no material da chave do cliente, apenas no material da chave de serviço ou numa combinação de ambos. Os valores válidos são - ClientEntropy: A chave de sessão baseia-se nos dados principais fornecidos pelo cliente.- ServerEntropy: A chave da sessão baseia-se nos dados da chave fornecidos pelo servidor.- CombinedEntropy: A chave de sessão baseia-se nos dados principais fornecidos pelo cliente e pelo serviço.A predefinição é CombinedEntropy.Este atributo é do tipo SecurityKeyEntropyMode. |
| mensagemOrdem de Proteção | Define a ordem em que os algoritmos de segurança ao nível da mensagem são aplicados à mensagem. Os valores válidos incluem os seguintes: - SignBeforeEncrypt: Assina primeiro, depois encripta.- SignBeforeEncryptAndEncryptSignature: Assinar primeiro, encriptar, depois encriptar a assinatura.- EncryptBeforeSign: Encripta primeiro, depois assina.O valor padrão depende da versão de WS-Security utilizada. O valor padrão é SignBeforeEncryptAndEncryptSignature quando se usa WS-Security 1.1. O valor padrão é SignBeforeEncrypt quando se usa WS-Security 1.0.Este atributo é do tipo MessageProtectionOrder. |
| messageSecurityVersion | Opcional. Define a versão do WS-Security que é usada. Os valores válidos incluem os seguintes: - WSSecurity11WSTrustFever2005WSSecureConversationFever2005WSSecurityPolicy11 - WSSecurity10WSTrustFever2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFever2005WSSecureConversationFever2005WSSecurityPolicy11BasicSecurityProfile10 O padrão é WSSecurity11WSTrustFever2005WSSecureConversationFebruary2005WSSecurityPolicy11 e pode ser expresso no XML simplesmente Defaultcomo . Este atributo é do tipo MessageSecurityVersion. |
| requererChavesDerivadas | Um valor booleano que especifica se as chaves podem ser derivadas das chaves de prova originais. A predefinição é true. |
| requerSegurançaContextoCancelamento | Opcional. Um valor booleano que especifica se o contexto de segurança deve ser cancelado e terminado quando deixa de ser necessário. A predefinição é true. |
| exigeAssinaturaConfirmação | Opcional. Um valor booleano que especifica se WS-Security confirmação de assinatura está ativada. Quando definido para true, as assinaturas da mensagem são confirmadas pelo respondente. Quando a ligação personalizada é configurada para certificados mútuos ou está configurada para usar tokens emitidos (vinculações WSS 1.1), este atributo é predefinido para true. Caso contrário, o padrão é false.A confirmação de assinatura é usada para confirmar que o serviço responde com total conhecimento de um pedido. |
| securityHeaderLayout | Opcional. Especifica a ordem dos elementos no cabeçalho de segurança. Os 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 de ser utilizado".- Lax: Os itens são adicionados ao cabeçalho de segurança em qualquer ordem que confirme a segurança da mensagem WSS: SOAP.- LaxWithTimestampFirst: Os itens são adicionados ao cabeçalho de segurança em qualquer ordem que confirme a segurança da mensagem WSS: SOAP, exceto que o primeiro elemento do cabeçalho de segurança deve ser um elemento wsse:Timestamp.- LaxWithTimestampLast: Os itens são adicionados ao cabeçalho de segurança por qualquer ordem que confirme a segurança da Mensagem WSS: SOAP, exceto que o último elemento do cabeçalho de segurança deve ser um elemento wsse:Timestamp.A predefinição é Strict.Este elemento é do tipo SecurityHeaderLayout. |
Atributo AuthenticationMode
| Valor | Description |
|---|---|
| Cordão | AnonymousForCertificateAnonymousForSslNegotiatedCertificateOverTransportIssuedTokenIssuedTokenForCertificateIssuedTokenForSslNegotiatedIssuedTokenOverTransportKerberosKerberosOverTransportMutualCertificateMutualCertificateDuplexMutualSslNegotiatedSecureConversationSspiNegotiatedUserNameForCertificateUserNameForSslNegotiatedUserNameOverTransportSspiNegotiatedOverTransport |
Atributo defaultAlgorithm
| Valor | Description |
|---|---|
| Basic128 | Use encriptação Aes128, Sha1 para digest de mensagens e Rsa-oaep-mgf1p para key wrap. |
| Basic192 | Use encriptação Aes192, Sha1 para digest de mensagens, Rsa-oaep-mgf1p para envolvimento de chaves. |
| Basic256 | Usa encriptação Aes256, Sha1 para digestão de mensagens, Rsa-oaep-mgf1p para envolvimento de chaves. |
| Basic256Rsa15 | Use o Aes256 para encriptação das mensagens, o Sha1 para o resumo das mensagens e o RSA15 para o keywrap. |
| Basic192Rsa15 | Use o Aes192 para encriptação de mensagens, o Sha1 para digest da mensagem e o Rsa15 para o keywrap. |
| TripleDes | Use encriptação TripleDes, Sha1 para digestão de mensagens, Rsa-oaep-mgf1p para envolvimento de chaves. |
| Basic128Rsa15 | Use o Aes128 para encriptação de mensagens, o Sha1 para o digest da mensagem e o RSA15 para o keywrap. |
| TripleDesRsa15 | Usa encriptação TripleDes, Sha1 para resumir mensagens e Rsa15 para keywrap. |
| Basic128Sha256 | Use Aes128 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa-oaep-mgf1p para keywrap. |
| Basic192Sha256 | Use Aes192 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa-oaep-mgf1p para envolvimento de chaves. |
| Basic256Sha256 | Usa Aes256 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa-oaep-mgf1p para key wrap. |
| TripleDesSha256 | Use o TripleDes para encriptação das mensagens, o Sha256 para o resumo da mensagem e o Rsa-oaep-mgf1p para o encapsulamento de chaves. |
| Basic128Sha256Rsa15 | Use Aes128 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa15 para envolvimento de chaves. |
| Basic192Sha256Rsa15 | Use Aes192 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa15 para envolvimento de chaves. |
| Basic256Sha256Rsa15 | Use Aes256 para encriptação de mensagens, Sha256 para digest de mensagens e Rsa15 para envolvimento de chaves. |
| TripleDesSha256Rsa15 | Use o TripleDes para encriptação de mensagens, o Sha256 para o digest das mensagens e o Rsa15 para o keywrap. |
Elementos filho
| Elemento | Description |
|---|---|
| <ParametrosTokens emitidos> | Especifica um token emitido atualmente. Este elemento é do tipo IssuedTokenParametersElement. |
| <localClientSettings> | Especifica as definições de segurança de um cliente local para esta ligação. Este elemento é do tipo LocalClientSecuritySettingsElement. |
| <localServiceSettings> | Especifica as definições de segurança de um serviço local para esta ligação. Este elemento é do tipo LocalServiceSecuritySettingsElement. |
| <secureConversationBootstrap> | Especifica os valores padrão usados para iniciar um serviço de conversa segura. |
Elementos Principais
| Elemento | Description |
|---|---|
| <Encadernação> | Define todas as capacidades de ligação da ligação personalizada. |
Observações
Para mais informações sobre a utilização deste elemento, consulte SecurityBindingElement Authentication Modes e Como: Criar uma Ligação Personalizada Usando o SecurityBindingElement.
Example
O exemplo seguinte demonstra como configurar a segurança usando uma ligação personalizada. Mostra como usar uma ligação personalizada para permitir a segurança ao nível da mensagem juntamente com um transporte seguro. Isto é útil quando é necessário um transporte seguro para transmitir as mensagens entre cliente e serviço e, simultaneamente, as mensagens devem ser seguras ao nível da mensagem. Esta configuração não é suportada por ligações fornecidas pelo sistema.
A configuração do serviço define uma ligação personalizada que suporta comunicação TCP protegida pelo protocolo TLS/SSL e segurança de mensagens do Windows. A ligação personalizada utiliza um certificado de serviço para autenticar o serviço ao nível de transporte e proteger as mensagens durante a transmissão entre cliente e serviço. Isto é conseguido pelo <elemento de ligação sslStreamSecurity> . O certificado do serviço é configurado usando um comportamento de serviço.
Além disso, a ligação personalizada utiliza segurança de mensagens com o tipo de credencial do Windows – este é o tipo de credencial predefinido. Isto é conseguido pelo elemento de ligação de segurança . Tanto o cliente como o serviço são autenticados usando segurança ao nível da mensagem se existir um mecanismo de autenticação Kerberos disponível. Se o mecanismo de autenticação Kerberos não estiver disponível, é utilizada a autenticação NTLM. O NTLM autentica o cliente ao serviço, mas não autentica o serviço ao cliente. O elemento de ligação de segurança está configurado para usar SecureConversation authenticationType, o que resulta na criação de uma sessão de segurança tanto no cliente como no serviço. Isto é necessário para permitir que o contrato de duplex do serviço funcione. Para mais informações sobre como executar este exemplo, consulte Segurança de Vinculaçã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>