WS_XML_TOKEN_MESSAGE_SECURITY_BINDING-Struktur (webservices.h)

Der Sicherheitsbindungsuntertyp zum Angeben der Verwendung eines Sicherheitstokens, das der Anwendung bereits im XML-Format zur Verfügung steht. Das Sicherheitstoken, das von der Anwendung in dieser Bindung bereitgestellt wird, wird einem Dienst in einem WS-Security-Header gemäß dem angegebenen bindingUsage-Header angezeigt. Diese Sicherheitsbindung kann nur auf Clientseite in einer Sicherheitsbeschreibung enthalten sein.

Diese Sicherheitsbindung wird mit dem WS_NAMEDPIPE_CHANNEL_BINDING nicht unterstützt.

Obwohl diese Bindung mit jedem Token verwendet werden kann, das in XML-Form verfügbar ist, wird dies häufig in Verbundszenarien verwendet. Beispielsweise kann ein clientseitiger Tokenanbieter wie CardSpace verwendet werden, um ein Token von einem Sicherheitstokendienst abzurufen, und dieses Token kann dann mithilfe dieser Sicherheitsbindung einem Webdienst angezeigt werden.

Sicherheitshinweis: Wie bei anderen Sicherheitstoken und Anmeldeinformationen ist die Anwendung für die Entscheidung zur Risikobewertung verantwortlich, ein bestimmtes XML-Token (bereitgestellt von der Anwendung in einer Sicherheitsbeschreibung) für einen bestimmten Server (bereitgestellt von der Anwendung beim Öffnen des Kanals) offenzulegen. Insbesondere sollte die Anwendung die Bedrohung berücksichtigen, die der Server möglicherweise das XML-Token verwendet, das er vom Client erhält, um wiederum vorzugeben, der Client eines Drittanbieters zu sein. Für diese Bedrohung gibt es die folgenden Maßnahmen: (A) Der Serverauthentifizierungsprozess stellt sicher, dass die Nachricht (und damit das Token) nur an einen Server gesendet wird, der für die von der Clientanwendung angegebene Adresse sprechen kann; (B) schlüssellose Token (Bearer) sind in der Regel nur auf einem Server verwendbar (z. B. contoso.com gewinnt wenig von der Weitergabe eines contoso.com Benutzernamen-/Kennworttokens an einen anderen Standort . Der Anwendungssicherheitsentwurf sollte sicherstellen, dass diese Eigenschaft vorhanden ist); (C) Token mit symmetrisischem Schlüssel sind auf jedem Server, der nicht denselben symmetrischen Schlüssel verwendet, nicht verwendbar; (D) asymmetrische Schlüsseltoken signieren den Zeitstempel und den "To"-Header, wodurch ihre Anwendbarkeit auf das beabsichtigte "An" für eine geringe Zeitdauer beschränkt wird.

Bei dieser Sicherheitsbindung können keine Sicherheitsbindungseigenschaften angegeben werden:

Syntax

typedef struct _WS_XML_TOKEN_MESSAGE_SECURITY_BINDING {
  WS_SECURITY_BINDING       binding;
  WS_MESSAGE_SECURITY_USAGE bindingUsage;
  WS_SECURITY_TOKEN         *xmlToken;
} WS_XML_TOKEN_MESSAGE_SECURITY_BINDING;

Member

binding

Der Basistyp, von dem dieser Sicherheitsbindungsuntertyp und alle anderen Sicherheitsbindungsuntertypen abgeleitet werden.

bindingUsage

Wie das Sicherheitstoken, das dieser Sicherheitsbindung entspricht, an eine Nachricht gebunden werden soll.

Nur WS_SUPPORTING_MESSAGE_SECURITY_USAGE wird unterstützt. Bei dieser Verwendung bietet diese Sicherheitsbindung die Clientauthentifizierung, aber keinen Nachrichtenschutz (z. B. Signieren, Verschlüsselung, Wiedergabeerkennung). Daher muss diese Bindung zusammen mit einer anderen Sicherheitsbindung wie der WS_SSL_TRANSPORT_SECURITY_BINDING verwendet werden, die einen geschützten Kanal bereitstellt.

xmlToken

Das zu verwendende XML-Sicherheitstoken. Dieses Token kann mithilfe von WsCreateXmlSecurityToken erstellt oder von einem Sicherheitstokendienst mit WsRequestSecurityToken abgerufen werden. Wenn diese Bindung zum Erstellen eines Kanals verwendet wird, wird eine Kopie des bereitgestellten Tokens erstellt und für die interne Verwendung aufbewahrt. Die Anwendung besitzt weiterhin das bereitgestellte Token und ist für das Löschen mit WsFreeSecurityToken verantwortlich, sobald der Kanalerstellungsaufruf zurückgegeben wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile webservices.h