Compartilhar via


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:

  1. Especifique que o cliente e o serviço trocam mensagens dentro de uma sessão confiável.

  2. Exigir segurança no nível da mensagem dentro da sessão confiável.

  3. 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

  1. Adicione um elemento de associação apropriado ao elemento <associações> do arquivo de configuração. O exemplo a seguir adiciona um elemento <wsHttpBinding>.

  2. Adicione um elemento de <associação> e defina seu atributo name a um valor adequado. Este exemplo usa o nome MessageSecurity.

  3. Adicione um elemento de <segurança> e defina o atributo mode como Message.

  4. Dentro do elemento de <segurança>, adicione um elemento de <mensagem> e defina o atributo clientCredentialType como Certificate.

<wsHttpBinding>
  <binding name="MessageSecurity">
    <security mode="Message">
      <message clientCredentialType="Certificate" />
    </security>
  </binding>
</wsHttpBinding>