<message> de <basicHttpBinding>
Define as configurações de segurança em nível de mensagem de <basicHttpBinding>.
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding>
<security>
<message>
Syntax
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Atributos e elementos
As seções a seguir descrevem os atributos, os elementos filho e os elementos pai
Atributos
Atributo | Descrição |
---|---|
algorithmSuite | Define a criptografia de mensagem e os algoritmos de encapsulamento de chave. Esse atributo é do tipo SecurityAlgorithmSuite, que especifica os algoritmos e os tamanhos de chave. Esses algoritmos são mapeados para aqueles existentes na especificação WS-SecurityPolicy (Linguagem de Política de Segurança). O valor padrão é Basic256 . |
clientCredentialType | Especifica o tipo de credencial a ser usada ao executar a autenticação de cliente usando a segurança baseada em mensagem. O padrão é UserName . |
clientCredentialType Attribute
Valor | Descrição |
---|---|
UserName | – Requer que o cliente seja autenticado no servidor com uma credencial UserName. Essa credencial precisa ser especificada usando as <clientCredentials>. – O WCF não dá suporte ao envio de um resumo de senha ou de derivação de chaves usando senhas e o uso dessas chaves para a segurança da mensagem. Assim, o WCF impõe que o transporte seja protegido ao usar credenciais de UserName. Para o basicHttpBinding , isso requer a configuração de um canal SSL. |
Certificado | Exige que o cliente seja autenticado no servidor usando um certificado. A credencial do cliente nesse caso precisa ser especificada usando <clientCredentials> e clientCertificate<>. Além disso, ao usar o modo de segurança da mensagem, o cliente precisa ser provisionado com o certificado de serviço. A credencial de serviço nesse caso precisa ser especificada usando o elemento de classe ClientCredentials ou de comportamento ClientCredentials e especificando o certificado de serviço usando o <serviceCertificate>. |
Elementos filho
Nenhum
Elementos pai
Elemento | Descrição |
---|---|
<security> | Define as funcionalidades de segurança para a <basicHttpBinding>. |
Exemplo
Este exemplo demonstra como implementar um aplicativo que usa o basicHttpBinding e a segurança da mensagem. No exemplo de configuração a seguir para um serviço, a definição do ponto de extremidade especifica o basicHttpBinding e faz referência a uma configuração de associação chamada Binding1
. O certificado que o serviço usa para se autenticar no cliente é definido na seção behaviors
do arquivo de configuração sob o elemento serviceCredentials
. O modo de validação que se aplica ao certificado que o cliente usa para se autenticar no serviço também é definido na seção behaviors
sob o elemento clientCertificate
.
Os mesmos detalhes de associação e segurança são especificados no arquivo de configuração do cliente.
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service -->
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<!-- This configuration defines the SecurityMode as Message and
the clientCredentialType as Certificate. -->
<binding name="Binding1">
<security mode = "Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
<!-- The serviceCredentials behavior allows one to define a service certificate.
A service certificate is used by a client to authenticate the service and provide message protection.
This configuration references the "localhost" certificate installed during the setup instructions. -->
<serviceCredentials>
<serviceCertificate findValue="localhost"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
<clientCertificate>
<!-- Setting the certificateValidationMode to PeerOrChainTrust means that if the certificate
is in the user's Trusted People store, then it will be trusted without performing a
validation of the certificate's issuer chain. This setting is used here for convenience so that the
sample can be run without having to have certificates issued by a certification authority (CA).
This setting is less secure than the default, ChainTrust. The security implications of this
setting should be carefully considered before using PeerOrChainTrust in production code. -->
<authentication certificateValidationMode="PeerOrChainTrust" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>