Pergunta

Eu estou andando em círculos com relação ao WCF e segurança, então eu só vou enfiar uma carga de perguntas aqui e espero que alguém pode me ajudar a obter uma imagem clara.

  1. Alguém por favor pode me dar uma explicação Inglês planície de Transporte vs segurança em nível de mensagem.

  2. I pensar Eu tenho um serviço que funciona sob SSL que irá autenticar o usuário com base em suas credenciais do Windows. Eu também pensar Eu entendo como limitar o acesso a um método de serviço através da PrincipalPermission. Mas como faço para realmente recuperar a corrente IPrinciple, para que eu possa retornar resultados diferentes dependentes de quem está chamando o serviço?

  3. Eu descobri como ativar o rastreamento e eu posso ver os meus registos de rastreio utilizando o "Microsoft serviço de rastreamento Log Viewer", mas mal se dane se eu posso descobrir o que Im que está sendo exibido. Existe um recurso decente explicando como usar essa coisa?

  4. Ao usar o clientCredentialType "certificado", é este somehting diferente para SSL?

  5. Ao usar o clientCredentialType "Windows" como eu posso ver o que usuário do Windows está sendo passado através?

  6. As minhas exigências significa que eu tenho que usar basicHttpBindings - Estou correto em assumir:

    • Eu só tenho a segurança em nível de transporte disponíveis para mim?
    • Não posso implementar nome de usuário personalizada / senha para essa ligação?

Eu sei que estas perguntas podem parecer estúpido, mas qualquer ajuda com esclarecimentos seria realmente ajudar.

EDIT:

  1. Como posso adicionar cabeçalhos SOAP personalizado para o meu serviço em uma mansão semelhante aos serviços .asmx? Será esta uma abordagem válida?

EDIT:

Na sequência das perguntas acima, gostaria de saber se é possível autenticar um dispositivo Windows Mobile com base em seu usuário do Windows, verificando em relação ao Active Directory. Por tudo que eu encontrei até agora parece improvável.

NB. Para aqueles que não sabem o que está disponível para Windows versão do CE da WCF sua: só a segurança nível de transporte, e quer none / certificado para o cliente Credencial Type. Assim, parece que WCF da CE não vai permitir que isso por padrão, mas poderia eu seguramente enviar esta informação na mensagem (via a assinatura do método) e isso seria uma forma aceitável de enviar este tipo de informação?

Foi útil?

Solução

Eu não sei todas as respostas, mas aqui são os que eu sei

  1. segurança de transporte, a comunicação é criptografado enquanto a mensagem é transportada por isso não pode ser lido e ou adulterado. segurança mensagem significa que o conteúdo da mensagem em si é criptografada o transporte no entanto, não é necessariamente. segurança de mensagem pode, por exemplo, ser utilizado com HTTP, enquanto a segurança do transporte exigiria o uso de HTTPS (ou outras ligações).
  2. IPrincipal principal = Thread.CurrentPrincipal;
  3. nenhuma resposta
  4. Sim, embora em si SSL usa certificados não é o mesmo. Você pode ter o cliente envia um certificado que é conhecido ao serviço ou que é assinado por uma autoridade confiável para que o serviço sabe quem é o cliente e se a permitir-lhes para fazer a chamada ou não. Usando SSL só irá garantir que terceiros não podem ler a comunicação entre o cliente e os serviços por interceptar os pacotes de rede.
  5. IPrincipal principal = Thread.CurrentPrincipal; principal.Identity.Name;
  6. Não.
    • Você tem Nenhum, Transporte, Mensagem e segurança Mixed como suas opções no entanto a segurança de transporte vai exigir chamar o endpoint usando HTTPS desde isso é a versão segura do protocolo
    • EDIT: Confira a discussão em este fórum .

E as perguntas certamente não são estúpidos.

P.S. Posso recomendar o livro serviços de programação WCF por Juval Lowy é realmente em profundidade e vem com um quadro muito útil estendendo WCF / Simplificar certas coisas.

Outras dicas

Confira WCF Security Guidance . Se precisar de mais informações, você deve ser capaz de encontrar tudo lá, é bastante completo. Embora pareça @olle deu uma resposta bastante completo ....

Além disso, verifique estes cenários WCF Segurança Comum

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top