Modalità di autenticazione di SecurityBindingElementSecurityBindingElement Authentication Modes

Windows Communication Foundation (WCF) sono disponibili varie modalità con cui i client e servizi per l'autenticazione reciproca.Windows Communication Foundation (WCF) provides several modes by which clients and services authenticate to one another. È possibile creare elementi di associazione di sicurezza per tali modalità di autenticazione utilizzando metodi statici sulla classe SecurityBindingElement o tramite configurazione.You can create security binding elements for these authentication modes by using static methods on the SecurityBindingElement class or through configuration. In questo argomento vengono brevemente descritte le 18 modalità di autenticazione.This topic briefly describes the 18 authentication modes.

Per un esempio di utilizzo dell'elemento per una delle modalità di autenticazione, vedere procedura: creare un elemento SecurityBindingElement per una modalità di autenticazione specificato.For an example of using the element for one of the authentication modes, see How to: Create a SecurityBindingElement for a Specified Authentication Mode.

Programmazione della configurazione di baseBasic Configuration Programming

Nella procedura seguente viene illustrato come impostare la modalità di autenticazione in un file di configurazione.The following procedure describes how to set the authentication mode in a configuration file.

Per impostare la modalità di autenticazione nella configurazioneTo set the authentication mode in configuration

  1. Per il <associazioni > elemento, aggiungere un <customBinding >.To the <bindings> element, add a <customBinding>.

  2. Come elemento figlio, aggiungere un <associazione > elemento per il <customBinding> elemento.As a child element, add a <binding> element to the <customBinding> element.

  3. Aggiungere un elemento <security> all'elemento <binding>.Add a <security> element to the <binding> element.

  4. Impostare l'attributo authenticationMode su uno dei valori descritti di seguito.Set the authenticationMode attribute to one of the values described below. Ad esempio, nel codice seguente la modalità viene impostata su AnonymousForCertificate.For example, the following code sets the mode to AnonymousForCertificate.

    <bindings>  
      <customBinding>  
        <binding name="SecureCustomBinding">  
         <security authenticationMode ="AnonymousForCertificate" />  
        </binding>  
      </customBinding>  
    </bindings>  
    

Per impostare la modalità a livello di codiceTo set the mode programmatically

  1. Determinare il tipo restituito, che può essere uno dei seguenti: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement o SecurityBindingElement.Determine the return type, which can be one of the following: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, or SecurityBindingElement.

  2. Chiamare il metodo statico appropriato della classe SecurityBindingElement.Call the appropriate static method of the SecurityBindingElement class. Ad esempio, nel codice seguente viene chiamato il metodo CreateAnonymousForCertificateBindingElement.For example, the following code calls the CreateAnonymousForCertificateBindingElement method.

    SymmetricSecurityBindingElement b =
        SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement();
    
    Dim b As SymmetricSecurityBindingElement = _
    SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
    
  3. Utilizzare l'elemento di associazione per creare l'associazione personalizzata.Use the binding element to create the custom binding. Per altre informazioni, vedere associazioni personalizzate.For more information, see Custom Bindings.

Descrizione delle modalitàMode Descriptions

AnonymousForCertificateAnonymousForCertificate

In questa modalità di autenticazione il client è anonimo e il servizio viene autenticato utilizzando un certificato X.509.With this authentication mode, the client is anonymous and the service is authenticated using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateAnonymousForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateAnonymousForCertificateBindingElement method. In alternativa, impostare il authenticationMode attributo di <security> elemento AnonymousForCertificate.Alternatively, set the authenticationMode attribute of the <security> element to AnonymousForCertificate.

AnonymousForSslNegotiatedAnonymousForSslNegotiated

In questa modalità di autenticazione il client è anonimo e il servizio viene autenticato utilizzando un certificato X.509 negoziato a runtime.With this authentication mode, the client is anonymous and the service is authenticated using an X.509 certificate that is negotiated at run time. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateSslNegotiationBindingElement quando viene passato un valore false per il primo parametro.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSslNegotiationBindingElement method when a value of false is passed for the first parameter. In alternativa, impostare l'attributo authenticationMode su AnonymousForSslNegotiated.Alternatively, set the authenticationMode attribute to AnonymousForSslNegotiated.

CertificateOverTransportCertificateOverTransport

In questa modalità di autenticazione il client viene autenticato mediante un certificato X.509 che a livello SOAP viene considerato come un token di supporto di verifica dell'autenticità, ovvero un token che firma la firma del messaggio.With this authentication mode, the client authenticates using an X.509 certificate that appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Il servizio viene autenticato tramite un certificato X.509 a livello di trasporto.The service is authenticated using an X.509 certificate at the transport layer. L'elemento di associazione di sicurezza è un elemento TransportSecurityBindingElement restituito dal metodo CreateCertificateOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateCertificateOverTransportBindingElement method. In alternativa, impostare l'attributo authenticationMode su CertificateOverTransport.Alternatively, set the authenticationMode attribute to CertificateOverTransport.

IssuedTokenIssuedToken

In questa modalità di autenticazione il client, anziché autenticarsi presso il servizio, si autentica presso un servizio token di sicurezza e riceve un token SAML che poi presenta al server per dimostrare la conoscenza di una chiave condivisa.With this authentication mode, the client does not authenticate to the service, as such; instead, the client authenticates to a security token service and receives a SAML token, which it then presents to the server to prove its knowledge of a shared key. Inoltre, anziché prevedere l'autenticazione del servizio presso il client, questa modalità ricorre al meccanismo seguente: il servizio token di sicurezza esegue la crittografia della chiave condivisa come parte del token emesso in modo che solo il servizio possa decifrare la chiave.The service is not authenticated to the client, as such, but the security token service encrypts the shared key as part of the issued token so that only the service can decrypt the key. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateIssuedTokenBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenBindingElement method. In alternativa, impostare l'attributo authenticationMode su IssuedToken.Alternatively, set the authenticationMode attribute to IssuedToken.

IssuedTokenForCertificateIssuedTokenForCertificate

In questa modalità di autenticazione il client, anziché autenticarsi presso il servizio, si autentica presso un servizio token di sicurezza e riceve un token SAML che poi presenta al server per dimostrare la conoscenza di una chiave condivisa.With this authentication mode, the client does not authenticate to the service, as such; instead, the client authenticates to a security token service and receives a SAML token, which it then presents to the server to prove its knowledge of a shared key. Il token emesso viene considerato a livello SOAP come un token di supporto di verifica dell'autenticità o un token che firma la firma del messaggio.The issued token appears at the SOAP layer as either an endorsing supporting token or a bearer token; that is, a token that signs the message signature. Il client autentica il servizio tramite un certificato X.509.The service authenticates to the client using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateIssuedTokenForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenForCertificateBindingElement method. In alternativa, impostare l'attributo authenticationMode su IssuedTokenForCertificate.Alternatively, set the authenticationMode attribute to IssuedTokenForCertificate.

IssuedTokenForSslNegotiatedIssuedTokenForSslNegotiated

In questa modalità di autenticazione il client, anziché autenticarsi presso il servizio, si autentica presso un servizio token di sicurezza e riceve un token SAML che poi presenta al server per dimostrare la conoscenza di una chiave condivisa.With this authentication mode, the client does not authenticate to the service, as such; instead, the client authenticates to a security token service and receives a SAML token, which it then presents to the server to prove its knowledge of a shared key. Il token emesso viene considerato a livello SOAP come un token di supporto di verifica dell'autenticità o un token che firma la firma del messaggio.The issued token appears at the SOAP layer as either an endorsing supporting token or a bearer token; that is, a token that signs the message signature. Il servizio viene autenticato tramite l'uso di un certificato X.509.The service is authenticated using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateIssuedTokenForSslBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenForSslBindingElement method. In alternativa, impostare l'attributo authenticationMode su IssuedTokenForSslnegotiated.Alternatively, set the authenticationMode attribute to IssuedTokenForSslnegotiated.

IssuedTokenOverTransportIssuedTokenOverTransport

In questa modalità di autenticazione il client, anziché autenticarsi presso il servizio, si autentica presso un servizio token di sicurezza e riceve un token SAML che poi presenta al server per dimostrare la conoscenza di una chiave condivisa.With this authentication mode, the client does not authenticate to the service, as such; instead, the client authenticates to a security token service and receives a SAML token, which it then presents to the server to prove its knowledge of a shared key. Il token emesso viene considerato a livello SOAP come un token di supporto di verifica dell'autenticità o un token che firma la firma del messaggio.The issued token appears at the SOAP layer as either an endorsing supporting token or a bearer token; that is, a token that signs the message signature. Il servizio viene autenticato tramite un certificato X.509 a livello di trasporto.The service is authenticated using an X.509 certificate at the transport layer. L'elemento di associazione di sicurezza è un elemento TransportSecurityBindingElement restituito dal metodo CreateIssuedTokenOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateIssuedTokenOverTransportBindingElement method. In alternativa, impostare l'attributo authenticationMode su IssuedTokenOverTransport.Alternatively, set the authenticationMode attribute to IssuedTokenOverTransport.

KerberosKerberos

In questa modalità di autenticazione il client viene autenticato presso il servizio mediante un ticket Kerberos.With this authentication mode, the client authenticates to the service using a Kerberos ticket. Questo stesso ticket viene inoltre usato per autenticare il server.That same ticket also provides server authentication. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateKerberosBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateKerberosBindingElement method. In alternativa, impostare l'attributo authenticationMode su Kerberos.Alternatively, set the authenticationMode attribute to Kerberos.

Nota

Per utilizzare questa modalità di autenticazione, l'account del servizio deve essere associato a un nome dell'entità servizio (SPN).In order to use this authentication mode, the service account must be associated with a service principal name (SPN). A tale scopo, eseguire il servizio sotto l'account Servizio di rete o sotto l'account di sistema locale.To do this, run the service under the NETWORK SERVICE account or the LOCAL SYSTEM account. In alternativa, utilizzare lo strumento SetSpn.exe per creare un SPN per l'account del servizio.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. In entrambi i casi, il client deve utilizzare il SPN corretto nel <servicePrincipalName > elemento, o tramite il EndpointAddress costruttore.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Per ulteriori informazioni, vedere autenticazione e identità del servizio.For more information, see Service Identity and Authentication.

Nota

Quando si utilizza la modalità di autenticazione Kerberos, i livelli di rappresentazione Anonymous e Delegation non sono supportati.When the Kerberos authentication mode is used, the Anonymous and Delegation impersonation levels are not supported.

KerberosOverTransportKerberosOverTransport

In questa modalità di autenticazione il client viene autenticato presso il servizio mediante un ticket Kerberos.With this authentication mode, the client authenticates to the service using a Kerberos ticket. Il token Kerberos viene considerato a livello SOAP come un token di supporto di verifica dell'autenticità, ovvero un token che firma la firma del messaggio.The Kerberos token appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Il servizio viene autenticato tramite un certificato X.509 a livello di trasporto.The service is authenticated using an X.509 certificate at the transport layer. L'elemento di associazione di sicurezza è un elemento TransportSecurityBindingElement restituito dal metodo CreateKerberosOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateKerberosOverTransportBindingElement method. In alternativa, impostare l'attributo authenticationMode su KerberosOverTransport.Alternatively, set the authenticationMode attribute to KerberosOverTransport.

Nota

Per utilizzare questa modalità di autenticazione, l'account del servizio deve essere associato a un SPN.In order to use this authentication mode, the service account must be associated with an SPN. A tale scopo, eseguire il servizio sotto l'account Servizio di rete o sotto l'account di sistema locale.To do this, run the service under the NETWORK SERVICE account or the LOCAL SYSTEM account. In alternativa, utilizzare lo strumento SetSpn.exe per creare un SPN per l'account del servizio.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. In entrambi i casi, il client deve utilizzare il SPN corretto nel <servicePrincipalName > elemento, o tramite il EndpointAddress costruttore.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Per ulteriori informazioni, vedere autenticazione e identità del servizio.For more information, see Service Identity and Authentication.

MutualCertificateMutualCertificate

In questa modalità di autenticazione il client viene autenticato mediante un certificato X.509 che a livello SOAP viene considerato come un token di supporto di verifica dell'autenticità, ovvero un token che firma la firma del messaggio.With this authentication mode, the client authenticates using an X.509 certificate that appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Anche il servizio viene autenticato tramite l'uso di un certificato X.509The service is also authenticated using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateMutualCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateMutualCertificateBindingElement method. In alternativa, impostare l'attributo authenticationMode su MutualCertificate.Alternatively, set the authenticationMode attribute to MutualCertificate.

MutualCertificateDuplexMutualCertificateDuplex

In questa modalità di autenticazione il client viene autenticato mediante un certificato X.509 che a livello SOAP viene considerato come un token di supporto di verifica dell'autenticità, ovvero un token che firma la firma del messaggio.With this authentication mode, the client authenticates using an X.509 certificate that appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Anche il servizio viene autenticato tramite l'uso di un certificato X.509The service is also authenticated using an X.509 certificate. L'associazione è un elemento AsymmetricSecurityBindingElement restituito dal metodo CreateMutualCertificateDuplexBindingElement.The binding is a AsymmetricSecurityBindingElement returned by the CreateMutualCertificateDuplexBindingElement method. In alternativa, impostare l'attributo authenticationMode su MutualCertificateDuplex.Alternatively, set the authenticationMode attribute to MutualCertificateDuplex.

MutualSslNegotiationMutalSslNegotiation

In questa modalità l'autenticazione del client e del servizio si basa sull'utilizzo di certificati X.509.With this authentication mode, the client and the service authenticate using X.509 certificates. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateSslNegotiationBindingElement quando viene passato un valore true per il primo parametro.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSslNegotiationBindingElement method when a value of true is passed for the first parameter. In alternativa, impostare l'attributo authenticationMode su MutualSslNegotiated.Alternatively, set the authenticationMode attribute to MutualSslNegotiated.

SecureConversationSecureConversation

L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateSecureConversationBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSecureConversationBindingElement method. Questo metodo considera un elemento SecurityBindingElement come parametro, che viene utilizzato durante l'inizializzazione per stabilire la sessione protetta.This method takes a SecurityBindingElement as a parameter, which is used during initialization to establish the secure session. In alternativa, impostare l'attributo authenticationMode su SecureConversation.Alternatively, set the authenticationMode attribute to SecureConversation.

Se non è specificata nessuna associazione del bootstrap, per il bootstratp viene utilizzata la modalità di autenticazione SspiNegotiated.If no bootstrap binding is specified, then the SspiNegotiated authentication mode is used for bootstrap.

SspiNegotiationSspiNegotiation

Questa modalità di autenticazione prevede l'utilizzo di un protocollo di negoziazione per eseguire l'autenticazione di client e server.With this authentication mode, a negotiation protocol is used to perform client and server authentication. Se possibile, viene utilizzato il protocollo Kerberos. In caso contrario viene utilizzato il protocollo NT LanMan (NTLM).Kerberos is used if possible; otherwise, NT LanMan (NTLM) is used. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateSspiNegotiationBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSspiNegotiationBindingElement method. In alternativa, impostare l'attributo authenticationMode su SspiNegotiated.Alternatively, set the authenticationMode attribute to SspiNegotiated.

SspiNegotiatedOverTransportSspiNegotiatedOverTransport

Questa modalità di autenticazione prevede l'utilizzo di un protocollo di negoziazione per eseguire l'autenticazione di client e server.With this authentication mode, a negotiation protocol is used to perform client and server authentication. Se possibile, viene utilizzato il protocollo Kerberos. In caso contrario, viene utilizzato il protocollo NTLM.Kerberos protocol is used if possible; otherwise, NTLM is used. Il token risultante viene considerato a livello SOAP come un token di supporto di verifica dell'autenticità, ovvero un token che firma la firma del messaggio.The resulting token appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Il servizio viene autenticato ulteriormente a livello di trasporto tramite un certificato X.509.The service is additionally authenticated at the transport layer by an X.509 certificate. L'elemento di associazione di sicurezza è un elemento TransportSecurityBindingElement restituito dal metodo CreateSspiNegotiationOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateSspiNegotiationOverTransportBindingElement method. In alternativa, impostare l'attributo authenticationMode su SspiNegotiatedOverTransport.Alternatively, set the authenticationMode attribute to SspiNegotiatedOverTransport.

UserNameForCertificateUserNameForCertificate

In questa modalità di autenticazione il client viene autenticato presso il servizio mediante un token nome utente che a livello SOAP viene considerato come un token di supporto firmato, ovvero un token firmato dalla firma del messaggio.With this authentication mode, the client authenticates to the service using a Username Token that appears at the SOAP layer as a signed supporting token; that is, a token that is signed by the message signature. Il client autentica il servizio tramite un certificato X.509.The service authenticates to the client using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateUserNameForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateUserNameForCertificateBindingElement method. In alternativa, impostare l'attributo authenticationMode su UserNameForCertificate.Alternatively, set the authenticationMode attribute to UserNameForCertificate.

Per la modalità di autenticazione UserNameForCertificate, il client e il servizio devono entrambi utilizzare WS-Security 1.1.For the UserNameForCertificate authentication mode, both the client and service must be using WS-Security 1.1.

UserNameForSslNegotiatedUserNameForSslNegotiated

In questa modalità di autenticazione il client viene autenticato mediante un token nome utente che a livello SOAP viene considerato come un token di supporto firmato, ovvero un token firmato dalla firma del messaggio.With this authentication mode, the client is authenticates using a Username Token which appears at the SOAP layer as a signed supporting token; that is, a token that is signed by the message signature. Il servizio viene autenticato tramite l'uso di un certificato X.509.The service is authenticated using an X.509 certificate. L'elemento di associazione di sicurezza è un elemento SymmetricSecurityBindingElement restituito dal metodo CreateUserNameForSslBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateUserNameForSslBindingElement method. In alternativa, impostare l'attributo authenticationMode su UserNameForSslNegotiated.Alternatively, set the authenticationMode attribute to UserNameForSslNegotiated.

UserNameOverTransportUserNameOverTransport

In questa modalità di autenticazione il client viene autenticato mediante un token nome utente che a livello SOAP viene considerato come un token di supporto firmato, ovvero un token firmato dalla firma del messaggio.With this authentication mode, the client authenticates using a Username Token that appears at the SOAP layer as a signed supporting token; that is, a token that is signed by the message signature. Il servizio viene autenticato tramite un certificato X.509 a livello di trasporto.The service is authenticated using an X.509 certificate at the transport layer. L'elemento di associazione di sicurezza è un elemento TransportSecurityBindingElement restituito dal metodo CreateUserNameOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateUserNameOverTransportBindingElement method. In alternativa, impostare l'attributo authenticationMode su UserNameOverTransport.Alternatively, set the authenticationMode attribute to UserNameOverTransport.

Vedere ancheSee Also

SecurityBindingElement
Procedura: Creare un elemento SecurityBindingElement per una modalità di autenticazione specificataHow to: Create a SecurityBindingElement for a Specified Authentication Mode