Udostępnij za pośrednictwem


Wią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 czasu wykonywania 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 zabezpieczeń powią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ń dostarczanych przez system, zobacz Powiązania dostarczone przez system. 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 element (API) ma odpowiednik w usłudze <wsHttpBinding>.

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

BasicHttp

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

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 usług sieci Web (WSE).

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

  • 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 <elementu wsHttpBinding>.

Domyślnie to powiązanie implementuje specyfikację Zabezpieczeń WS-Security i zapewnia współdziałanie z usługami, które implementują specyfikacje usług 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 WSDualHttpBinding klasy ; w konfiguracji użyj elementu <wsDualHttpBinding>.

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

  • Implementuje niezawodną obsługę komunikatów WS w celu zapewnienia niezawodności.

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

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

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

Przy użyciu zabezpieczeń WS-Security (zabezpieczenia w warstwie 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 wynegocjowanych z usługi w ramach konfiguracji kanału.

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

Nettcpbinding

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

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

  • Implementuje zabezpieczenia warstwy transportu.

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

  • Używa protokołu TCP do transportu.

  • Implementuje kodowanie komunikatów binarnych.

  • Implementuje niezawodną obsługę komunikatów WS.

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

  • Zabezpieczenia warstwy komunikatów (przy użyciu usługi 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 NetNamedPipeBinding klasy ; w konfiguracji użyj <polecenia 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 tematy NetMsmqSecurity oraz NetMsmqSecurityMode.

Netmsmqbinding

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

To powiązanie jest przeznaczone do użycia podczas tworzenia usług WCF, które wymagają obsługi komunikatów w kolejce 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 wartość lub Message.

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

WSFederationHttpBinding

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

Domyślnie to powiązanie używa zabezpieczeń WS-Security (zabezpieczenia warstwy 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 Funkcje zabezpieczeń za pomocą powiązań niestandardowych.

Opcje powią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.

Ustawienie 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 wielu przeskoków
Komunikat Uwierzytelnianie serwera

Uwierzytelnianie klienta

Kompleksowe zabezpieczenia

Współdziałanie

Bogatych roszczeń

Federacja

Uwierzytelnianie wieloskładnikowe

Tokeny niestandardowe

Usługa notary/sygnatura czasowa

Aplikacje o dużym opóźnieniu

Trwałość podpisów wiadomości
Transportwithmessagecredential Uwierzytelnianie serwera

Uwierzytelnianie klienta

Zabezpieczenia typu punkt-punkt

Współdziałanie

Przyspieszanie sprzętowe

Wysoka przepływność

Zaawansowane oświadczenia klienta

Federacja

Uwierzytelnianie wieloskładnikowe

Tokeny niestandardowe

Bezpieczna zapora

Aplikacje o dużym opóźnieniu

Ponowne szyfrowanie wielu przeskoków

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ązanie Obsługa trybu transportu Obsługa trybu komunikatów Obsługa obiektu 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 transportu w powiązaniach

W poniższej tabeli wymieniono typy poświadczeń klienta dostępne w przypadku korzystania z BasicHttpBinding trybu zabezpieczeń transportu lub WSHttpBinding w trybie zabezpieczeń transportu.

Type Opis
None Określa, że klient nie musi prezentować żadnych poświadczeń. Przekłada się to na anonimowego klienta.
Podstawowy 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.
Szyfrowane 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.
Issuedtoken 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 Wystawione tokeny.

Poświadczenia klienta komunikatów w powiązaniach

W poniższej tabeli wymieniono typy poświadczeń klienta dostępne podczas korzystania z powiązania w trybie zabezpieczeń komunikatów.

Type Opis
None 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.
UserName Umożliwia usłudze wymaganie uwierzytelnienia klienta przy użyciu poświadczeń nazwy użytkownika. Należy pamiętać, że gdy tryb zabezpieczeń jest ustawiony na TransportWithMessageCredentialwartość , program WCF nie obsługuje wysyłania skrótu hasła lub wyprowadzania kluczy przy użyciu hasła i używania takich kluczy w przypadku zabezpieczeń trybu komunikatów. W związku z tym program WCF wymusza zabezpieczenie transportu podczas korzystania z poświadczeń nazwy użytkownika.
Certyfikat Umożliwia usłudze wymaganie uwierzytelnienia klienta przy użyciu certyfikatu.
Issuedtoken Umożliwia usłudze używanie usługi tokenu zabezpieczającego do dostarczania tokenu niestandardowego.

Zobacz też