Que segurança é usada por padrão no WSHttpBinding (lado do serviço) ou no cliente de teste do WCF (lado do cliente)?

5

Eu recentemente movi um serviço de BasicHttpBinding para WSHttpBinding (ou seja, SOAP 1.1 - > SOAP 1.2). Em WCF , o uso de WSHttpBinding () faz com que ele comece a usar algumas configurações de segurança padrão. Presumo que as mesmas configurações de segurança padrão também sejam usadas pelo Cliente de Teste do WCF, já que o cliente e o servidor podem continuar conversando depois de alternar para o WSHttpBinding 'protegido'. No violinista, eu confirmei essa configuração de segurança, já que posso testemunhar handshakes de segurança mais complexos da solicitação-resposta anteriormente inoperante, ou seja,

Antes: (BasicHttpBinding)

  1. [HttpRequest] (solicitação SOAP in clear)

    [HttpResponse] (Resposta SOAP in Clear)

Depois: (WSHttpBinding)

  1. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  2. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  3. [HttpRequest] RequestSecurityTokenResponse

    [HttpResponse] RequestSecurityTokenResponseCollection

  4. [HttpRequest] EncryptedData

    [HttpResponse] EncryptedData

  5. [HttpRequest] EncryptedData (solicitação real no nível do aplicativo)

    [HttpResponse] EncryptedData (resposta real no nível do aplicativo)

Portanto, posso assumir com segurança que a segurança está sendo aplicada. Agora para as perguntas:

Pergunta 1: Quais são as configurações de segurança? Eu nunca disse ao WCF de nenhum provedor de associação. Na verdade, não tenho nenhuma tabela (SQL ou XML) de nenhum nome de usuário < - > senhas. Então, que tipo de autenticação está acontecendo? Embora o Cliente de Teste do WCF possa autenticar como acima, o SoapUI não atende esses padrões do Microsoft .NET e apresenta problemas. O SoapUI tenta comunicações de texto não criptografado e, em seguida, o servidor responde com um erro de token de segurança incorreto.

Pergunta 2: Qual é o modelo de segurança mais comumente praticado para o SOAP 1.2? É através de certificados ou senhas de nome de usuário ou digest ou

por DeepSpace101 03.03.2012 / 03:54
fonte

1 resposta

5

Bem, o famoso WSHTTPBinding. Isso causa muita dor para as plataformas não-.NET.

Primeiro, mesmo se o SOAP 1.2 for um padrão, o WSHTTPBinding é uma implementação da Microsoft sobre o SOAP 1.2 e por experiência, não é tão fácil quanto "Nosso SOAP 1.2 é compatível com o WCF & Serviços WSHTTPBinding, não há problema! ".

Resposta 1

Existem duas configurações principais de segurança:

  • Message Security : a mensagem é parcialmente criptografada, Padrão
  • Segurança de transporte : usa SSL para proteger o canal

Sobre a autenticação, o WSHTTPBinding usa as credenciais do Windows (NTLM ou Kerberos) por padrão.

Resposta 2

Depende, mas uma resposta curta é:

  • Você precisa redirecionar as mensagens ou inspecioná-las: use Mensagem Segurança
  • Você precisa de canais ponto-a-ponto e pode protegê-los com certificados: use Segurança de transporte
  • Seus clientes e servidores compartilhar a mesma plataforma de autenticação, use o Windows autenticação
  • Você precisa de uma autenticação aberta para externos clientes ou entre plataformas, use autenticação de nome de usuário

Sobre a autenticação de nome de usuário, existem configurações diferentes. Você pode armazenar as credenciais em um banco de dados SQL, sim (fazemos isso em nossa empresa para alguns serviços).

Alguns casos simples: Melhorando a segurança de serviços da Web: Cenários e orientação de implementação para o WCF

    
por 03.03.2012 / 23:19
fonte