Udostępnij przez


Powiązania i zabezpieczenia

Powiązania dostarczane przez system zawarte w programie Windows Communication Foundation (WCF) oferują szybki sposób programowania aplikacji WCF. Z jednym wyjątkiem wszystkie powiązania mają włączony domyślny schemat zabezpieczeń. Ten temat ułatwia wybranie odpowiedniego powiązania dla Twoich potrzeb dotyczących zabezpieczeń.

Aby zapoznać się z omówieniem zabezpieczeń WCF, zobacz Omówienie zabezpieczeń. Aby uzyskać więcej informacji na temat programowania WCF przy użyciu powiązań, zobacz Programowanie zabezpieczeń WCF.

Jeśli wybrano już powiązanie, możesz dowiedzieć się więcej o zachowaniach środowiska uruchomieniowego skojarzonych z zabezpieczeniami w obszarze Zachowania zabezpieczeń.

Niektóre funkcje zabezpieczeń nie są programowalne przy użyciu powiązań dostarczanych przez system. Aby uzyskać większą kontrolę przy użyciu powiązania niestandardowego, zobacz Funkcje zabezpieczeń z powiązaniami niestandardowymi.

Funkcje bezpieczeństwa wiązań

Program WCF zawiera wiele powiązań dostarczanych przez system, które spełniają większość potrzeb. Jeśli określone powiązanie nie jest wystarczające, można również utworzyć powiązanie niestandardowe. Aby uzyskać listę powiązań dostarczonych przez system, zobacz System-Provided Powiązania. Aby uzyskać więcej informacji na temat powiązań niestandardowych, zobacz Powiązania niestandardowe.

Każde powiązanie w programie WCF ma dwie formy: jako interfejs API i jako element XML używany w pliku konfiguracji. Na przykład WSHttpBinding (API) ma odpowiednik w <wsHttpBinding>.

W poniższej sekcji wymieniono obie formularze dla każdego powiązania i podsumowano funkcje zabezpieczeń.

BasicHttp

W kodzie użyj klasy BasicHttpBinding; w konfiguracji użyj <basicHttpBinding>.

To powiązanie jest przeznaczone do użycia z szeregiem istniejących technologii, w tym następujących:

  • ASP.NET usługi sieci Web (ASMX), wersja 1.

  • Ulepszenia aplikacji usług sieci Web (WSE).

  • Profil podstawowy zdefiniowany w specyfikacji Współdziałanie usług sieci Web (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).

  • Podstawowy profil zabezpieczeń zdefiniowany w programie WS-I.

Domyślnie to powiązanie nie jest bezpieczne. Jest przeznaczony do współdziałania z usługami ASMX. Po włączeniu zabezpieczeń powiązanie jest przeznaczone do bezproblemowego współdziałania z mechanizmami zabezpieczeń usług Internet Information Services (IIS), takimi jak uwierzytelnianie podstawowe, skrót i zintegrowane zabezpieczenia systemu Windows. Aby uzyskać więcej informacji, zobacz Transport Security Overview (Omówienie zabezpieczeń transportu). To powiązanie obsługuje następujące elementy:

  • Zabezpieczenia transportu HTTPS.

  • Uwierzytelnianie podstawowe HTTP.

  • Zabezpieczenia usług WS.

Aby uzyskać więcej informacji, zobacz BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialTypei BasicHttpSecurityMode.

WSHttpBinding

W kodzie użyj WSHttpBinding klasy; w konfiguracji użyj <wsHttpBinding>.

Domyślnie to powiązanie implementuje specyfikację WS-Security i zapewnia współdziałanie z usługami, które implementują specyfikacje WS-*. Obsługuje on następujące elementy:

  • Zabezpieczenia transportu HTTPS.

  • Zabezpieczenia usług WS.

  • Ochrona transportu HTTPS z zabezpieczeniami poświadczeń komunikatów PROTOKOŁU SOAP na potrzeby uwierzytelniania obiektu wywołującego.

Aby uzyskać więcej informacji, zobacz WSHttpSecurity, , MessageSecurityOverHttp, MessageCredentialType, SecurityModeHttpTransportSecurity, , HttpClientCredentialType, i HttpProxyCredentialType.

WSDualHttpBinding

W kodzie użyj klasy WSDualHttpBinding; w konfiguracji użyj <wsDualHttpBinding>.

To powiązanie zostało zaprojektowane w celu włączenia aplikacji usług dwukierunkowych. To powiązanie implementuje specyfikację WS-Security dla zabezpieczeń transferu opartych na komunikatach. Zabezpieczenia transportu nie są dostępne. Domyślnie udostępnia ona następujące funkcje:

  • Implementuje WS-Reliable Messaging w celu zwiększenia niezawodności.

  • Implementuje WS-Security na potrzeby uwierzytelniania i zabezpieczeń transferu.

  • Używa protokołu HTTP do dostarczania komunikatów.

  • Używa kodowania komunikatów tekstowych/XML.

Za pomocą WS-Security (zabezpieczenia warstwy komunikatów) powiązanie umożliwia skonfigurowanie następujących parametrów:

  • Zestaw algorytmów zabezpieczeń do określania algorytmu kryptograficznego.

  • Opcje powiązania dla następujących elementów:

    • Dostarczanie poświadczeń usługi dostępnych poza pasmem na kliencie.

    • Dostarczanie poświadczeń usługi, które zostały wynegocjowane przez usługę w ramach konfiguracji kanału.

Aby uzyskać więcej informacji, zobacz WSDualHttpSecurity i WSDualHttpSecurityMode.

BinidngNetTcp

W kodzie użyj klasy NetTcpBinding; w konfiguracji użyj <netTcpBinding>.

To powiązanie jest zoptymalizowane pod kątem komunikacji między maszynami. Domyślnie ma następujące cechy:

  • Zapewnia zabezpieczenia warstwy transportowej.

  • Wykorzystuje zabezpieczenia systemu Windows do uwierzytelniania i zabezpieczeń transferu.

  • Używa protokołu TCP do transportu.

  • Implementuje kodowanie komunikatów binarnych.

  • Implementuje WS-Reliable obsługi komunikatów.

Dostępne są następujące opcje:

  • Zabezpieczenia warstwy komunikatów (przy użyciu WS-Security).

  • Zabezpieczenia transportu z poświadczeniami wiadomości — poufność i integralność zapewniana przez protokół Transport Layer Security (TLS) za pośrednictwem protokołu TCP oraz poświadczenia autoryzacji udostępniane przez usługę WS-Security.

Aby uzyskać więcej informacji, zobacz NetTcpSecurity, , TcpTransportSecurityTcpClientCredentialType, MessageSecurityOverTcp, i MessageCredentialType.

NetNamedPipeBinding

W kodzie użyj klasy NetNamedPipeBinding; w konfiguracji użyj <netNamedPipeBinding>.

To powiązanie jest zoptymalizowane pod kątem komunikacji między procesami (zwykle na tej samej maszynie). Domyślnie to powiązanie ma następujące cechy:

  • Używa zabezpieczeń transportu do transferu i uwierzytelniania komunikatów.

  • Używa nazwanych potoków do dostarczania komunikatów.

  • Implementuje kodowanie komunikatów binarnych.

  • Szyfrowanie i podpisywanie komunikatów.

Dostępne są następujące opcje:

  • Uwierzytelnianie przy użyciu zabezpieczeń systemu Windows.

Aby uzyskać więcej informacji, zobacz tematy NetNamedPipeSecurity, NetNamedPipeSecurityMode oraz NamedPipeTransportSecurity.

MsmqIntegrationBinding

W kodzie użyj MsmqIntegrationBinding klasy ; w konfiguracji użyj <elementu msmqIntegrationBinding>.

To powiązanie jest zoptymalizowane pod kątem tworzenia klientów i usług WCF, które współdziałają z punktami końcowymi kolejkowania komunikatów firmy Microsoft (MSMQ) innych niż WCF.

Domyślnie to powiązanie używa zabezpieczeń transportu i zapewnia następujące cechy zabezpieczeń:

  • Zabezpieczenia można wyłączyć (Brak).

  • Zabezpieczenia transportu MSMQ (Transport).

Aby uzyskać więcej informacji, zobacz NetMsmqSecurity i NetMsmqSecurityMode.

NetMsmqBinding

W kodzie użyj NetMsmqBinding klasy; w konfiguracji użyj elementu <netMsmqBinding>.

To wiązanie jest przeznaczone do użycia podczas tworzenia usług WCF, które wymagają obsługi komunikatów kolejkowanych w MSMQ.

Domyślnie to powiązanie używa zabezpieczeń transportu i zapewnia następujące cechy zabezpieczeń:

  • Zabezpieczenia można wyłączyć (Brak).

  • Zabezpieczenia transportu MSMQ (Transport).

  • Zabezpieczenia komunikatów oparte na protokole SOAP (Message).

  • Równoczesne zabezpieczenia transportu i wiadomości (oba).

  • Obsługiwane typy poświadczeń klienta: None, Windows, UserName, Certificate, IssuedToken.

Poświadczenie Certificate jest obsługiwane tylko wtedy, gdy tryb zabezpieczeń jest ustawiony na Both lub Message.

Aby uzyskać więcej informacji, zobacz MessageSecurityOverMsmq i MsmqTransportSecurity.

WSFederationHttpBinding

W kodzie użyj WSFederationHttpBinding klasy ; w konfiguracji użyj <klasy wsFederationHttpBinding>.

Domyślnie to powiązanie używa WS-Security (zabezpieczenia na poziomie komunikatów).

Aby uzyskać więcej informacji, zobacz Federacja, WSFederationHttpSecurityi WSFederationHttpSecurityMode.

Powiązania niestandardowe

Jeśli żadne z powiązań dostarczonych przez system nie spełnia Twoich wymagań, możesz utworzyć niestandardowe powiązanie z niestandardowym elementem powiązania zabezpieczeń. Aby uzyskać więcej informacji, zobacz Możliwości zabezpieczeń z niestandardowymi wiązaniami.

Opcje wiązania

Poniższa tabela zawiera podsumowanie funkcji oferowanych w ustawieniu trybu zabezpieczeń, czyli zawiera listę funkcji dostępnych, gdy tryb zabezpieczeń jest ustawiony na Transport, Messagelub TransportWithMessageCredential. Ta tabela ułatwia znajdowanie funkcji zabezpieczeń, których wymaga aplikacja.

Ustawienia Funkcje
Transport Uwierzytelnianie serwera

Uwierzytelnianie klienta

Zabezpieczenia typu punkt-punkt

Współdziałanie

Przyspieszanie sprzętowe

Wysoka przepływność

Bezpieczna zapora

Aplikacje o dużym opóźnieniu

Ponowne szyfrowanie na wielu etapach
Komunikat Uwierzytelnianie serwera

Uwierzytelnianie klienta

Kompleksowe zabezpieczenia

Współdziałanie

Szczegółowe roszczenia

Federacja

Uwierzytelnianie wieloskładnikowe

Tokeny niestandardowe

Usługa notarialna/usługa znaku czasowego

Aplikacje o dużym opóźnieniu

Trwałość podpisów wiadomości
Transport z poświadczeniem wiadomości Uwierzytelnianie serwera

Uwierzytelnianie klienta

Zabezpieczenia typu punkt-punkt

Współdziałanie

Przyspieszanie sprzętowe

Wysoka przepływność

Żądania bogatego klienta

Federacja

Uwierzytelnianie wieloskładnikowe

Tokeny niestandardowe

Bezpieczna zapora

Aplikacje o dużym opóźnieniu

Ponowne szyfrowanie na wielu etapach

W poniższej tabeli wymieniono powiązania, które obsługują różne ustawienia trybu. Wybierz powiązanie z tabeli, aby użyć go do utworzenia punktu końcowego usługi.

Wiążący Obsługa trybu transportu Obsługa trybu komunikatów Obsługa funkcji TransportWithMessageCredential
BasicHttpBinding Tak Tak Tak
WSHttpBinding Tak Tak Tak
WSDualHttpBinding Nie. Tak Nie.
NetTcpBinding Tak Tak Tak
NetNamedPipeBinding Tak Nie. Nie.
NetMsmqBinding Tak Tak Nie.
MsmqIntegrationBinding Tak Nie. Nie.
wsFederationHttpBinding Nie. Tak Tak

Poświadczenia transportowe w wiązaniach

Tabela poniżej przedstawia typy poświadczeń klienta dostępne, gdy używasz BasicHttpBinding lub WSHttpBinding w trybie zabezpieczeń transportu.

Typ Opis
Żaden Określa, że klient nie musi prezentować żadnych poświadczeń. Przekłada się to na anonimowego klienta.
Basic Uwierzytelnianie podstawowe. Aby uzyskać więcej informacji, zobacz RFC 2617 — Uwierzytelnianie HTTP: uwierzytelnianie podstawowe i szyfrowane dostępne pod adresem https://go.microsoft.com/fwlink/?LinkId=84023.
Podsumowanie Uwierzytelnianie szyfrowane. Aby uzyskać więcej informacji, zobacz RFC 2617 — Uwierzytelnianie HTTP: uwierzytelnianie podstawowe i szyfrowane dostępne pod adresem https://go.microsoft.com/fwlink/?LinkId=84023.
NTLM Uwierzytelnianie NT LAN Manager (NTLM).
Windows Uwierzytelnianie systemu Windows.
Certyfikat Uwierzytelnianie wykonywane przy użyciu certyfikatu.
Token wydany Umożliwia usłudze wymaganie uwierzytelnienia klienta przy użyciu tokenu wystawionego przez usługę tokenu zabezpieczającego lub przez usługę CardSpace. Aby uzyskać więcej informacji, zobacz Federacja i Wydane Tokeny.

Poświadczenia klienta wiadomości w wiązaniach

W poniższej tabeli wymieniono typy poświadczeń klienta dostępne przy używaniu powiązania w trybie zabezpieczeń wiadomości.

Typ Opis
Żaden Umożliwia usłudze interakcję z klientami anonimowymi.
Windows Umożliwia wymianę komunikatów protokołu SOAP w kontekście uwierzytelnionego poświadczenia systemu Windows.
Nazwa użytkownika Umożliwia usłudze wymaganie, aby klient był uwierzytelniony za pomocą poświadczeń nazwy użytkownika. Należy pamiętać, że gdy tryb zabezpieczeń jest ustawiony na TransportWithMessageCredential, program WCF nie obsługuje wysyłania skrótu hasła ani generowania kluczy z hasła i używania takich kluczy dla zabezpieczeń w trybie komunikatu. W związku z tym WCF nakazuje zabezpieczenie transportu podczas korzystania z poświadczeń użytkownika.
Certyfikat Umożliwia usłudze wymaganie uwierzytelnienia klienta przy użyciu certyfikatu.
Token wydany Umożliwia usłudze używanie usługi tokenu zabezpieczającego do dostarczania tokenu niestandardowego.

Zobacz także