Udostępnij za pośrednictwem


Zagadnienia dotyczące zabezpieczeń bezpiecznych sesji

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 RequireCancellation ustawieniu właściwości na false, program Windows Communication Foundation (WCF) wysyła mssp:MustNotSendCancel asercji jako część metadanych w dokumencie Web Services Description Language (WSDL) dla punktu końcowego usługi. Asercji mssp:MustNotSendCancel informuje klientów, że usługa nie odpowiada na żądania anulowania bezpiecznej sesji. Gdy właściwość jest ustawiona RequireCancellation na truewartość , 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 podnieść błąd, taki jak wsc:UnknownDerivationSource powinien zostać zgłoszony.

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 wyprowadzania, ale wartością domyślną jest wyprowadzanie kluczy. 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 też