Sicherheitskontext
Sicherheitskontexte ermöglichen das Erstellen eines Nachrichtensicherheitskontexts gemäß WS-SecureConversation. Dieser Kontext kann dann verwendet werden, um Nachrichten als Alternative zur One-Shot-Sicherheit zu schützen, bei der die Anmeldeinformationen für jede Anforderung übertragen werden. Der etablierte Sicherheitskontext ist eine effizientere Methode zum Schützen von Nachrichten, wenn mehrere Nachrichten ausgetauscht werden.
Sicherheitskontexte erfordern das Vorhandensein von Bootstrap-Sicherheitsanmeldeinformationen, die zum Schützen der im Kontext gesendeten Nachrichten verwendet werden. Hierfür können die WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDING und WS_USERNAME_MESSAGE_SECURITY_BINDING Strukturen verwendet werden.
Sicherheitskontexte sind ein Nachrichtensicherheitsfeature und werden über Nachrichtensicherheitsbindungen konfiguriert.
Client
Auf der Clientseite ist der Sicherheitskontext an einen bestimmten Kanal gebunden. Sie wird mithilfe des WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING konfiguriert. Das Verhalten und die Lebensdauer des Kontexts werden vom Kanal bestimmt. Wenn die erste Nachricht auf dem Kanal gesendet wird, wird der Sicherheitskontext eingerichtet. Danach wird der Kontext proaktiv in einem konfigurierbaren Intervall erneuert. Wenn der Server einen Fehler zurückgibt, der angibt, dass der Kontext erneuert werden muss, wird der Kontext erneuert, wenn die nächste Nachricht gesendet wird. Wenn sich der Kanal im geöffneten Zustand befindet, wird der Kontext durch eine Abbruchmeldung abgebrochen, wenn der Kanal geschlossen wird.
Server
Auf dem Server wird ein Sicherheitskontext auf die gleiche Weise wie auf dem Client konfiguriert. Es ist jedoch nicht an einen bestimmten Kanal gebunden. Stattdessen können alle Kanäle, die für den Listener erstellt wurden, für den die WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING festgelegt ist, Nachrichten mit einem der Sicherheitskontexte empfangen, die auf den Kanälen dieses Listeners eingerichtet wurden.
Wenn eine Nachricht auf einem Kanal eingeht, der Sicherheitskontexte unterstützt, kann der von dieser Nachricht verwendete Kontext durch Aufrufen der WsGetMessageProperty-Funktion mit dem WS_MESSAGE_PROPERTY_SECURITY_CONTEXT abgerufen werden. Der abgerufene Wert kann mit WsRevokeSecurityContext und WsGetSecurityContextProperty verwendet werden.
Metadaten
Die WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT-Struktur wird verwendet, um die Sicherheitskontextrichtlinie aus Metadaten zu extrahieren. Weitere Informationen finden Sie unter Metadatenimport.
Die folgenden API-Elemente werden mit Sicherheitskontexten verwendet.
Enumeration | Beschreibung |
---|---|
WS_SECURITY_CONTEXT_PROPERTY_ID | Identifiziert eine Eigenschaft eines Sicherheitskontextobjekts. |
Funktion | BESCHREIBUNG |
---|---|
WsGetSecurityContextProperty | Ruft eine Eigenschaft des angegebenen Sicherheitskontexts ab. |
WsRevokeSecurityContext | Widerruft einen Sicherheitskontext. |
Handle | BESCHREIBUNG |
---|---|
WS_SECURITY_CONTEXT | Ein undurchsichtiger Typ, der verwendet wird, um auf ein Sicherheitskontextobjekt zu verweisen. |
Struktur | BESCHREIBUNG |
---|---|
WS_SECURITY_CONTEXT_PROPERTY | Definiert eine Eigenschaft eines WS_SECURITY_CONTEXT. |