Sichern von Nachrichten mithilfe der NachrichtensicherheitSecuring Messages Using Message Security

Dieser Abschnitt beschreibt die WCF-nachrichtensicherheit Verwendung NetMsmqBinding.This section discusses WCF message security when using NetMsmqBinding.

Hinweis

In diesem Thema lesen, wird empfohlen, vor dem Lesen Sie Schlüsselbegriffe der Sicherheit.Before reading through this topic, it is recommended that you read Security Concepts.

Die folgende Abbildung zeigt ein konzeptionelles Modell einer warteschlangenkommunikation mithilfe von WCF.The following illustration provides a conceptual model of queued communication using WCF. Anhand dieser Abbildung und der Terminologie werdenThis illustration and terminology are used to explain

die Konzepte der Transportsicherheit erläutert.transport security concepts.

In der Warteschlange AnwendungsdiagrammQueued Application Diagram

Beim Senden von Nachrichten über WCF in die Warteschlange eingereiht, wird die WCF-Nachricht als Text der Nachricht Message Queuing (MSMQ) angefügt.When sending queued messages using WCF, the WCF message is attached as a body of the Message Queuing (MSMQ) message. Mit der Transportsicherheit wird die gesamte MSMQ-Nachricht gesichert, mit der Nachrichtensicherheit (oder SOAP-Sicherheit) hingegen wird nur der Textkörper der MSMQ-Nachricht gesichert.While transport security secures the entire MSMQ message, message (or SOAP) security only secures the body of the MSMQ message.

Das Kernkonzept der Nachrichtensicherheit besteht darin, dass der Client die Nachricht für die empfangende Anwendung (Dienst) sichert. Im Gegensatz dazu sichert der Client bei der Transportsicherheit die Nachricht für die Zielwarteschlange.The key concept of message security is that the client secures the message for the receiving application (service), unlike transport security where the client secures the message for the Target Queue. Folglich spielt MSMQ keine beim Sichern der WCF-Nachricht mit nachrichtensicherheit.As such, MSMQ plays no part when securing the WCF message using message security.

WCF-nachrichtensicherheit hinzugefügt die WCF-Nachricht, die Integration in vorhandene Sicherheitsinfrastrukturen, z. B. ein Zertifikat oder das Kerberos-Protokoll Security-Header.WCF message security adds security headers to the WCF message that integrate with existing security infrastructures, such as a certificate or the Kerberos protocol.

Anmeldeinformationstypen für NachrichtenMessage Credential Type

Bei der Verwendung der Nachrichtensicherheit können der Dienst und der Client Anmeldeinformationen bereitstellen, um sich gegenseitig zu authentifizieren.Using message security, the service and client can present credentials to authenticate each another. Sie können die Nachrichtensicherheit auswählen, indem Sie den Security-Modus auf Message oder Both (d. h. Transport- und Nachrichtensicherheit werden verwendet) festlegen.You can select message security by setting the Security mode to Message or Both (that is, use both transport security and message security).

Der Dienst kann anhand der Current-Eigenschaft die Anmeldeinformationen überprüfen, mit denen der Client authentifiziert wird.The service can use the Current property to inspect the credential used to authenticate the client. Damit können weitere Autorisierungsüberprüfungen vorgenommen werden, die der Dienst zur Implementierung auswählen kann.This can also be used for further authorization checks that the service chooses to implement.

Dieser Abschnitt erklärt die verschiedenen Anmeldeinformationstypen und ihre Verwendung mit Warteschlangen.This section explains the different credential types and how to use them with queues.

ZertifikatCertificate

Der Zertifikat-Anmeldeinformationstyp identifiziert mit einem X.509-Zertifikat den Dienst und den Client.The certificate credential type uses an X.509 certificate to identify the service and the client.

In einem typischen Szenario stellt eine vertrauenswürdige Zertifizierungsstelle dem Client und dem Dienst ein gültiges Zertifikat aus.In a typical scenario, the client and the service are issued a valid certificate by a trusted certification authority. Dann wird die Verbindung hergestellt, und der Client authentifiziert die Gültigkeit des Dienstes, indem er anhand des Zertifikat des Dienstes entscheidet, ob der Dienst vertrauenswürdig ist.Then the connection is established, the client authenticates the validity of the service using the service's certificate to decide whether it can trust the service. Entsprechend verwendet der Dienst das Zertifikat des Clients, um dessen Vertrauenswürdigkeit zu überprüfen.Similarly, the service uses the client's certificate to validate the client trust.

Da im Fall von Warteschlangen nicht immer eine Verbindung hergestellt ist, sind der Client und der Dienst möglicherweise nicht zur selben Zeit online.Given the disconnected nature of queues, the client and the service may not be online at the same time. Daher müssen der Client und der Dienst Zertifikate out-of-band austauschen.As such, the client and service have to exchange certificates out-of-band. Insbesondere der Client, bei dem sich das Dienstzertifikat (das mit einer Zertifizierungsstelle verkettet sein kann) im vertrauenswürdigen Speicher befindet, muss verlässlich mit dem richtigen Dienst kommunizieren.In particular, the client, by virtue of holding the service's certificate (which can be chained to a certification authority) in its trusted store, must trust that it is communicating with the correct service. Zur Authentifizierung des Clients gleicht der Dienst das X.509-Zertifikat, das an die Nachricht angehängt ist, mit dem Zertifikat in seinem Speicher ab, um die Echtzeit des Clients zu überprüfen.For authenticating the client, the service uses the X.509 certificate attached with the message to matches it with the certificate in its store to verify the authenticity of the client. Auch hier muss das Zertifikat mit einer Zertifizierungsstelle verkettet sein.Again, the certificate must be chained to a certification authority.

Auf einem Computer unter Windows befinden sich die Zertifikate in verschiedenen Arten von Speichern.On a computer running Windows, certificates are held in several kinds of stores. Weitere Informationen zu den verschiedenen speichern, finden Sie unter Zertifikatspeichern.For more information about the different stores, see Certificate stores.

WindowsWindows

Der Windows-Anmeldeinformationstyp für Nachrichten verwendet das Kerberos-Protokoll.Windows message credential type uses the Kerberos protocol.

Das Kerberos-Protokoll ist ein Sicherheitsmechanismus, der Benutzer in einer Domäne authentifiziert und den authentifizierten Benutzern das Erstellen sicherer Kontexte mit anderen Entitäten einer Domäne ermöglicht.The Kerberos protocol is a security mechanism that authenticates users on a domain and allows the authenticated users to establish secure contexts with other entities on a domain.

Die Verwendung des Kerberos-Protokolls für die Kommunikation unter Verwendung von Warteschlangen ist problematisch, insofern als die vom Schlüsselverteilungscenter verteilten Tickets mit der Clientidentität relativ kurzlebig sind.The problem with using the Kerberos protocol for queued communication is that the tickets that contain client identity that the Key Distribution Center (KDC) distributes are relatively short-lived. Ein Lebensdauer bezieht sich auf das Kerberos-Ticket, der die Gültigkeit des Tickets angibt.A lifetime is associated with the Kerberos ticket that indicates the validity of the ticket. Bei einer hohen Latenz können Sie somit nicht sicher sein, ob das Token noch für den Dienst gültig ist, der den Client authentifiziert.As such, given high latency, you cannot be sure that the token is still valid for the service that authenticates the client.

Wenn dieser Anmeldeinformationstyp verwendet wird, muss der Dienst unter dem SERVICE-Konto ausgeführt werden.Note that when using this credential type, the service must be running under the SERVICE account.

Das Kerberos-Protokoll wird standardmäßig bei der Auswahl von Nachrichtenanmeldeinformationen verwendet.The Kerberos protocol is used by default when choosing message credential. Weitere Informationen finden Sie unter Kerberos untersuchen, das Protokoll für verteilte Sicherheit in Windows 2000.For more information, see Exploring Kerberos, the Protocol for Distributed Security in Windows 2000.

Benutzernamenkennwort (Username Password)Username Password

Mit dieser Eigenschaft kann sich der Client beim Server durch Angabe eines Benutzernamenkennworts im Sicherheitsheader der Nachricht authentifizieren.Using this property, the client can authenticate to the server using a username password in the security header of the message.

IssuedTokenIssuedToken

Der Client kann den Sicherheitstokendienst zum Ausstellen eines Tokens verwenden. Dieses Token kann dann der Nachricht angefügt werden, um den Client für den Dienst zu identifizieren.The client can use the security token service to issue a token that can then be attached to the message for the service to authenticate the client.

Verwenden der Transport- und der NachrichtensicherheitUsing Transport and Message Security

Wenn die Transportsicherheit und die Nachrichtensicherheit verwendet werden, muss das auf der Transportebene zum Sichern der Nachricht verwendete Zertifikat mit dem auf der SOAP-Nachrichtenebene verwendeten Zertifikat identisch sein.When using both transport security and message security, the certificate used to secure the message both at the transport and the SOAP message level must be the same.

Siehe auchSee Also

Sichern von Nachrichten mit TransportsicherheitSecuring Messages Using Transport Security
Nachrichtensicherheit über Message QueuingMessage Security over Message Queuing
Begriffe der SicherheitSecurity Concepts
Sichern von Diensten und ClientsSecuring Services and Clients