Desenvolvimento - Visual Basic .NET
Segurança Windows Communication Foundation - Parte I
o objetivo desse artigo é abordar de forma teórica a estrutura de segurança do WCF e mais especificamente a área de segurança de transporte.
por Leonardo Bruno Bentes LimaAplica-se a: .Net 3.0, Visual Studio 2005, SOA, Aplicações distribuídas
Quando ouvimos falar de segurança no nível de comunicação, devemos ter em mente no mínimo três palavras: Integridade, Confidencialidade, Autenticação.
A integridade da informação nos garante que a mensagem enviada não foi alterada durante o percurso e que realmente estamos vendo o que foi mandado. Confidencialidade é outra característica que nos garante que a mensagem só seja lida por quem deve lê-la, ou seja, ninguém que não seja explicitamente especificado deve ter acesso à informação. E por fim a Autenticação nos permite saber se quem está enviando e quem está recebendo a informação são realmente quem dizem que são, e isso junto com o recurso de Confidencialidade nos dá a segurança necessária para transmitir mensagens em um meio inseguro com a Internet.
A estrutura de segurança do WCF é dividida em basicamente três vertentes, segurança na transferência de mensagens, controle de acesso e auditoria. Nessa matéria vamos ver apenas segurança na transferência de mensagens. No que diz respeito à segurança de transferência de mensagens, podemos subdividi-la em segurança no nível de transporte, nível de mensagem e segurança mista.
A segurança no nível de transporte é feita utilizando padrões de mercado como HTTPS e por isso é amplamente adotada, já que é independente de plataforma e mais fácil de implementar em termos de desenvolvimento.
A segurança no nível de mensagem é feita utilizando basicamente as especificações WS-Security, e é aplicada diretamente à mensagem. Sendo dessa forma independente de protocolo e bastante extensível. O único problema é que esse tipo de segurança é mais lento do que a de nível de transporte.
A outra opção é um mix das duas anteriores, onde o que difere é aonde se dá a autenticação. Essa opção realiza a autenticação no lado do servidor utilizando nível de transporte e no cliente utilizando nível de mensagem.
Nas três opções de segurança de transmissão de mensagens (transfer security), os três objetivos são contemplados, ou seja, temos Integridade, Confidencialidade, Autenticação. Agora vamos detalhar um pouco mais as opções de implementação de cada um dos tipos Transfer Secutiry.
Segurança no nível de transporte
Tipo | Descrição |
None | Como o nome sugere, o cliente não precisa se identificar e a comunicação se dará utilizando anonymous client. |
Basic | Autenticação básica. |
Digest | Autenticação Digest. |
NTLM | Autenticação utilizando Windows Authentication (SSPI) dentro de um domínio Windows. Nesse caso será utilizado o protocolo de autenticação Kerberos ou NTLM. |
Windows | Autenticação utilizando Windows Authentication (SSPI) dentro de um domínio Windows. Nesse caso o primeiro protocolo a ser utilizado é o Kerberos, se ele falhar é utilizado o NTLM. |
Certificate | Autenticação utilizando certificados digitais, normalmente o X.509. |
Dica: Essas opções de segurança no nível de transporte, você pode configurar diretamente no servidor Web, caso o seu host seja o IIS, por exemplo.
Segurança no nível de mensagem
Tipo | Descrição |
None | Como o nome sugere, o cliente não precisa se identificar e a comunicação se dará utilizando anonymous client. |
Windows | Essa opção permite que as mensagens sejam trocadas dentro de um contexto de segurança do Windows. O protocolo utilizado para autenticação é o Kerberos ou NTLM. |
Username | O WCF exige que o cliente passe uma credencial que é composta apenas de nome de usuário e senha. Com essa opção, o WCF utiliza WS-Trust specification para transportar a credencial. |
Certificate | Autenticação utilizando certificados digitais, normalmente o X.509. |
Windows CardSpace | Permite que o WCF solicite que o cliente seja autenticado usando Windows CardSpace. |
Conclusão: Temos agora uma visão geral da arquitetura de segurança implementada no WCF no nível de transferência de mensagens, nas próximas matérias iremos abordar com mais detalhes como implementar cada umas das opções de segurança apresentada nessa matéria.
Até a próxima.
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET