Sicherheitsüberlegungen für SicherheitssitzungenSecurity Considerations for Secure Sessions

Berücksichtigen Sie die folgenden Punkte, die sich bei der Implementierung von Sicherheitssitzungen auf die Sicherheit auswirken.You should consider the following items that affect security when implementing secure sessions. Weitere Informationen zu Sicherheitsaspekten finden Sie unter Sicherheitsüberlegungen und Best Practices für Sicherheit.For more information about security considerations, see Security Considerations and Best Practices for Security.

Sicherheitssitzungen und MetadatenSecure Sessions and Metadata

Eine sichere Sitzung eingerichtet ist und die RequireCancellation -Eigenschaftensatz auf false, sendet Windows Communication Foundation (WCF) ein mssp:MustNotSendCancel -Assertion als Teil der Metadaten in das Dokument Web Services Description Language (WSDL) für die Der Dienstendpunkt.When a secure session is established and the RequireCancellation property is set to false, Windows Communication Foundation (WCF) sends an mssp:MustNotSendCancel assertion as part of the metadata in the Web Services Description Language (WSDL) document for the service endpoint. Die mssp:MustNotSendCancel-Assertion informiert Clients, dass der Dienst nicht auf Anforderungen zum Abbrechen der sicheren Sitzung reagiert.The mssp:MustNotSendCancel assertion informs clients that the service does not respond to requests to cancel the secure session. Wenn die RequireCancellation -Eigenschaftensatz auf true, dann WCF nicht ausgeben werden ein mssp:MustNotSendCancel Assertion im WSDL-Dokument.When the RequireCancellation property is set to true, then WCF does not emit an mssp:MustNotSendCancel assertion in the WSDL document. Clients sollen eine Abbruchanforderung an den Dienst senden, wenn sie die sichere Sitzung nicht mehr benötigen.Clients are expected to send a cancel request to the service when they no longer require the secure session. Wenn ein Client mit generiert wird die ServiceModel Metadata Utility Tool (Svcutil.exe), der Clientcode reagiert entsprechend, um das Vorhandensein oder fehlen der mssp:MustNotSendCancel Assertion.When a client is generated using the ServiceModel Metadata Utility Tool (Svcutil.exe), the client code reacts appropriately to the presence or absence of the mssp:MustNotSendCancel assertion.

Sichere Unterhaltungen und benutzerdefinierte TokenSecure Conversations and Custom Tokens

Beim Mischen benutzerdefinierter Token und abgeleiteter Schlüssel ergeben sich aufgrund der Art der Definition in der WS-SecureConversation-Spezifikation einige Probleme.There are some issues with mixing custom tokens and derived keys due to the way it is defined in the WS-SecureConversation specification. Laut Spezifikation wsse:SecurityTokenReference ist ein optionales Element, die das abgeleitete Token verweist: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference dieses optionale Element wird verwendet, um Sicherheitskontexttoken, Sicherheitstoken oder freigegebenen Schlüssel/geheime Schlüssel für die Ableitung anzugeben.The specification says that wsse:SecurityTokenReference is an optional element that references the derived token: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference This optional element is used to specify security context token, security token, or shared key/secret used for the derivation. Wird das Element nicht angegeben, wird davon ausgegangen, dass der Empfänger den freigegebenen Schlüssel dem Nachrichtenkontext entnehmen kann.If not specified, it is assumed that the recipient can determine the shared key from the message context. Wenn der Kontext nicht bestimmt werden kann, klicken Sie dann einen Fehler wie z. B. wsc:UnknownDerivationSource ausgelöst werden soll. "If the context cannot be determined, then a fault such as wsc:UnknownDerivationSource should be raised."

Das bedeutet, dass zum Ableiten eines benutzerdefinierten Tokens dessen Klauseltyp in ein SecurityTokenReference-Element eingeschlossen werden muss.This means that if you want a custom token to be derived, you should wrap its clause type in a SecurityTokenReference element. Zwar steht eine Option zum Deaktivieren der Ableitung zur Verfügung, standardmäßig werden Schlüssel jedoch abgeleitet.There is an option to turn off derivation but the default is to derive keys. Wird der Schlüssel nicht eingeschlossen, ist zwar die Serialisierung des abgeleiteten Schlüsseltokens erfolgreich, bei der Deserialisierung wird jedoch eine Ausnahme ausgelöst.If you fail to wrap the key, serializing the derived key token succeeds, but attempting to deserialize it throws an exception.

Siehe auchSee Also

Vorgehensweise: Deaktivieren sicherer Sitzungen auf einer WSFederationHttpBindingHow to: Disable Secure Sessions on a WSFederationHttpBinding
SicherheitsüberlegungenSecurity Considerations
Bewährte Methoden für SicherheitBest Practices for Security