SecurityBindingElement-AuthentifizierungsmodiSecurityBindingElement Authentication Modes

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) stellt verschiedene Modi bereit, mit denen sich Clients und Dienste gegenseitig authentifizieren. provides several modes by which clients and services authenticate to one another. Sie können Sicherheitsbindungselemente für diese Authentifizierungsmodi erstellen. Dazu verwenden Sie statische Methoden für die SecurityBindingElement-Klasse oder führen eine entsprechende Konfiguration durch.You can create security binding elements for these authentication modes by using static methods on the SecurityBindingElement class or through configuration. In diesem Thema werden die 18 Authentifizierungsmodi kurz beschrieben.This topic briefly describes the 18 authentication modes.

Ein Beispiel der Verwendung des Elements für eine der Authentifizierungsmodi finden Sie unter Vorgehensweise: Erstellen eines SecurityBindingElement für einen angegebenen Authentifizierungsmodus.For an example of using the element for one of the authentication modes, see How to: Create a SecurityBindingElement for a Specified Authentication Mode.

Programmgesteuerte KonfigurationBasic Configuration Programming

Im folgenden Verfahren wird beschrieben, wie der Authentifizierungsmodus in einer Konfigurationsdatei festgelegt wird.The following procedure describes how to set the authentication mode in a configuration file.

So legen Sie den Authentifizierungsmodus in der Konfiguration festTo set the authentication mode in configuration

  1. Um die <Bindungen > Element, Hinzufügen einer <CustomBinding >.To the <bindings> element, add a <customBinding>.

  2. Als ein untergeordnetes Element: Hinzufügen einer <Bindung > Element der <customBinding> Element.As a child element, add a <binding> element to the <customBinding> element.

  3. Fügen Sie dem <security>-Element ein <binding>-Element hinzu.Add a <security> element to the <binding> element.

  4. Legen Sie das authenticationMode-Attribut auf einen der unten beschriebenen Werte fest.Set the authenticationMode attribute to one of the values described below. Im folgenden Codebeispiel wird der Modus auf AnonymousForCertificate festgelegt.For example, the following code sets the mode to AnonymousForCertificate.

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

So legen Sie den Modus programmgesteuert festTo set the mode programmatically

  1. Beim Rückgabetyp kann es sich um einen der folgenden handeln: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement oder SecurityBindingElement.Determine the return type, which can be one of the following: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, or SecurityBindingElement.

  2. Rufen Sie die entsprechende statische Methode der SecurityBindingElement-Klasse auf.Call the appropriate static method of the SecurityBindingElement class. Im folgenden Codebeispiel wird die CreateAnonymousForCertificateBindingElement-Methode aufgerufen.For example, the following code calls the CreateAnonymousForCertificateBindingElement method.

    SymmetricSecurityBindingElement b =
        SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement();
    
    Dim b As SymmetricSecurityBindingElement = _
    SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
    
  3. Verwenden Sie das Bindungselement, um die benutzerdefinierte Bindung zu erstellen.Use the binding element to create the custom binding. Weitere Informationen finden Sie unterFor more information, seeBenutzerdefinierte Bindungen. Custom Bindings.

ModusbeschreibungenMode Descriptions

AnonymousForCertificateAnonymousForCertificate

In diesem Authentifizierungsmodus ist der Client anonym, und der Dienst wird über ein X.509-Zertifikat authentifiziert.With this authentication mode, the client is anonymous and the service is authenticated using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateAnonymousForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateAnonymousForCertificateBindingElement method. Alternativ können Sie Einstellen der authenticationMode Attribut des der <security> Element AnonymousForCertificate.Alternatively, set the authenticationMode attribute of the <security> element to AnonymousForCertificate.

AnonymousForSslNegotiatedAnonymousForSslNegotiated

In diesem Authentifizierungsmodus ist der Client anonym, und der Dienst wird über ein X.509-Zertifikat authentifiziert, das zur Laufzeit verhandelt wird.With this authentication mode, the client is anonymous and the service is authenticated using an X.509 certificate that is negotiated at run time. Das Sicherheitsbindungselement ist ein SymmetricSecurityBindingElement, das von der CreateSslNegotiationBindingElement-Methode zurückgegeben wird, wenn für den ersten Parameter der Wert false übergeben wird.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSslNegotiationBindingElement method when a value of false is passed for the first parameter. Legen Sie das authenticationMode-Attribut alternativ auf AnonymousForSslNegotiated fest.Alternatively, set the authenticationMode attribute to AnonymousForSslNegotiated.

CertificateOverTransportCertificateOverTransport

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein X.509-Zertifikat, das an der SOAP-Schicht als ausstellendes unterstützendes Token angezeigt wird, d. h. ein Token, das die Nachricht signiert.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. Der Dienst wird über ein X.509-Zertifikat auf der Transportschicht authentifiziert.The service is authenticated using an X.509 certificate at the transport layer. Das Sicherheitsbindungselement ist ein von der TransportSecurityBindingElement-Methode zurückgegebenes CreateCertificateOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateCertificateOverTransportBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf CertificateOverTransport fest.Alternatively, set the authenticationMode attribute to CertificateOverTransport.

IssuedTokenIssuedToken

Bei diesem Authentifizierungsmodus wird der Client nicht am Dienst selbst authentifiziert. Er wird stattdessen an einem Sicherheitstokendienst authentifiziert und empfängt ein SAML-Token, das er dem Server als Beleg für den freigegebenen Schlüssel präsentiert.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. Der Dienst wird nicht am Client authentifiziert. Stattdessen verschlüsselt der Sicherheitstokendienst den freigegebenen Schlüssel als Teil des ausgestellten Tokens, sodass nur der Dienst den Schlüssel entschlüsseln kann.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. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateIssuedTokenBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf IssuedToken fest.Alternatively, set the authenticationMode attribute to IssuedToken.

IssuedTokenForCertificateIssuedTokenForCertificate

Bei diesem Authentifizierungsmodus wird der Client nicht am Dienst selbst authentifiziert. Er wird stattdessen an einem Sicherheitstokendienst authentifiziert und empfängt ein SAML-Token, das er dem Server als Beleg für den freigegebenen Schlüssel präsentiert.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. Das ausgegebene Token wird an der SOAP-Schicht als unterstützendes Token bzw. Bearer-Token angezeigt, d. h. als ein Token, das die Nachricht signiert.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. Der Dienst wird über ein X.509-Zertifikat am Client authentifiziert.The service authenticates to the client using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateIssuedTokenForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenForCertificateBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf IssuedTokenForCertificate fest.Alternatively, set the authenticationMode attribute to IssuedTokenForCertificate.

IssuedTokenForSslNegotiatedIssuedTokenForSslNegotiated

Bei diesem Authentifizierungsmodus wird der Client nicht am Dienst selbst authentifiziert. Er wird stattdessen an einem Sicherheitstokendienst authentifiziert und empfängt ein SAML-Token, das er dem Server als Beleg für den freigegebenen Schlüssel präsentiert.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. Das ausgegebene Token wird an der SOAP-Schicht als unterstützendes Token bzw. Bearer-Token angezeigt, d. h. als ein Token, das die Nachricht signiert.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. Der Dienst wird über ein X.509-Zertifikat authentifiziert.The service is authenticated using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateIssuedTokenForSslBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateIssuedTokenForSslBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf IssuedTokenForSslnegotiated fest.Alternatively, set the authenticationMode attribute to IssuedTokenForSslnegotiated.

IssuedTokenOverTransportIssuedTokenOverTransport

Bei diesem Authentifizierungsmodus wird der Client nicht am Dienst selbst authentifiziert. Er wird stattdessen an einem Sicherheitstokendienst authentifiziert und empfängt ein SAML-Token, das er dem Server als Beleg für den freigegebenen Schlüssel präsentiert.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. Das ausgegebene Token wird an der SOAP-Schicht als unterstützendes Token bzw. Bearer-Token angezeigt, d. h. als ein Token, das die Nachricht signiert.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. Der Dienst wird über ein X.509-Zertifikat auf der Transportschicht authentifiziert.The service is authenticated using an X.509 certificate at the transport layer. Das Sicherheitsbindungselement ist ein von der TransportSecurityBindingElement-Methode zurückgegebenes CreateIssuedTokenOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateIssuedTokenOverTransportBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf IssuedTokenOverTransport fest.Alternatively, set the authenticationMode attribute to IssuedTokenOverTransport.

KerberosKerberos

In diesem Authentifizierungsmodus wird der Client über ein Kerberos-Ticket am Dienst authentifiziert.With this authentication mode, the client authenticates to the service using a Kerberos ticket. Dieses gleiche Ticket bietet auch Serverauthentifizierung.That same ticket also provides server authentication. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateKerberosBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateKerberosBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf Kerberos fest.Alternatively, set the authenticationMode attribute to Kerberos.

Hinweis

Um diesen Authentifizierungsmodus zu verwenden, muss dem Dienstkonto ein Dienstprinzipalname zugeordnet sein.In order to use this authentication mode, the service account must be associated with a service principal name (SPN). Führen Sie den Dienst zu diesem Zweck unter dem Konto NETZWERKDIENST oder dem Konto LOKALES SYSTEM aus.To do this, run the service under the NETWORK SERVICE account or the LOCAL SYSTEM account. Verwenden Sie andernfalls das Tool SetSpn.exe, um einen Dienstprinzipalnamen für das Dienstkonto zu erstellen.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. Der Client muss in jedem Fall den korrekten Dienstprinzipalnamen im Verwenden der <ServicePrincipalName > Element, oder indem Sie die EndpointAddress Konstruktor.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Weitere Informationen finden Sie unterFor more information, see-Identität und Authentifizierung. Service Identity and Authentication.

Hinweis

Wenn der Kerberos-Authentifizierungsmodus verwendet wird, werden die Anonymous-Ebene und die Delegation-Ebene des Identitätswechsels nicht unterstützt.When the Kerberos authentication mode is used, the Anonymous and Delegation impersonation levels are not supported.

KerberosOverTransport.KerberosOverTransport

In diesem Authentifizierungsmodus wird der Client über ein Kerberos-Ticket am Dienst authentifiziert.With this authentication mode, the client authenticates to the service using a Kerberos ticket. Das Kerberos-Token wird an der SOAP-Schicht als unterstützendes Token angezeigt, d. h. ein Token, das die Nachricht signiert.The Kerberos token appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Der Dienst wird über ein X.509-Zertifikat auf der Transportschicht authentifiziert.The service is authenticated using an X.509 certificate at the transport layer. Das Sicherheitsbindungselement ist ein von der TransportSecurityBindingElement-Methode zurückgegebenes CreateKerberosOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateKerberosOverTransportBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf KerberosOverTransport fest.Alternatively, set the authenticationMode attribute to KerberosOverTransport.

Hinweis

Um diesen Authentifizierungsmodus zu verwenden, muss dem Dienstkonto ein Dienstprinzipalname zugeordnet sein.In order to use this authentication mode, the service account must be associated with an SPN. Führen Sie den Dienst zu diesem Zweck unter dem Konto NETZWERKDIENST oder dem Konto LOKALES SYSTEM aus.To do this, run the service under the NETWORK SERVICE account or the LOCAL SYSTEM account. Verwenden Sie andernfalls das Tool SetSpn.exe, um einen Dienstprinzipalnamen für das Dienstkonto zu erstellen.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. Der Client muss in jedem Fall den korrekten Dienstprinzipalnamen im Verwenden der <ServicePrincipalName > Element, oder indem Sie die EndpointAddress Konstruktor.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Weitere Informationen finden Sie unterFor more information, see-Identität und Authentifizierung. Service Identity and Authentication.

MutualCertificateMutualCertificate

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein X.509-Zertifikat, das an der SOAP-Schicht als ausstellendes unterstützendes Token angezeigt wird, d. h. ein Token, das die Nachricht signiert.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. Der Dienst wird ebenfalls über ein X.509-Zertifikat authentifiziert.The service is also authenticated using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateMutualCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateMutualCertificateBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf MutualCertificate fest.Alternatively, set the authenticationMode attribute to MutualCertificate.

MutualCertificateDuplexMutualCertificateDuplex

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein X.509-Zertifikat, das an der SOAP-Schicht als ausstellendes unterstützendes Token angezeigt wird, d. h. ein Token, das die Nachricht signiert.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. Der Dienst wird ebenfalls über ein X.509-Zertifikat authentifiziert.The service is also authenticated using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der AsymmetricSecurityBindingElement-Methode zurückgegebenes CreateMutualCertificateDuplexBindingElement.The binding is a AsymmetricSecurityBindingElement returned by the CreateMutualCertificateDuplexBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf MutualCertificateDuplex fest.Alternatively, set the authenticationMode attribute to MutualCertificateDuplex.

MutalSslNegotiationMutalSslNegotiation

In diesem Authentifizierungsmodus werden sowohl der Client als auch der Dienst über X.509-Zertifikate authentifiziert.With this authentication mode, the client and the service authenticate using X.509 certificates. Das Sicherheitsbindungselement ist ein SymmetricSecurityBindingElement, das von der CreateSslNegotiationBindingElement-Methode zurückgegeben wird, wenn für den ersten Parameter der Wert true übergeben wird.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSslNegotiationBindingElement method when a value of true is passed for the first parameter. Legen Sie das authenticationMode-Attribut alternativ auf MutualSslNegotiated fest.Alternatively, set the authenticationMode attribute to MutualSslNegotiated.

SecureConversationSecureConversation

Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateSecureConversationBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSecureConversationBindingElement method. Diese Methode verwendet ein SecurityBindingElement als Parameter, der während der Initialisierung zum Erstellen der sicheren Sitzung verwendet wird.This method takes a SecurityBindingElement as a parameter, which is used during initialization to establish the secure session. Legen Sie das authenticationMode-Attribut alternativ auf SecureConversation fest.Alternatively, set the authenticationMode attribute to SecureConversation.

Falls keine Bootstrapbindung angegeben ist, wird der SspiNegotiated-Authentifizierungsmodus verwendet.If no bootstrap binding is specified, then the SspiNegotiated authentication mode is used for bootstrap.

SspiNegotiationSspiNegotiation

In diesem Authentifizierungsmodus wird ein Aushandlungsprotokoll für die Client- und Serverauthentifizierung verwendet.With this authentication mode, a negotiation protocol is used to perform client and server authentication. Falls möglich, wird Kerberos verwendet, andernfalls NTLM.Kerberos is used if possible; otherwise, NT LanMan (NTLM) is used. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateSspiNegotiationBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateSspiNegotiationBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf SspiNegotiated fest.Alternatively, set the authenticationMode attribute to SspiNegotiated.

SspiNegotiatedOverTransportSspiNegotiatedOverTransport

In diesem Authentifizierungsmodus wird ein Aushandlungsprotokoll für die Client- und Serverauthentifizierung verwendet.With this authentication mode, a negotiation protocol is used to perform client and server authentication. Falls möglich, wird Kerberos verwendet, andernfalls NTLM.Kerberos protocol is used if possible; otherwise, NTLM is used. Das resultierende Token wird an der SOAP-Schicht als unterstützendes Token angezeigt, d. h. ein Token, das die Nachricht signiert.The resulting token appears at the SOAP layer as an endorsing supporting token; that is, a token that signs the message signature. Der Dienst wird zusätzlich auf der Transportschicht über ein X.509-Zertifikat authentifiziert.The service is additionally authenticated at the transport layer by an X.509 certificate. Das Sicherheitsbindungselement ist ein von der TransportSecurityBindingElement-Methode zurückgegebenes CreateSspiNegotiationOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateSspiNegotiationOverTransportBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf SspiNegotiatedOverTransport fest.Alternatively, set the authenticationMode attribute to SspiNegotiatedOverTransport.

UserNameForCertificateUserNameForCertificate

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein Benutzernamentoken, das an der SOAP-Schicht als signiertes unterstützendes Token angezeigt wird. Dieses Token wird von der Nachrichtensignatur signiert.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. Der Dienst wird über ein X.509-Zertifikat am Client authentifiziert.The service authenticates to the client using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateUserNameForCertificateBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateUserNameForCertificateBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf UserNameForCertificate fest.Alternatively, set the authenticationMode attribute to UserNameForCertificate.

Für den UserNameForCertificate-Authentifizierungsmodus müssen sowohl der Client als auch der Dienst WS-Sicherheit 1.1 verwenden.For the UserNameForCertificate authentication mode, both the client and service must be using WS-Security 1.1.

UserNameForSslNegotiatedUserNameForSslNegotiated

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein Benutzernamentoken, das an der SOAP-Schicht als signiertes unterstützendes Token angezeigt wird. Dieses Token wird von der Nachrichtensignatur signiert.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. Der Dienst wird über ein X.509-Zertifikat authentifiziert.The service is authenticated using an X.509 certificate. Das Sicherheitsbindungselement ist ein von der SymmetricSecurityBindingElement-Methode zurückgegebenes CreateUserNameForSslBindingElement.The security binding element is a SymmetricSecurityBindingElement returned by the CreateUserNameForSslBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf UserNameForSslNegotiated fest.Alternatively, set the authenticationMode attribute to UserNameForSslNegotiated.

UserNameOverTransportUserNameOverTransport

In diesem Authentifizierungsmodus authentifiziert sich der Client über ein Benutzernamentoken, das an der SOAP-Schicht als signiertes unterstützendes Token angezeigt wird. Dieses Token wird von der Nachrichtensignatur signiert.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. Der Dienst wird über ein X.509-Zertifikat auf der Transportschicht authentifiziert.The service is authenticated using an X.509 certificate at the transport layer. Das Sicherheitsbindungselement ist ein von der TransportSecurityBindingElement-Methode zurückgegebenes CreateUserNameOverTransportBindingElement.The security binding element is a TransportSecurityBindingElement returned by the CreateUserNameOverTransportBindingElement method. Legen Sie das authenticationMode-Attribut alternativ auf UserNameOverTransport fest.Alternatively, set the authenticationMode attribute to UserNameOverTransport.

Siehe auchSee Also

SecurityBindingElement
Vorgehensweise: Erstellen eines SecurityBindingElement für einen angegebenen AuthentifizierungsmodusHow to: Create a SecurityBindingElement for a Specified Authentication Mode