Formação
Módulo
Explore authentication - Training
In this module, you will learn about the differences between authentication and authorization.
Este browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
O Windows Communication Foundation (WCF) fornece vários modos pelos quais clientes e serviços se autenticam uns aos outros. Você pode criar elementos de vinculação de segurança para esses modos de autenticação usando métodos estáticos na classe ou por meio da SecurityBindingElement configuração. Este tópico descreve brevemente os 18 modos de autenticação.
Para obter um exemplo de como usar o elemento para um dos modos de autenticação, consulte Como criar um SecurityBindingElement para um modo de autenticação especificado.
O procedimento a seguir descreve como definir o modo de autenticação em um arquivo de configuração.
Para o elemento bindings>, adicione um< customBinding>.<
Como um elemento filho, adicione um <elemento binding> ao <customBinding>
elemento .
Adicione um <security>
elemento ao <binding>
elemento .
Defina o authenticationMode
atributo para um dos valores descritos abaixo. Por exemplo, o código a seguir define o modo como AnonymousForCertificate
.
<bindings>
<customBinding>
<binding name="SecureCustomBinding">
<security authenticationMode ="AnonymousForCertificate" />
</binding>
</customBinding>
</bindings>
Determine o tipo de retorno, que pode ser um dos seguintes: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, ou SecurityBindingElement.
Chame o método estático apropriado da SecurityBindingElement classe. Por exemplo, o código a seguir chama o CreateAnonymousForCertificateBindingElement método.
SymmetricSecurityBindingElement b =
SecurityBindingElement.
CreateAnonymousForCertificateBindingElement();
Dim b As SymmetricSecurityBindingElement = _
SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
Use o elemento binding para criar a associação personalizada. Para obter mais informações, consulte Ligações personalizadas.
Com esse modo de autenticação, o cliente é anônimo e o serviço é autenticado usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement pelo CreateAnonymousForCertificateBindingElement método. Como alternativa, defina o authenticationMode
<security>
atributo do elemento como AnonymousForCertificate
.
Com esse modo de autenticação, o cliente é anônimo e o serviço é autenticado usando um certificado X.509 que é negociado em tempo de execução. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement pelo CreateSslNegotiationBindingElement método quando um valor de false
é passado para o primeiro parâmetro. Como alternativa, defina o authenticationMode
atributo como AnonymousForSslNegotiated
.
Com esse modo de autenticação, o cliente autentica usando um certificado X.509 que aparece na camada SOAP como um token de suporte de endosso; ou seja, um token que assina a assinatura da mensagem. O serviço é autenticado usando um certificado X.509 na camada de transporte. O elemento de vinculação de segurança é retornado TransportSecurityBindingElement pelo CreateCertificateOverTransportBindingElement método. Como alternativa, defina o authenticationMode
atributo como CertificateOverTransport
.
Com este modo de autenticação, o cliente não se autentica no serviço, como tal; em vez disso, o cliente se autentica em um serviço de token de segurança e recebe um token SAML, que ele apresenta ao servidor para provar seu conhecimento de uma chave compartilhada. O serviço não é autenticado no cliente, como tal, mas o serviço de token de segurança criptografa a chave compartilhada como parte do token emitido para que apenas o serviço possa descriptografar a chave. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement pelo CreateIssuedTokenBindingElement método. Como alternativa, defina o authenticationMode
atributo como IssuedToken
.
Com este modo de autenticação, o cliente não se autentica no serviço, como tal; em vez disso, o cliente se autentica em um serviço de token de segurança e recebe um token SAML, que ele apresenta ao servidor para provar seu conhecimento de uma chave compartilhada. O token emitido aparece na camada SOAP como um token de suporte de endosso ou um token de portador; ou seja, um token que assina a assinatura da mensagem. O serviço é autenticado no cliente usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement pelo CreateIssuedTokenForCertificateBindingElement método. Como alternativa, defina o authenticationMode
atributo como IssuedTokenForCertificate
.
Com este modo de autenticação, o cliente não se autentica no serviço, como tal; em vez disso, o cliente se autentica em um serviço de token de segurança e recebe um token SAML, que ele apresenta ao servidor para provar seu conhecimento de uma chave compartilhada. O token emitido aparece na camada SOAP como um token de suporte de endosso ou um token de portador; ou seja, um token que assina a assinatura da mensagem. O serviço é autenticado usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement pelo CreateIssuedTokenForSslBindingElement método. Como alternativa, defina o authenticationMode
atributo como IssuedTokenForSslNegotiated
.
Com este modo de autenticação, o cliente não se autentica no serviço, como tal; em vez disso, o cliente se autentica em um serviço de token de segurança e recebe um token SAML, que ele apresenta ao servidor para provar seu conhecimento de uma chave compartilhada. O token emitido aparece na camada SOAP como um token de suporte de endosso ou um token de portador; ou seja, um token que assina a assinatura da mensagem. O serviço é autenticado usando um certificado X.509 na camada de transporte. O elemento de vinculação de segurança é retornado TransportSecurityBindingElement
pelo CreateIssuedTokenOverTransportBindingElement método. Como alternativa, defina o authenticationMode
atributo como IssuedTokenOverTransport
.
Com esse modo de autenticação, o cliente se autentica no serviço usando um tíquete Kerberos. Esse mesmo tíquete também fornece autenticação de servidor. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateKerberosBindingElement método. Como alternativa, defina o authenticationMode
atributo como Kerberos
.
Nota
Para usar esse modo de autenticação, a conta de serviço deve estar associada a um SPN (nome da entidade de serviço). Para fazer isso, execute o serviço na conta SERVIÇO DE REDE ou na conta SISTEMA LOCAL. Como alternativa, use a ferramenta SetSpn.exe para criar um SPN para a conta de serviço. Em ambos os casos, o cliente deve usar o SPN correto no <elemento servicePrincipalName> ou usando o EndpointAddress construtor. Para obter mais informações, consulte Identidade e autenticação do serviço.
Nota
Quando o modo de Kerberos
autenticação é usado, os Anonymous níveis e Delegation representação não são suportados.
Com esse modo de autenticação, o cliente se autentica no serviço usando um tíquete Kerberos. O token Kerberos aparece na camada SOAP como um token de suporte de endosso; ou seja, um token que assina a assinatura da mensagem. O serviço é autenticado usando um certificado X.509 na camada de transporte. O elemento de vinculação de segurança é retornado TransportSecurityBindingElement
pelo CreateKerberosOverTransportBindingElement método. Como alternativa, defina o authenticationMode
atributo como KerberosOverTransport
.
Nota
Para usar esse modo de autenticação, a conta de serviço deve estar associada a um SPN. Para fazer isso, execute o serviço na conta SERVIÇO DE REDE ou na conta SISTEMA LOCAL. Como alternativa, use a ferramenta SetSpn.exe para criar um SPN para a conta de serviço. Em ambos os casos, o cliente deve usar o SPN correto no <elemento servicePrincipalName> ou usando o EndpointAddress construtor. Para obter mais informações, consulte Identidade e autenticação do serviço.
Com esse modo de autenticação, o cliente autentica usando um certificado X.509 que aparece na camada SOAP como um token de suporte de endosso; ou seja, um token que assina a assinatura da mensagem. O serviço também é autenticado usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateMutualCertificateBindingElement método. Como alternativa, defina o authenticationMode
atributo como MutualCertificate
.
Com esse modo de autenticação, o cliente autentica usando um certificado X.509 que aparece na camada SOAP como um token de suporte de endosso; ou seja, um token que assina a assinatura da mensagem. O serviço também é autenticado usando um certificado X.509. A ligação é retornada AsymmetricSecurityBindingElement
CreateMutualCertificateDuplexBindingElement pelo método. Como alternativa, defina o authenticationMode
atributo como MutualCertificateDuplex
.
Com esse modo de autenticação, o cliente e o serviço são autenticados usando certificados X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateSslNegotiationBindingElement método quando um valor de true
é passado para o primeiro parâmetro. Como alternativa, defina o authenticationMode
atributo como MutualSslNegotiated
.
O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateSecureConversationBindingElement método. Esse método usa um SecurityBindingElement como parâmetro, que é usado durante a inicialização para estabelecer a sessão segura. Como alternativa, defina o authenticationMode
atributo como SecureConversation
.
Se nenhuma ligação de bootstrap for especificada, o SspiNegotiated
modo de autenticação será usado para bootstrap.
Com esse modo de autenticação, um protocolo de negociação é usado para executar a autenticação de cliente e servidor. Kerberos é usado, se possível; caso contrário, NT LanMan (NTLM) é usado. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateSspiNegotiationBindingElement método. Como alternativa, defina o authenticationMode
atributo como SspiNegotiated
.
Com esse modo de autenticação, um protocolo de negociação é usado para executar a autenticação de cliente e servidor. O protocolo Kerberos é usado, se possível; caso contrário, o NTLM será usado. O token resultante aparece na camada SOAP como um token de suporte de endosso; ou seja, um token que assina a assinatura da mensagem. O serviço é adicionalmente autenticado na camada de transporte por um certificado X.509. O elemento de vinculação de segurança é retornado TransportSecurityBindingElement
pelo CreateSspiNegotiationOverTransportBindingElement método. Como alternativa, defina o authenticationMode
atributo como SspiNegotiatedOverTransport
.
Com esse modo de autenticação, o cliente se autentica no serviço usando um token de nome de usuário que aparece na camada SOAP como um token de suporte assinado; ou seja, um token que é assinado pela assinatura da mensagem. O serviço é autenticado no cliente usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateUserNameForCertificateBindingElement método. Como alternativa, defina o authenticationMode
atributo como UserNameForCertificate
.
Para o modo de autenticação, o cliente e o serviço devem estar usando o UserNameForCertificate
WS-Security 1.1.
Com esse modo de autenticação, o cliente é autenticado usando um token de nome de usuário que aparece na camada SOAP como um token de suporte assinado; ou seja, um token que é assinado pela assinatura da mensagem. O serviço é autenticado usando um certificado X.509. O elemento de vinculação de segurança é retornado SymmetricSecurityBindingElement
pelo CreateUserNameForSslBindingElement método. Como alternativa, defina o authenticationMode
atributo como UserNameForSslNegotiated
.
Com esse modo de autenticação, o cliente autentica usando um token de nome de usuário que aparece na camada SOAP como um token de suporte assinado; ou seja, um token que é assinado pela assinatura da mensagem. O serviço é autenticado usando um certificado X.509 na camada de transporte. O elemento de vinculação de segurança é retornado TransportSecurityBindingElement
pelo CreateUserNameOverTransportBindingElement método. Como alternativa, defina o authenticationMode
atributo como UserNameOverTransport
.
Formação
Módulo
Explore authentication - Training
In this module, you will learn about the differences between authentication and authorization.
Documentação
<security> de <customBinding> - .NET Framework
Saiba mais sobre: de
Como: Criar um SecurityBindingElement para um modo de autenticação especificado - WCF
Saiba mais sobre: Como criar um SecurityBindingElement para um modo de autenticação especificado
Como: Criar uma associação personalizada usando o SecurityBindingElement - WCF
Saiba mais sobre: Como criar uma associação personalizada usando o SecurityBindingElement