Důležité informace o zabezpečení pro zabezpečené relace
Při implementaci zabezpečených relací byste měli zvážit následující položky, které ovlivňují zabezpečení. Další informace o aspektech zabezpečení najdete v tématu Aspekty zabezpečení a osvědčené postupy zabezpečení.
Zabezpečené relace a metadata
Při vytvoření zabezpečené relace a RequireCancellation vlastnost je nastavena na false
, Windows Communication Foundation (WCF) odešle mssp:MustNotSendCancel
kontrolní výraz jako součást metadat v dokumentu WSDL (Web Services Description Language) pro koncový bod služby. Kontrolní mssp:MustNotSendCancel
výraz informuje klienty, že služba nereaguje na žádosti o zrušení zabezpečené relace. Pokud je vlastnost nastavena RequireCancellation na true
, WCF nevygeneruje mssp:MustNotSendCancel
kontrolní výraz v dokumentu WSDL. Klienti mají do služby odeslat žádost o zrušení, pokud už nevyžadují zabezpečenou relaci. Při generování klienta pomocí nástroje ServiceModel Metadata Utility (Svcutil.exe) klientský kód odpovídajícím způsobem reaguje na přítomnost nebo nepřítomnost kontrolního výrazu mssp:MustNotSendCancel
.
Zabezpečené konverzace a vlastní tokeny
Při kombinování vlastních tokenů a odvozených klíčů dochází k problémům kvůli způsobu, jakým je definován ve specifikaci WS-SecureConversation. Specifikace říká, že je volitelný prvek, který wsse:SecurityTokenReference
odkazuje na odvozený token: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference
Tento volitelný prvek slouží k určení tokenu kontextu zabezpečení, tokenu zabezpečení nebo sdíleného klíče nebo tajného klíče použitého pro odvození. Pokud není zadaný, předpokládá se, že příjemce může určit sdílený klíč z kontextu zprávy. Pokud kontext nelze určit, pak by měla být vyvolána chyba wsc:UnknownDerivationSource
.
To znamená, že pokud chcete, aby byl odvozen vlastní token, měli byste zabalit jeho typ klauzule do elementu SecurityTokenReference
. Existuje možnost vypnout odvození, ale výchozí možností je odvodit klíče. Pokud se vám nepodaří zabalit klíč, serializace odvozeného tokenu klíče proběhne úspěšně, ale pokusí se deserializovat, vyvolá výjimku.