Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As associações fornecidas pelo sistema incluídas no WCF (Windows Communication Foundation) oferecem uma maneira rápida de programar aplicativos WCF. Com uma exceção, todas as associaçõ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 de segurança. Para obter mais informações sobre como programar o WCF usando associações, consulte Programming WCF Security.
Se você já tiver selecionado uma associação, poderá saber mais sobre os comportamentos de runtime associados à segurança em Comportamentos de Segurança.
Algumas funções de segurança não são programáveis usando as associações fornecidas pelo sistema. Para obter mais controle usando uma associação personalizada, consulte Recursos de segurança com associações personalizadas.
Funções de segurança de vinculações
O WCF inclui várias associaçõ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 associações fornecidas pelo sistema, consulte System-Provided Associações. Para obter mais informações sobre associações personalizadas, consulte Associaçõ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 um equivalente no <wsHttpBinding>.
A seção a seguir lista os dois formulários para cada associação e resume os recursos de segurança.
BasicHttp
No código, use a classe BasicHttpBinding. Na configuração, use o <basicHttpBinding>.
Essa associação foi projetada para uso com uma variedade de tecnologias existentes, incluindo o seguinte:
ASP.NET Serviços Web (ASMX), versão 1.
Aplicativos de Aprimoramentos para Serviços Web (WSE).
Perfil Básico conforme definido na especificação (WS-I) de Interoperabilidade dos Serviços Web.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 foi projetado para interoperar com serviços ASMX. Quando a segurança é 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 de segurança de transporte. Essa associação dá suporte ao seguinte:
Segurança de transporte HTTPS.
Autenticação básica HTTP.
WS-Security.
Para obter mais informações, consulte BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType e BasicHttpSecurityMode.
WSHttpBinding
No código, use a classe WSHttpBinding; na configuração, use o <wsHttpBinding>.
Por padrão, essa associação implementa a especificação WS-Security e fornece interoperabilidade com serviços que implementam as especificações do WS-*. Ele dá suporte ao seguinte:
Segurança de transporte HTTPS.
WS-Security.
Proteção de transporte HTTPS com segurança de credencial de mensagem SOAP para autenticar o chamador.
Para obter mais informações, consulte WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialType e HttpProxyCredentialType.
WSDualHttpBinding
No código, use a classe WSDualHttpBinding. Na configuração, use o <wsDualHttpBinding>.
Essa associação foi projetada para habilitar aplicativos de serviço duplex. Essa associação implementa a especificação WS-Security para a 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 o WS-Reliable Messaging para confiabilidade.
Implementa WS-Security para segurança e autenticação de transferência.
Usa HTTP para entrega de mensagens.
Usa a codificação de mensagem de texto/XML.
Usando WS-Security (segurança da camada de mensagem), a associação permite que você configure os seguintes parâmetros:
O conjunto de algoritmos de segurança para determinar o algoritmo criptográfico.
Opções de associação para o seguinte:
Fornecer credenciais de serviço disponíveis fora de banda no cliente.
Fornecer credenciais de serviço negociadas do serviço como parte da instalação do canal.
Para obter mais informações, consulte WSDualHttpSecurity e WSDualHttpSecurityMode.
NetTcpBinding
No código, use a classe NetTcpBinding. Na configuração, use o <netTcpBinding>.
Essa associaçã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.
Utiliza a segurança do Windows para garantir a segurança de transferência e a autenticação.
Usa TCP para transporte.
Implementa a codificação de mensagens binárias.
Implementa o sistema de mensagens WS-Reliable.
As opções incluem o seguinte:
Segurança da camada de mensagem (usando o WS-Security).
Segurança de transporte com credencial de mensagem – confidencialidade e integridade fornecidas pelo TLS (Transport Layer Security) sobre TCP e credenciais para autorização fornecida pelo WS-Security.
Para obter mais informações, consulte NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp e MessageCredentialType.
NetNamedPipeBinding
No código, use a classe NetNamedPipeBinding. Na configuração, use o <netNamedPipeBinding>.
Essa associação é otimizada para comunicação entre processos (geralmente no mesmo computador). Por padrão, essa associação tem as seguintes características:
Usa a segurança de transporte para transferência e autenticação de mensagens.
Usa tubos nomeados para entrega de mensagens.
Implementa a codificação de mensagens binárias.
Criptografia e assinatura de mensagem.
As opções incluem o seguinte:
- Autenticação usando a segurança do Windows.
Para obter mais informações, consulte NetNamedPipeSecurity, NetNamedPipeSecurityMode e NamedPipeTransportSecurity.
MsmqIntegrationBinding
No código, use a classe MsmqIntegrationBinding. Na configuração, use o <msmqIntegrationBinding>.
Essa associação é otimizada para criar clientes e serviços do WCF que interoperam com pontos de extremidade do MSMQ (serviço de enfileiramento de mensagens) da Microsoft não WCF.
Por padrão, essa associação usa a segurança de transporte e fornece as seguintes características de segurança:
A segurança pode ser desabilitada (Nenhum).
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 o <netMsmqBinding>.
Essa associação destina-se a ser usada ao criar serviços WCF que exigem suporte à mensagem enfileirada do MSMQ.
Por padrão, essa associação usa a segurança de transporte e fornece as seguintes características de segurança:
A segurança pode ser desabilitada (Nenhum).
Segurança de transporte MSMQ (Transporte).
Segurança de mensagem baseada em SOAP (Mensagem).
Transporte simultâneo e segurança de mensagem (Ambos).
Tipos de credenciais do cliente com suporte: Nenhuma, Windows, UserName, Certificate, IssuedToken.
A Certificate credencial só tem suporte quando o modo de segurança é definido como Both ou Message.
Para obter mais informações, consulte MessageSecurityOverMsmq e MsmqTransportSecurity.
WSFederationHttpBinding
No código, use a classe WSFederationHttpBinding. Na configuração, use o <wsFederationHttpBinding>.
Por padrão, essa associação usa WS-Security (segurança de camada de mensagem).
Para obter mais informações, consulte FederaçãoWSFederationHttpSecurity e WSFederationHttpSecurityMode.
Associações personalizadas
Se nenhuma das associações fornecidas pelo sistema atender aos requisitos, você poderá criar uma associação personalizada com um elemento de associação de segurança personalizado. Para obter mais informações, consulte Recursos de segurança com associações personalizadas.
Opções Vinculantes
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 necessários para seu aplicativo.
| Configurações | Características |
|---|---|
| Transporte | Autenticação do servidor Autenticação do cliente Segurança ponto a ponto Interoperabilidade Aceleração de hardware Alta taxa de transferência Firewall seguro Aplicativos de alta latência Recriptografia em vários saltos |
| Mensagem | Autenticação do servidor Autenticação do cliente Segurança de ponta a ponta Interoperabilidade Alegações exageradas Federação Autenticação multifator Tokens personalizados Serviço notário/carimbo de data/hora Aplicativos de alta latência Persistência de assinaturas de mensagens |
| TransportWithMessageCredential | Autenticação do servidor Autenticação do cliente Segurança ponto a ponto Interoperabilidade Aceleração de hardware Alta taxa de transferência Reivindicações de cliente rico Federação Autenticação multifator Tokens personalizados Firewall seguro Aplicativos de alta latência Recriptografia em vários saltos |
A tabela a seguir lista as associações que dão suporte às várias configurações de modo. Selecione uma associação na tabela a ser usada para criar o ponto de extremidade de serviço.
| Associação | Suporte ao modo de transporte | Suporte ao modo de mensagem | Suporte ao 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 do cliente disponíveis ao usar ou BasicHttpBinding ou WSHttpBinding no modo de segurança de transporte.
| Tipo | Descrição |
|---|---|
| Nenhum | Especifica que o cliente não precisa apresentar nenhuma credencial. Isso se traduz em um cliente anônimo. |
| Básico | Autenticação básica. Para obter mais informações, confira RFC 2617 – Autenticação HTTP: autenticação básica e de hash em https://go.microsoft.com/fwlink/?LinkId=84023. |
| Resumo | Autenticação resumida. Para obter mais informações, confira RFC 2617 – Autenticação HTTP: autenticação básica e de hash em https://go.microsoft.com/fwlink/?LinkId=84023. |
| NTLM | Autenticação do NT LAN Manager (NTLM). |
| Windows | Autenticação do Windows. |
| Certificado | Autenticação executada usando um certificado. |
| IssuedToken | 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 obter mais informações, consulte Federação e Tokens Emitidos. |
Credenciais do cliente de mensagem em associações
A tabela a seguir lista os tipos de credencial do 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. |
| Windows | Permite que as trocas de mensagens SOAP sejam feitas no contexto autenticado de uma credencial do Windows. |
| UserName | Permite que o serviço exija que o cliente seja autenticado usando uma credencial de nome de usuário. Observe que, quando o modo de segurança é definido como TransportWithMessageCredential, o WCF não oferece suporte ao envio de um resumo de senha, à derivação de chaves usando senha ou ao uso de tais chaves para a segurança no modo de mensagem. Dessa forma, o WCF impõe que o transporte seja protegido ao usar credenciais de nome de usuário. |
| Certificado | Permite que o serviço exija que o cliente seja autenticado usando um certificado. |
| IssuedToken | Permite que o serviço use um serviço de token de segurança para fornecer um token personalizado. |
Consulte também
- Visão geral de segurança
- Protegendo serviços e clientes
- Selecionando um tipo de credencial
- Recursos de segurança com associações personalizadas
- Comportamentos de segurança
- Modelo de Segurança do Windows Server App Fabric