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 dão suporte a essa sessão, mas não por padrão. Habilite uma sessão segura e confiável de forma imperativa usando código ou declarativamente no arquivo de configuração. Este procedimento usa os arquivos de configuração de cliente e serviço para habilitar a sessão segura e confiável.
Este procedimento consiste nas seguintes etapas:
Especifique que o cliente e o serviço trocam mensagens dentro de uma sessão confiável.
Exigir segurança no nível da mensagem dentro da sessão confiável.
Especifique o tipo de credencial do cliente que o cliente precisa usar para ser autenticado com o serviço.
É importante na primeira tarefa que o elemento de configuração do ponto de extremidade contenha um atributo bindingConfiguration
que referencie uma configuração de associação nomeada (neste exemplo) MessageSecurity
. O elemento de configuração de <associação> então referencia esse nome para permitir sessões confiáveis ao configurar o atributo enabled
do elemento <reliableSession> para true
. Você pode exigir que as garantias de entrega ordenadas estejam disponíveis em uma sessão confiável definindo o atributo ordered
como true
.
Para obter a cópia de origem do exemplo no qual esse procedimento de configuração se baseia, confira a Sessão Confiável do WS.
Os itens essenciais da segunda tarefa são realizados definindo o atributo mode
do elemento de <segurança> contido no elemento de <associação> do cliente e do serviço para Message
.
Os itens essenciais da terceira tarefa são realizados definindo o atributo clientCredentialType
do elemento de <mensagem> contido no elemento de <segurança> do cliente e do serviço para Certificate
.
Observação
Ao usar a segurança da mensagem com sessões confiáveis, o Reliable Messaging tenta autenticar um cliente não autenticado até que ocorra um tempo limite em vez de gerar uma exceção após a primeira falha.
Configurar o serviço com um WSHttpBinding para usar uma sessão confiável
Este procedimento é descrito em Como: trocar mensagens em uma sessão confiável.
Configurar o serviço com um WSHttpBinding para usar uma sessão confiável
Este procedimento é descrito em Como: trocar mensagens em uma sessão confiável.
Definir o modo e ClientCredentialType na configuração
Adicione um elemento de associação apropriado ao elemento <associações> do arquivo de configuração. O exemplo a seguir adiciona um elemento <wsHttpBinding>.
Adicione um elemento de <associação> e defina seu atributo
name
a um valor adequado. Este exemplo usa o nomeMessageSecurity
.Adicione um elemento de <segurança> e defina o atributo
mode
comoMessage
.Dentro do elemento de <segurança>, adicione um elemento de <mensagem> e defina o atributo
clientCredentialType
comoCertificate
.
<wsHttpBinding>
<binding name="MessageSecurity">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>