<mensagem> de <basicHttpBinding>
Define as definições para a segurança ao nível da mensagem do <basicHttpBinding>.
<configuração>
<system.serviceModel>
<enlaces>
<basicHttpBinding>
<enlace>
<segurança>
<mensagem>
Syntax
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais
Atributos
Atributo | Descrição |
---|---|
algorithmSuite | Define a encriptação de mensagens e os algoritmos de moldagem de chaves. Este atributo é do tipo SecurityAlgorithmSuite, que especifica os algoritmos e os tamanhos das chaves. Estes algoritmos são mapeados para os especificados na especificação Idioma da Política de Segurança (WS-SecurityPolicy). O valor predefinido é Basic256 . |
clientCredentialType | Especifica o tipo de credencial a utilizar ao efetuar a autenticação de cliente com a segurança baseada em mensagens. A predefinição é UserName . |
atributo clientCredentialType
Valor | Descrição |
---|---|
Nome de Utilizador | - Requer que o cliente seja autenticado no servidor com uma credencial userName. Esta credencial tem de ser especificada com o <clientCredentials>. - O WCF não suporta o envio de chaves de resumo ou derivação de palavras-passe com palavras-passe e a utilização dessas chaves para a segurança de mensagens. Por conseguinte, o WCF impõe que o transporte seja protegido ao utilizar credenciais de Nome de Utilizador. Para o basicHttpBinding , isto requer a configuração de um canal SSL. |
Certificado | Requer que o cliente seja autenticado no servidor com um certificado. A credencial do cliente neste caso tem de ser especificada com <clientCredentials> e clientCertificate<>. Além disso, ao utilizar o modo de segurança de mensagens, o cliente tem de ser aprovisionado com o certificado de serviço. A credencial de serviço neste caso tem de ser especificada através do ClientCredentials elemento de classe ou ClientCredentials comportamento e especificar o certificado de serviço com o <serviceCertificate>. |
Elementos Subordinados
Nenhuma
Elementos Principais
Elemento | Descrição |
---|---|
<segurança> | Define as capacidades de segurança para o <basicHttpBinding>. |
Exemplo
Este exemplo demonstra como implementar uma aplicação que utiliza o basicHttpBinding e a segurança de mensagens. No exemplo de configuração seguinte para um serviço, a definição de ponto final especifica o basicHttpBinding e referencia uma configuração de enlace com o nome Binding1
. O certificado que o serviço utiliza para se autenticar no cliente é definido na behaviors
secção do ficheiro de configuração no serviceCredentials
elemento. O modo de validação que se aplica ao certificado que o cliente utiliza para se autenticar no serviço também está definido na behaviors
secção abaixo do clientCertificate
elemento.
Os mesmos detalhes de enlace e segurança são especificados no ficheiro 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>