Como: Proteger mensagens em sessões confiáveis
Este tópico descreve as etapas necessárias para habilitar a segurança em nível de mensagem para mensagens trocadas em uma sessão confiável usando uma das associações fornecidas pelo sistema que oferecem suporte a essa sessão, mas não por padrão. Habilite uma sessão segura e confiável imperativamente usando código ou declarativamente no arquivo de configuração. Este procedimento usa os arquivos de configuração do cliente e do serviço para habilitar a sessão segura e confiável.
Este procedimento consiste nas seguintes três tarefas principais:
Especifique que o cliente e o serviço troquem mensagens dentro de uma sessão confiável.
Exija segurança em nível de mensagem dentro da sessão confiável.
Especifique o tipo de credencial de cliente que o cliente deve usar para ser autenticado com o serviço.
É importante na primeira tarefa que o elemento de configuração do ponto de extremidade contenha um bindingConfiguration
atributo que faça referência a uma configuração de vinculação chamada (neste exemplo). MessageSecurity
>Em <seguida, o elemento binding configuration faz referência a esse nome para habilitar sessões confiáveis definindo o enabled
<atributo do elemento reliableSession> como .true
Você pode exigir que as garantias de entrega solicitadas estejam disponíveis em uma sessão confiável definindo o ordered
atributo como true
.
Para obter a cópia de origem do exemplo no qual este procedimento de configuração se baseia, consulte a Sessão confiável do WS.
Os itens essenciais da segunda tarefa são realizados definindo o mode
<atributo do elemento de segurança> contido no<> elemento binding do cliente e do serviço como .Message
Os itens essenciais da terceira tarefa são realizados definindo o clientCredentialType
<atributo do elemento message> contido no <elemento de segurança> do cliente e do serviço como .Certificate
Nota
Ao usar a segurança de mensagens com sessões confiáveis, o Reliable Messaging tenta autenticar um cliente não autenticado até que ocorra um tempo limite em vez de lançar uma exceção na primeira falha.
Configurar o serviço com um WSHttpBinding para usar uma sessão confiável
Este procedimento é descrito em Como: Trocar mensagens dentro de uma sessão confiável.
Configurar o cliente com um WSHttpBinding para usar uma sessão confiável
Este procedimento é descrito em Como: Trocar mensagens dentro de uma sessão confiável.
Definir o modo e ClientCredentialType na configuração
Adicione um elemento binding apropriado ao <elemento bindings> do arquivo de configuração. O exemplo a seguir adiciona um <elemento wsHttpBinding.>
Adicione um <elemento binding> e defina seu
name
atributo como um valor apropriado. O exemplo usa o nomeMessageSecurity
.Adicione um <elemento de segurança> e defina o
mode
atributo comoMessage
.Dentro do elemento security>, adicione um <elemento message> e defina o
clientCredentialType
atributo comoCertificate
.<
<wsHttpBinding>
<binding name="MessageSecurity">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>