Udostępnij przez


Zagadnienia dotyczące zabezpieczeń sesji zabezpieczonych

Podczas implementowania bezpiecznych sesji należy wziąć pod uwagę następujące elementy, które mają wpływ na zabezpieczenia. Aby uzyskać więcej informacji na temat zagadnień dotyczących zabezpieczeń, zobacz Zagadnienia dotyczące zabezpieczeń i Najlepsze rozwiązania dotyczące zabezpieczeń.

Bezpieczne sesje i metadane

Po ustanowieniu bezpiecznej sesji i ustawieniu właściwości RequireCancellation na false, Windows Communication Foundation (WCF) wysyła asercję mssp:MustNotSendCancel jako część metadanych w dokumencie Web Services Description Language (WSDL) dla punktu końcowego usługi. Asercja mssp:MustNotSendCancel informuje klientów o tym, że usługa nie odpowiada na żądania anulowania bezpiecznej sesji. Gdy właściwość RequireCancellation jest ustawiona na true wartość, usługa WCF nie emituje mssp:MustNotSendCancel asercji w dokumencie WSDL. Oczekuje się, że klienci będą wysyłać żądanie anulowania do usługi, gdy nie wymagają już bezpiecznej sesji. Gdy klient jest generowany przy użyciu narzędzia ServiceModel Metadata Tool (Svcutil.exe), kod klienta odpowiednio reaguje na obecność lub brak mssp:MustNotSendCancel potwierdzenia.

Bezpieczne konwersacje i niestandardowe tokeny

Istnieją pewne problemy z mieszaniem tokenów niestandardowych i kluczy pochodnych ze względu na sposób jego definiowania w specyfikacji WS-SecureConversation. Specyfikacja informuje, że wsse:SecurityTokenReference jest to opcjonalny element, który odwołuje się do tokenu pochodnego: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference Ten opcjonalny element służy do określania tokenu kontekstu zabezpieczeń, tokenu zabezpieczającego lub klucza współużytkowanego/klucza tajnego używanego do wyprowadzania. Jeśli nie zostanie określony, przyjmuje się, że odbiorca może określić klucz współużytkowany z kontekstu wiadomości. Jeśli nie można określić kontekstu, należy zgłosić błąd, taki jak wsc:UnknownDerivationSource.

Oznacza to, że jeśli chcesz, aby token niestandardowy został uzyskany, należy owinąć jego typ klauzuli w elemecie SecurityTokenReference . Istnieje możliwość wyłączenia generowania kluczy, ale wartością domyślną jest ich generowanie. Jeśli nie uda ci się opakować klucza, serializowanie tokenu klucza pochodnego zakończy się powodzeniem, ale próba deserializacji zgłosi wyjątek.

Zobacz także