Sicherheitsüberlegungen für Sicherheitssitzungen
Berücksichtigen Sie die folgenden Elemente, die die Sicherheit beim Implementieren von Sicherheitssitzungen beeinflussen. Weitere Informationen über zu Sicherheitsüberlegungen finden Sie unter Sicherheitsüberlegungen und Best Practices für Sicherheit in WCF.
Sicherheitssitzungen und Metadaten
Wenn eine sichere Sitzung eingerichtet und die RequireCancellation-Eigenschaft auf false festgelegt ist, sendet Windows Communication Foundation (WCF) eine mssp:MustNotSendCancel-Assertion als Bestandteil der Metadaten im WSDL-Dokument (Web Services Description Language) für den Dienstendpunkt. Die mssp:MustNotSendCancel-Assertion informiert Clients, dass der Dienst nicht auf Anforderungen zum Abbrechen der sicheren Sitzung reagiert. Wenn die RequireCancellation-Eigenschaft auf true gesetzt ist, gibt WCF keine mssp:MustNotSendCancel-Assertion im WSDL-Dokument aus. Clients sollen eine Abbruchanforderung an den Dienst senden, wenn sie die sichere Sitzung nicht mehr benötigen. Wenn ein Client mit ServiceModel Metadata Utility-Tool (Svcutil.exe) generiert wird, reagiert der Clientcode entsprechend auf die An- oder Abwesenheit der mssp:MustNotSendCancel-Assertion.
Sichere Unterhaltungen und benutzerdefinierte Token
Beim Mischen benutzerdefinierter Token und abgeleiteter Schlüssel ergeben sich aufgrund der Art der Definition in der WS-SecureConversation-Spezifikation einige Probleme. Laut Spezifikation ist wsse:SecurityTokenReference ein optionales Element, das auf das abgeleitete Token /wsc:DerivedKeyToken/wsse:SecurityTokenReference verweist. Dieses optionale Element wird verwendet, um Sicherheitskontexttoken, Sicherheitstoken oder freigegebenen Schlüssel/geheime Schlüssel für die Ableitung anzugeben. Wird das Element nicht angegeben, wird davon ausgegangen, dass der Empfänger den freigegebenen Schlüssel dem Nachrichtenkontext entnehmen kann. Wenn der Kontext nicht bestimmt werden kann, sollte ein Fehler (beispielsweise wsc:UnknownDerivationSource) ausgelöst werden."
Das bedeutet, dass zum Ableiten eines benutzerdefinierten Tokens dessen Klauseltyp in ein SecurityTokenReference-Element eingeschlossen werden muss. Zwar steht eine Option zum Deaktivieren der Ableitung zur Verfügung, standardmäßig werden Schlüssel jedoch abgeleitet. Wird der Schlüssel nicht eingeschlossen, ist zwar die Serialisierung des abgeleiteten Schlüsseltokens erfolgreich, bei der Deserialisierung wird jedoch eine Ausnahme ausgelöst.
Siehe auch
Aufgaben
Vorgehensweise: Deaktivieren sicherer Sitzungen auf einer WSFederationHttpBinding
Konzepte
Best Practices für Sicherheit in WCF