Bindungen und SicherheitBindings and Security

Die vom System bereitgestellte Bindungen mit Windows Communication Foundation (WCF) bieten eine schnelle Möglichkeit zum Programmieren von WCF-Anwendungen.The system-provided bindings included with Windows Communication Foundation (WCF) offer a quick way to program WCF applications. Mit einer Ausnahme haben alle Bindungen ein standardmäßig aktiviertes Sicherheitsschema.With one exception, all the bindings have a default security scheme enabled. Dieses Thema hilft Ihnen, die richtige Bindung für die benötigte Sicherheit auszuwählen.This topic helps you select the right binding for your security needs.

Einen Überblick über WCF-Sicherheit finden Sie unter Sicherheitsübersicht.For an overview of WCF security, see Security Overview. Weitere Informationen zum Verwenden von Bindungen, WCF-Programmierung finden Sie unter Programmieren der WCF-Sicherheit.For more information about programming WCF using bindings, see Programming WCF Security.

Wenn Sie bereits eine Bindung ausgewählt haben, finden Sie weitere Informationen über das Laufzeitverhalten, die unter Berücksichtigung von Sicherheitsaspekten einhergehen Sicherheitsverhalten.If you have already selected a binding, you can find out more about the run-time behaviors that are associated with security in Security Behaviors.

Einige Sicherheitsfunktionen sind mit den vom System bereitgestellten Bindungen nicht programmierbar.Some security functions are not programmable using the system-provided bindings. Mehr Kontrolle über eine benutzerdefinierte Bindung, finden Sie unter Sicherheitsfunktionen mit benutzerdefinierten Bindungen.For more control using a custom binding, see Security Capabilities with Custom Bindings.

Sicherheitsfunktionen von BindungenSecurity Functions of Bindings

WCF umfasst eine Reihe von vom System bereitgestellte Bindungen, die meisten Bedürfnisse erfüllen.WCF includes a number of system-provided bindings that meet most needs. Wenn eine bestimmte Bindung nicht ausreicht, können Sie auch eine benutzerdefinierte Bindung erstellen.If a particular binding does not suffice, you can also create a custom binding. Eine Liste der vom System bereitgestellte Bindungen, finden Sie unter sicherheitsbindungsarten Bindungen.For a list of system-provided bindings, see System-Provided Bindings. Weitere Informationen über benutzerdefinierte Bindungen finden Sie unter benutzerdefinierte Bindungen.For more information about custom bindings, see Custom Bindings.

Jede Bindung in WCF verfügt über zwei Formen: als API- und als XML-Element in einer Konfigurationsdatei verwendet.Every binding in WCF has two forms: as an API and as an XML element used in a configuration file. Z. B. die WSHttpBinding (API) hat eine Entsprechung den <WsHttpBinding >.For example, the WSHttpBinding (API) has a counterpart in the <wsHttpBinding>.

Der folgende Abschnitt führt beide Formen einer Bindung auf und fasst die Sicherheitsfunktionen zusammen.The following section lists both forms for each binding and summarizes the security features.

BasicHttpBasicHttp

Verwenden Sie im Code die BasicHttpBinding -Klasse; verwenden Sie in der Konfiguration der <BasicHttpBinding >.In code, use the BasicHttpBinding class; in configuration, use the <basicHttpBinding>.

Diese Bindung ist für die Verwendung mit vielen verschiedenen vorhandenen Technologien vorgesehen, u. a. mit:This binding is designed for use with a range of existing technologies, including the following:

  • ASP.NET-Webdienste (ASMX), Version 1.ASP.NET Web services (ASMX), version 1.

  • Webdienststeigerungen (WSE)-Anwendungen.Web Service Enhancements (WSE) applications.

  • Basic Profile gemäß Definition in Web Services Interoperability (WS-I) Spezifikation (http://go.microsoft.com/fwlink/?LinkId=38955).Basic Profile as defined in the Web Services Interoperability (WS-I) specification (http://go.microsoft.com/fwlink/?LinkId=38955).

  • Standardsicherheitsprofil gemäß der Definition in WS-I.Basic security profile as defined in WS-I.

Standardmäßig ist diese Bindung nicht sicher.By default, this binding is not secure. Sie ist darauf ausgelegt, mit ASMX-Diensten zusammenzuarbeiten.It is designed to interoperate with ASMX services. Wenn die Sicherheit aktiviert ist, ist die Bindung für eine nahtlose Interoperabilität mit Internet Information Services (IIS)-Sicherheitsmechanismen ausgelegt, z. B. Standardauthentifizierung, Digest und integrierte Windows-Sicherheit.When security is enabled, the binding is designed for seamless interoperation with Internet Information Services (IIS) security mechanisms, such as basic authentication, digest, and integrated Windows security. Weitere Informationen finden Sie unter Transport Sicherheitsübersicht.For more information, see Transport Security Overview. Diese Bindung unterstützt Folgendes:This binding supports the following:

  • HTTPS-Transportsicherheit.HTTPS transport security.

  • HTTP-StandardauthentifizierungHTTP basic authentication.

  • WS-Sicherheit.WS-Security.

Weitere Informationen finden Sie unter BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType und BasicHttpSecurityMode.For more information, see BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType, and BasicHttpSecurityMode.

WSHttpBindingWSHttpBinding

Verwenden Sie im Code die WSHttpBinding -Klasse; verwenden Sie in der Konfiguration der <WsHttpBinding >.In code, use the WSHttpBinding class; in configuration, use the <wsHttpBinding>.

Standardmäßig implementiert diese Bindung die WS-Sicherheitsspezifikation und bietet Interoperabilität mit Diensten, die die WS-*-Spezifikationen implementieren.By default, this binding implements the WS-Security specification and provides interoperability with services that implement the WS-* specifications. Sie unterstützt Folgendes:It supports the following:

  • HTTPS-Transportsicherheit.HTTPS transport security.

  • WS-Sicherheit.WS-Security.

  • HTTPS-Transportschutz mit SOAP-Nachrichten-Anmeldeinformationen-Sicherheit zur Authentifizierung des Anrufers.HTTPS transport protection with SOAP message credential security for authenticating the caller.

Weitere Informationen finden Sie unter WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialType, und HttpProxyCredentialType.For more information, see WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialType, and HttpProxyCredentialType.

WSDualHttpBindingWSDualHttpBinding

Verwenden Sie im Code die WSDualHttpBinding -Klasse; verwenden Sie in der Konfiguration der <WsDualHttpBinding >.In code, use the WSDualHttpBinding class; in configuration, use the <wsDualHttpBinding>.

Diese Bindung wird entworfen, um Duplexdienstanwendungen zu aktivieren.This binding is designed to enable duplex service applications. Diese Bindung implementiert die WS-Sicherheitsspezifikation für nachrichtenbasierte Übertragungssicherheit.This binding implements the WS-Security specification for message-based transfer security. Transportsicherheit ist nicht verfügbar.Transport security is not available. Standardmäßig gibt es die folgenden Funktionen:By default, it provides the following features:

  • Implementiert WS-Reliable Messaging für Zuverlässigkeit.Implements WS-Reliable Messaging for reliability.

  • Implementiert WS-Sicherheit für die Übertragungssicherheit und zur Authentifizierung.Implements WS-Security for transfer security and authentication.

  • Verwendet HTTP zur Nachrichtenübermittlung.Uses HTTP for message delivery.

  • Verwendet Text/XML-Nachrichtencodierung.Uses text/XML message encoding.

Beim Verwenden von WS-Sicherheit (Nachrichtenebenen-Sicherheit) ermöglicht die Bindung die Konfiguration der folgenden Parameter:Using WS-Security (message-layer security), the binding allows you to configure the following parameters:

  • der Sicherheitsalgorithmus-Suite, um den Kryptografiesatz zu bestimmen.The security algorithm suite to determine the cryptographic algorithm.

  • Bindungsoptionen für Folgendes:Binding options for the following:

    • die Bereitstellung von Dienstanmeldeinformationen, die beim Client Out-of-Band verfügbar sind.Providing service credentials available out-of-band at the client.

    • die Bereitstellung von vom Dienst als Teil des Kanal-Setups ausgehandelten Dienstanmeldeinformationen.Providing service credentials negotiated from the service as part of channel setup.

Weitere Informationen finden Sie unter WSDualHttpSecurity und WSDualHttpSecurityMode.For more information, see WSDualHttpSecurity and WSDualHttpSecurityMode.

NetTcpBindingNetTcpBinding

Verwenden Sie im Code die NetTcpBinding -Klasse; verwenden Sie in der Konfiguration der <NetTcpBinding >.In code, use the NetTcpBinding class; in configuration, use the <netTcpBinding>.

Diese Bindung ist für die computerübergreifende Kommunikation optimiert.This binding is optimized for cross-machine communication. Standardmäßig besitzt sie folgende Eigenschaften:By default, it has the following characteristics:

  • Implementiert Transport Layer Security.Implements transport-layer security.

  • Setzt Windows-Sicherheit für die Übertragungssicherheit und zur Authentifizierung ein.Leverages Windows security for transfer security and authentication.

  • Verwendet TCP für Transport.Uses TCP for transport.

  • Implementiert binäre Nachrichtencodierung.Implements binary message encoding.

  • Implementiert WS-Reliable Messaging.Implements WS-Reliable Messaging.

Es gibt folgende Optionen:Options include the following:

  • Nachrichtenebenen-Sicherheit (über WS-Sicherheit).Message-layer security (using WS-Security).

  • Transportsicherheit mit Nachrichtenanmeldeinformationen: Vertraulichkeit und Integrität werden über Transport Layer Security (TLS) über TCP geboten und die Anmeldeinformationen für die Authentifizierung über WS-Sicherheit.Transport security with message credential—confidentiality and integrity provided by Transport Layer Security (TLS) over TCP, and credentials for authorization provided by WS-Security.

Weitere Informationen finden Sie unter NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp, und MessageCredentialType.For more information, see NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp, and MessageCredentialType.

NetNamedPipeBindingNetNamedPipeBinding

Verwenden Sie im Code die NetNamedPipeBinding -Klasse; verwenden Sie in der Konfiguration der <NetNamedPipeBinding >.In code, use the NetNamedPipeBinding class; in configuration, use the <netNamedPipeBinding>.

Diese Bindung ist für prozessübergreifende Kommunikation (normalerweise auf dem gleichen Computer) optimiert.This binding is optimized for cross-process communication (usually on the same machine). Standardmäßig besitzt diese Bindung folgende Eigenschaften:By default, this binding has the following characteristics:

  • Verwendet Transportsicherheit für die Nachrichtenübertragung und zur Authentifizierung.Uses transport security for message transfer and authentication.

  • Verwendet Named Pipes zur Nachrichtenübermittlung.Uses named pipes for message delivery.

  • Implementiert binäre Nachrichtencodierung.Implements binary message encoding.

  • Verschlüsselung und Nachrichtensignierung.Encryption and message signing.

Es gibt folgende Optionen:Options include the following:

  • Authentifizierung über Windows-Sicherheit.Authentication using Windows security.

Weitere Informationen finden Sie unter NetNamedPipeSecurity, NetNamedPipeSecurityMode und NamedPipeTransportSecurity.For more information, see NetNamedPipeSecurity, NetNamedPipeSecurityMode, and NamedPipeTransportSecurity.

MsmqIntegrationBindingMsmqIntegrationBinding

Verwenden Sie im Code die MsmqIntegrationBinding -Klasse; verwenden Sie in der Konfiguration der <MsmqIntegrationBinding >.In code, use the MsmqIntegrationBinding class; in configuration, use the <msmqIntegrationBinding>.

Diese Bindung ist für das Erstellen von WCF-Clients und Dienste, die Zusammenwirken mit nicht - WCF MSMQ Microsoft Message Queuing-Endpunkten optimiert.This binding is optimized for creating WCF clients and services that interoperate with non-WCF Microsoft Message Queuing (MSMQ) endpoints.

Standardmäßig verwendet diese Bindung Transportsicherheit und stellt die folgenden Sicherheitseigenschaften bereit:By default, this binding uses transport security and provides the following security characteristics:

  • Sicherheit kann deaktiviert werden (Keine).Security can be disabled (None).

  • MSMQ-Transportsicherheit (Transport).MSMQ transport security (Transport).

Weitere Informationen finden Sie unter NetMsmqSecurity und NetMsmqSecurityMode.For more information, see NetMsmqSecurity and NetMsmqSecurityMode.

NetMsmqBindingNetMsmqBinding

Verwenden Sie im Code die NetMsmqBinding -Klasse; verwenden Sie in der Konfiguration der <NetMsmqBinding >.In code, use the NetMsmqBinding class; in configuration, use the <netMsmqBinding>.

Diese Bindung ist für die Verwendung vorgesehen, wenn WCF-Dienste,, MSMQ erfordern, Message-Support in die Warteschlange eingereiht.This binding is intended for use when creating WCF services that require MSMQ queued message support.

Standardmäßig verwendet diese Bindung Transportsicherheit und stellt die folgenden Sicherheitseigenschaften bereit:By default, this binding uses transport security and provides the following security characteristics:

  • Sicherheit kann deaktiviert werden (Keine).Security can be disabled (None).

  • MSMQ-Transportsicherheit (Transport).MSMQ transport security (Transport).

  • SOAP-basierte Nachrichtensicherheit (Nachricht).SOAP-based message security (Message).

  • Gleichzeitige Transport- und Nachrichtensicherheit (Beides).Simultaneous Transport and Message security (Both).

  • Unterstützte Typen von Clientanmeldeinformationen: Keine, Windows, UserName, Zertifikat, IssuedToken.Client Credential Types supported: None, Windows, UserName, Certificate, IssuedToken.

Die Certificate-Anmeldeinformationen werden nur unterstützt, wenn der Sicherheitsmodus entweder auf Both oder auf Message festgelegt ist.The Certificate credential is supported only when the security mode is set to either Both or Message.

Weitere Informationen finden Sie unter MessageSecurityOverMsmq und MsmqTransportSecurity.For more information, see MessageSecurityOverMsmq and MsmqTransportSecurity.

WSFederationHttpBindingWSFederationHttpBinding

Verwenden Sie im Code die WSFederationHttpBinding -Klasse; verwenden Sie in der Konfiguration der <WsFederationHttpBinding >.In code, use the WSFederationHttpBinding class; in configuration, use the <wsFederationHttpBinding>.

Standardmäßig verwendet diese Bindung WS-Sicherheit (Nachrichtenebenen-Sicherheit).By default, this binding uses WS-Security (message-layer security).

Weitere Informationen finden Sie unter Verbund, WSFederationHttpSecurity, und WSFederationHttpSecurityMode.For more information, see Federation, WSFederationHttpSecurity, and WSFederationHttpSecurityMode.

Benutzerdefinierte BindungenCustom Bindings

Wenn keine der vom System bereitgestellten Bindungen Ihre Anforderungen erfüllt, können Sie eine benutzerdefinierte Bindung mit einem benutzerdefinierten Sicherheitsbindungselement erstellen.If none of the system-provided bindings meets you requirements, you can create a custom binding with a custom security binding element. Weitere Informationen finden Sie unter Sicherheitsfunktionen mit benutzerdefinierten Bindungen.For more information, see Security Capabilities with Custom Bindings.

BindungsmöglichkeitenBinding Choices

In der folgenden Tabelle werden die Funktionen aufgeführt, die in der Sicherheitsmoduseinstellung geboten werden, d. h. die Funktionen werden aufgeführt, die bei Festlegung des Sicherheitsmodus auf Transport, Message oder TransportWithMessageCredential verfügbar sind.The following table summarizes the features offered in the security mode setting, that is, it lists the features available when the security mode is set to Transport, Message, or TransportWithMessageCredential. Verwenden Sie diese Tabelle, um die Sicherheitsfunktionen zu finden, die von der Anwendung benötigt werden.Use this table to help you find the security features your application requires.

EinstellungSetting FeaturesFeatures
TransportTransport ServerauthentifizierungServer authentication

ClientauthentifizierungClient authentication

Point-to-Point-SicherheitPoint-to-point security

InteroperabilitätInteroperability

Hardwarebeschleunigung.Hardware acceleration

Hoher DurchsatzHigh throughput

Sichere FirewallSecure firewall

Hohe-Wartezeit-AnwendungenHigh-latency applications

Wiederverschlüsselung über mehrere HopsRe-encryption across multiple hops
MeldungMessage ServerauthentifizierungServer authentication

ClientauthentifizierungClient authentication

End-to-End-SicherheitEnd-to-end security

InteroperabilitätInteroperability

Rich ClaimsRich claims

VerbundFederation

Mehrfaktoren-AuthentifizierungMultifactor authentication

Benutzerdefinierte TokenCustom tokens

Notar-/TimestampdienstNotary/timestamp service

Hohe-Wartezeit-AnwendungenHigh-latency applications

Beständigkeit von NachrichtensignaturenPersistence of message signatures
TransportWithMessageCredentialTransportWithMessageCredential ServerauthentifizierungServer authentication

ClientauthentifizierungClient authentication

Point-to-Point-SicherheitPoint-to-point security

InteroperabilitätInteroperability

Hardwarebeschleunigung.Hardware acceleration

Hoher DurchsatzHigh throughput

Rich Client-ClaimsRich client claims

VerbundFederation

Mehrfaktoren-AuthentifizierungMultifactor authentication

Benutzerdefinierte TokenCustom tokens

Sichere FirewallSecure firewall

Hohe-Wartezeit-AnwendungenHigh-latency applications

Wiederverschlüsselung über mehrere HopsRe-encryption across multiple hops

In der folgenden Tabelle werden die Bindungen, die die verschiedenen Moduseinstellungen unterstützen, aufgeführt.The following table lists the bindings that support the various mode settings. Wählen Sie eine Bindung aus der Tabelle aus, die verwendet werden soll, um den Dienstendpunkt zu erstellen.Select a binding from the table to use to create your service endpoint.

BindungBinding Transportmodus-SupportTransport mode support Nachrichtenmodus-SupportMessage mode support TransportWithMessageCredential-UnterstützungTransportWithMessageCredential support
BasicHttpBinding JaYes JaYes JaYes
WSHttpBinding JaYes JaYes JaYes
WSDualHttpBinding NeinNo JaYes NeinNo
NetTcpBinding JaYes JaYes JaYes
NetNamedPipeBinding JaYes NeinNo NeinNo
NetMsmqBinding JaYes JaYes NeinNo
MsmqIntegrationBinding JaYes NeinNo NeinNo
wsFederationHttpBinding NeinNo JaYes JaYes

Transportieren von Anmeldeinformationen in BindungenTransport Credentials in Bindings

In der folgenden Tabelle werden die Typen von Clientanmeldeinformationen aufgeführt, die bei der Nutzung von BasicHttpBinding oder WSHttpBinding im Transportsicherheitsmodus zur Verfügung stehen.The following table lists the client credential types available when using either BasicHttpBinding or WSHttpBinding in transport security mode.

TypType BeschreibungDescription
KeineNone Gibt an, dass der Client keine Anmeldeinformationen präsentieren muss.Specifies that the client does not need to present any credential. Dies führt zur Verwendung eines anonymen Clients.This translates to an anonymous client.
StandardBasic Standardauthentifizierung.Basic authentication. Weitere Informationen finden Sie unter RFC 2617 – HTTP Authentication: Basic and Digest Authentication, verfügbar unter http://go.microsoft.com/fwlink/?LinkId=84023 .For more information, see RFC 2617 – HTTP Authentication: Basic and Digest Authentication, available at http://go.microsoft.com/fwlink/?LinkId=84023.
DigestDigest Hashwertauthentifizierung.Digest authentication. Weitere Informationen finden Sie unter RFC 2617 – HTTP Authentication: Basic and Digest Authentication, verfügbar unter http://go.microsoft.com/fwlink/?LinkId=84023 .For more information, see RFC 2617 – HTTP Authentication: Basic and Digest Authentication, available at http://go.microsoft.com/fwlink/?LinkId=84023.
NTLMNTLM NT-LAN-Manager (NTLM)-Authentifizierung.NT LAN Manager (NTLM) authentication.
WindowsWindows Windows-Authentifizierung.Windows authentication.
ZertifikatCertificate Die Authentifizierung fand über ein Zertifikat statt.Authentication performed using a certificate.
IssuedTokenIssuedToken Ermöglicht dem Dienst die Forderung, dass der Client über ein Token, das von einem Sicherheitstokendienst oder von CardSpaceCardSpace ausgestellt wurde, authentifiziert werden muss.Allows the service to require that the client be authenticated using a token issued by a security token service or by CardSpaceCardSpace. Weitere Informationen finden Sie unter Verbund und ausgestellte Token.For more information, see Federation and Issued Tokens.

Clientanmeldeinformationen für Nachrichten in BindungenMessage Client Credentials in Bindings

In der folgenden Tabelle werden die Typen von Clientanmeldeinformationen aufgeführt, die bei der Nutzung einer Bindung im Nachrichtensicherheitsmodus zur Verfügung stehen.The following table lists the client credential types available when using a binding in Message security mode.

TypType BeschreibungDescription
KeinerNone Ermöglicht dem Dienst die Interaktion mit anonymen Clients.Allows the service to interact with anonymous clients.
WindowsWindows Ermöglicht SOAP-Nachrichtenaustausch im Rahmen des authentifizierten Kontexts von Windows-Anmeldeinformationen.Allows SOAP message exchanges to be made under the authenticated context of a Windows credential.
UserNameUserName Ermöglicht dem Dienst die Forderung an den Client, sich über eine Benutzernamen-Anmeldeinformation zu authentifizieren.Allows the service to require that the client be authenticated using a user name credential. Beachten Sie, dass, wenn der Sicherheitsmodus, um festgelegt ist TransportWithMessageCredential, Senden eines kennworthashwerts oder die Ableitung von Schlüsseln mit Kennwörtern sowie die Verwendung solcher Schlüssel für den nachrichtensicherheitsmodus von WCF nicht unterstützt.Note that when the security mode is set to TransportWithMessageCredential, WCF does not support sending a password digest or deriving keys using password and using such keys for Message mode security. Daher erzwingt WCF an, dass der Transport geschützt wird, wenn Benutzernamen-Anmeldeinformationen verwenden.As such, WCF enforces that the transport is secured when using user name credentials.
ZertifikatCertificate Ermöglicht dem Dienst, die Forderung zu stellen, dass der Client über ein Zertifikat authentifiziert werden muss.Allows the service to require that the client be authenticated using a certificate.
IssuedTokenIssuedToken Ermöglicht es dem Dienst, einen Sicherheitstokendienst zu verwenden, um ein benutzerdefiniertes Token zu liefern.Allows the service to use a security token service to supply a custom token.

Siehe auchSee Also

Übersicht über die SicherheitSecurity Overview
Sichern von Diensten und ClientsSecuring Services and Clients
Ausählen eines AnmeldeinformationentypsSelecting a Credential Type
Sicherheitsfunktionen mit benutzerdefinierten BindungenSecurity Capabilities with Custom Bindings
SicherheitsverhaltenSecurity Behaviors
Sicherheitsmodell für Windows Server AppFabricSecurity Model for Windows Server App Fabric