Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As associações fornecidas pelo sistema incluídas no Windows Communication Foundation (WCF) oferecem uma maneira rápida de programar aplicativos WCF. Com uma exceção, todas as ligações têm um esquema de segurança padrão habilitado. Este tópico ajuda você a selecionar a associação certa para suas necessidades de segurança.
Para obter uma visão geral da segurança do WCF, consulte Visão geral da segurança. Para obter mais informações sobre como programar WCF usando associações, consulte Programando segurança WCF.
Se já selecionou um binding, pode saber mais sobre os comportamentos em tempo de execução associados à segurança em Security Behaviors.
Algumas funções de segurança não são programáveis usando as ligações fornecidas pelo sistema. Para obter mais controle usando uma associação personalizada, consulte Recursos de segurança com ligações personalizadas.
Funções de segurança das ligações
O WCF inclui várias ligações fornecidas pelo sistema que atendem à maioria das necessidades. Se uma associação específica não for suficiente, você também poderá criar uma associação personalizada. Para obter uma lista de ligações fornecidas pelo sistema, consulte System-Provided Ligações. Para obter mais informações sobre ligações personalizadas, consulte Ligações personalizadas.
Cada associação no WCF tem duas formas: como uma API e como um elemento XML usado em um arquivo de configuração. Por exemplo, a WSHttpBinding (API) tem uma contrapartida no <wsHttpBinding>.
A seção a seguir lista ambos os formulários para cada associação e resume os recursos de segurança.
BásicoHttp
No código, utilize a classe BasicHttpBinding; na configuração, utilize o <basicHttpBinding>.
Esta ligação foi concebida para utilização com uma gama de tecnologias existentes, incluindo as seguintes:
ASP.NET Web services (ASMX), versão 1.
Aplicações WSE (Web Service Enhancements).
Perfil Básico, conforme definido na especificação Web Services Interoperability (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).
Perfil de segurança básico, conforme definido no WS-I.
Por padrão, essa associação não é segura. Ele é projetado para interoperar com serviços ASMX. Quando a segurança está habilitada, a associação é projetada para interoperação perfeita com mecanismos de segurança do IIS (Serviços de Informações da Internet), como autenticação básica, resumo e segurança integrada do Windows. Para obter mais informações, consulte Visão geral da segurança de transporte. Esta ligação suporta o seguinte:
Segurança de transporte HTTPS.
Autenticação básica HTTP.
WS-Segurança.
Para obter mais informações, consulte BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialTypee BasicHttpSecurityMode.
WSHttpBinding
No código, use a WSHttpBinding classe; na configuração, use o <wsHttpBinding>.
Por padrão, essa ligação implementa a especificação WS-Security e fornece interoperabilidade com serviços que implementam as especificações WS-*. Suporta o seguinte:
Segurança de transporte HTTPS.
WS-Segurança.
Proteção de transporte HTTPS com segurança de credenciais de mensagem SOAP para autenticar o chamador.
Para obter mais informações, consulte , , , WSHttpSecurity, MessageSecurityOverHttpMessageCredentialType, SecurityMode, e HttpTransportSecurity. HttpClientCredentialTypeHttpProxyCredentialType
WSDualHttpBinding
No código, utilize a WSDualHttpBinding classe; na configuração, utilize o <wsDualHttpBinding>.
Essa associação foi projetada para habilitar aplicativos de serviço duplex. Essa associação implementa a especificação WS-Security para segurança de transferência baseada em mensagem. A segurança do transporte não está disponível. Por padrão, ele fornece os seguintes recursos:
Implementa WS-Reliable Messaging para assegurar fiabilidade.
Implementa WS-Security para segurança de transferência e autenticação.
Usa HTTP para entrega de mensagens.
Usa codificação de mensagem de texto/XML.
Usando WS-Security (segurança da camada de mensagem), a associação permite configurar os seguintes parâmetros:
O conjunto de algoritmos de segurança para determinar o algoritmo criptográfico.
Opções de vinculação para o seguinte:
Fornecimento de credenciais de serviço disponíveis fora da banda no cliente.
Fornecimento de credenciais de serviço, negociadas pelo serviço, como parte da configuração do canal.
Para obter mais informações, consulte WSDualHttpSecurity e WSDualHttpSecurityMode.
NetTcpBinding
No código, use a NetTcpBinding classe; na configuração, use o <netTcpBinding>.
Essa ligação é otimizada para comunicação entre máquinas. Por padrão, ele tem as seguintes características:
Implementa a segurança da camada de transporte.
Aproveita a segurança do Windows para segurança de transferência e autenticação.
Usa TCP para transporte.
Implementa a codificação de mensagens binárias.
Implementa WS-Reliable Messaging.
As opções incluem o seguinte:
Segurança da camada de mensagem (usando WS-Security).
Segurança de transporte com credencial de mensagem — confidencialidade e integridade fornecidas pelo Transport Layer Security (TLS) sobre TCP e credenciais para autorização fornecidas pelo WS-Security.
Para obter mais informações, consulte NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp, e MessageCredentialType.
NetNamedPipeBinding
No código, use a NetNamedPipeBinding classe; na configuração, use o <netNamedPipeBinding>.
Essa ligação é otimizada para comunicação entre processos (geralmente na mesma máquina). Por padrão, essa associação tem as seguintes características:
Usa segurança de transporte para transferência e autenticação de mensagens.
Usa canalizações nomeadas para entrega de mensagens.
Implementa a codificação de mensagens binárias.
Criptografia e assinatura de mensagens.
As opções incluem o seguinte:
- Autenticação usando a segurança do Windows.
Para obter mais informações, consulte NetNamedPipeSecurity, NetNamedPipeSecurityModee NamedPipeTransportSecurity.
MsmqIntegrationBinding
No código, use a MsmqIntegrationBinding classe; na configuração, use o <msmqIntegrationBinding>.
Esta ligação está otimizada para criar clientes e serviços WCF que interoperam com endpoints do Microsoft Message Queuing (MSMQ) que não são WCF.
Por padrão, essa associação usa segurança de transporte e fornece as seguintes características de segurança:
A segurança pode ser desativada (Nenhuma).
Segurança de transporte MSMQ (Transporte).
Para obter mais informações, consulte NetMsmqSecurity e NetMsmqSecurityMode.
NetMsmqBinding
No código, use a classe NetMsmqBinding; na configuração, use <netMsmqBinding>.
Essa associação destina-se a ser usada ao criar serviços WCF que exigem suporte a mensagens em fila MSMQ.
Por padrão, essa associação usa segurança de transporte e fornece as seguintes características de segurança:
A segurança pode ser desativada (Nenhuma).
Segurança de transporte MSMQ (Transporte).
Segurança de mensagens baseada em SOAP (Message).
Transporte simultâneo e segurança de mensagens (ambos).
Tipos de credenciais de cliente suportados: Nenhum, Windows, UserName, Certificate, IssuedToken.
A Certificate credencial é suportada apenas quando o modo de segurança está definido como Both ou Message.
Para obter mais informações, consulte MessageSecurityOverMsmq e MsmqTransportSecurity.
WSFederationHttpBinding
No código, use a WSFederationHttpBinding classe; na configuração, use o <wsFederationHttpBinding>.
Por padrão, essa associação usa WS-Security (segurança da camada de mensagem).
Para obter mais informações, consulte FederaçãoWSFederationHttpSecurity e WSFederationHttpSecurityMode.
Ligações personalizadas
Se nenhuma das associações fornecidas pelo sistema atender aos seus requisitos, você poderá criar uma associação personalizada com um elemento de vinculação de segurança personalizado. Para obter mais informações, consulte Recursos de segurança com ligações personalizadas.
Opções vinculativas
A tabela a seguir resume os recursos oferecidos na configuração do modo de segurança, ou seja, lista os recursos disponíveis quando o modo de segurança é definido como Transport, Messageou TransportWithMessageCredential. Use esta tabela para ajudá-lo a encontrar os recursos de segurança que seu aplicativo requer.
| Configurações | Caraterísticas |
|---|---|
| Transportes | Autenticação do servidor Autenticação de cliente Segurança ponto a ponto Interoperabilidade Aceleração de hardware Alta capacidade de processamento Firewall seguro Aplicativos de alta latência Recriptografia em múltiplas etapas |
| Mensagem | Autenticação do servidor Autenticação de cliente Segurança ponto a ponto Interoperabilidade Reivindicações detalhadas Federação Autenticação com múltiplos fatores Tokens personalizados Serviço notarial/marca temporal Aplicativos de alta latência Persistência de assinaturas de mensagens |
| TransporteComCredencialDeMensagem | Autenticação do servidor Autenticação de cliente Segurança ponto a ponto Interoperabilidade Aceleração de hardware Alta capacidade de processamento Declarações de clientes ricos Federação Autenticação com múltiplos fatores Tokens personalizados Firewall seguro Aplicativos de alta latência Recriptografia em múltiplas etapas |
A tabela a seguir lista as associações que suportam as várias configurações de modo. Selecione uma associação na tabela a ser usada para criar seu ponto de extremidade de serviço.
| Vinculativo | Suporte ao modo de transporte | Suporte ao modo de mensagem | Suporte a TransportWithMessageCredential |
|---|---|---|---|
BasicHttpBinding |
Sim | Sim | Sim |
WSHttpBinding |
Sim | Sim | Sim |
WSDualHttpBinding |
Não | Sim | Não |
NetTcpBinding |
Sim | Sim | Sim |
NetNamedPipeBinding |
Sim | Não | Não |
NetMsmqBinding |
Sim | Sim | Não |
MsmqIntegrationBinding |
Sim | Não | Não |
wsFederationHttpBinding |
Não | Sim | Sim |
Credenciais de transporte em associações
A tabela a seguir lista os tipos de credenciais de cliente disponíveis ao usar BasicHttpBinding ou WSHttpBinding no modo de segurança de transporte.
| Tipo | Descrição |
|---|---|
| Nenhum | Especifica que o cliente não precisa apresentar nenhuma credencial. Isto traduz-se num cliente anónimo. |
| Básico | Autenticação básica. Para obter mais informações, consulte RFC 2617 – Autenticação HTTP: autenticação básica e resumo, disponível em https://go.microsoft.com/fwlink/?LinkId=84023. |
| Resumo | Autenticação por resumo Para obter mais informações, consulte RFC 2617 – Autenticação HTTP: autenticação básica e resumo, disponível em https://go.microsoft.com/fwlink/?LinkId=84023. |
| NTLM | Autenticação do NT LAN Manager (NTLM). |
| Mac OS | Autenticação do Windows. |
| Certidão | Autenticação realizada usando um certificado. |
| TokenEmitido | Permite que o serviço exija que o cliente seja autenticado usando um token emitido por um serviço de token de segurança ou pelo CardSpace. Para informações adicionais, consulte Federação e tokens emitidos. |
Credenciais do cliente de mensagem em ligações
A tabela a seguir lista os tipos de credenciais de cliente disponíveis ao usar uma associação no modo de segurança de mensagem.
| Tipo | Descrição |
|---|---|
| Nenhum | Permite que o serviço interaja com clientes anônimos. |
| Mac OS | Permite que trocas de mensagens SOAP sejam feitas sob o contexto autenticado de uma credencial do Windows. |
| Nome de Utilizador | Permite que o serviço exija que o cliente seja autenticado usando uma credencial de nome de usuário. Tenha em atenção que quando o modo de segurança é definido como TransportWithMessageCredential, o WCF não suporta o envio de um resumo da senha ou a derivação de chaves usando a senha e a utilização dessas chaves para segurança no modo de segurança de mensagem. Como tal, o WCF impõe que o transporte seja protegido ao usar credenciais de nome de usuário. |
| Certidão | Permite que o serviço exija que o cliente seja autenticado usando um certificado. |
| TokenEmitido | Permite que o serviço use um serviço de token de segurança para fornecer um token personalizado. |
Ver também
- Visão geral da segurança
- Proteger serviços e clientes
- Selecionando um tipo de credencial
- Funcionalidades de segurança com ligações personalizadas
- Comportamentos de segurança
- Modelo de segurança para o Windows Server App Fabric