Vazby a zabezpečení

Systémové vazby, které jsou součástí windows Communication Foundation (WCF), nabízejí rychlý způsob, jak programovat aplikace WCF. S jednou výjimkou mají všechny vazby povolené výchozí schéma zabezpečení. Toto téma vám pomůže vybrat správné zabezpečení dle vašich potřeb.

Přehled zabezpečení WCF najdete v tématu Přehled zabezpečení. Další informace o programování WCF pomocí vazeb naleznete v tématu Programování zabezpečení WCF.

Pokud jste už vybrali vazbu, můžete zjistit další informace o běhovém chování, které jsou spojené se zabezpečením v Chování zabezpečení.

Některé funkce zabezpečení nelze programovat pomocí systémových vazeb. Další kontrolu nad použitím vlastní vazby najdete v tématu Možnosti zabezpečení s vlastními vazbami.

Funkce zabezpečení vazeb

WCF obsahuje řadu systémově poskytovaných vazeb, které splňují většinu potřeb. Pokud konkrétní vazba nestačí, můžete také vytvořit vlastní vazbu. Seznam systémových vazeb najdete v tématu System-Provided Vazby. Další informace o vlastních vazbách naleznete v tématu Vlastní vazby.

Každá vazba ve WCF má dvě formy: jako rozhraní API a jako element XML používaný v konfiguračním souboru. Například WSHttpBinding (API) má protějšek v <wsHttpBinding>.

Následující část uvádí oba formuláře pro každou vazbu a shrnuje funkce zabezpečení.

BasicHttp

V kódu použijte BasicHttpBinding třídu, v konfiguraci použijte <basicHttpBinding>.

Toto propojení je určené pro použití s řadou stávajících technologií, včetně následujících:

  • ASP.NET webové služby (ASMX), verze 1.

  • Aplikace WSE (Web Service Enhancements).

  • Základní profil definovaný ve specifikaci interoperability webových služeb (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).

  • Základní profil zabezpečení definovaný ve WS-I

Ve výchozím nastavení není tato vazba zabezpečená. Je navržený tak, aby mohl interoperovat se službami ASMX. Pokud je povolené zabezpečení, je vazba navržená pro bezproblémovou spolupráci s mechanismy zabezpečení Internetové informační služby (IIS), jako je základní ověřování, digest a integrované zabezpečení systému Windows. Další informace naleznete v části Přehled zabezpečení přenosu. Tato vazba podporuje následující:

  • Zabezpečení přenosu HTTPS

  • Základní ověřování HTTP.

  • WS-Security.

Další informace naleznete v tématu BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType a BasicHttpSecurityMode.

WSHttpBinding

V kódu použijte WSHttpBinding třídu; v konfiguraci použijte <wsHttpBinding>.

Tato vazba ve výchozím nastavení implementuje specifikaci WS-Security a poskytuje interoperabilitu se službami, které implementují specifikace WS-*. Podporuje následující:

  • Zabezpečení přenosu HTTPS

  • WS-Security.

  • Ochrana přenosu HTTPS se zabezpečením přihlašovacích údajů zpráv SOAP pro ověřování volajícího

Další informace naleznete v tématu WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialType a HttpProxyCredentialType.

WSDualHttpBinding

V kódu použijte WSDualHttpBinding třídu; v konfiguraci použijte <wsDualHttpBinding>.

Tato vazba je navržená tak, aby umožňovala duplexní aplikace služeb. Tato vazba implementuje specifikaci WS-Security pro zabezpečení přenosu na základě zpráv. Zabezpečení přenosu není k dispozici. Ve výchozím nastavení poskytuje následující funkce:

  • Implementuje zasílání zpráv WS-Reliable pro zajištění spolehlivosti.

  • Implementuje WS-Security pro zabezpečení přenosu a autentizaci.

  • Používá protokol HTTP k doručování zpráv.

  • Používá kódování zpráv ve formátu TEXT/XML.

Pomocí WS-Security (zabezpečení vrstvy zpráv) umožňuje vazba nakonfigurovat následující parametry:

  • Sada algoritmů zabezpečení, která určuje kryptografický algoritmus.

  • Možnosti vazby pro následující:

    • Poskytnutí přihlašovacích údajů služby, které jsou dostupné klientovi mimo hlavní kanál.

    • Poskytnutí přihlašovacích údajů služby vyjednaných ze služby v rámci nastavení kanálu

Pro více informací se podívejte na WSDualHttpSecurity a WSDualHttpSecurityMode.

NetTcpBinding

V kódu použijte NetTcpBinding třídu; v konfiguraci použijte <netTcpBinding>.

Tato vazba je optimalizovaná pro komunikaci mezi počítači. Ve výchozím nastavení má následující vlastnosti:

  • Implementuje zabezpečení vrstvy přenosu.

  • Využívá zabezpečení Windows pro zabezpečení přenosu a ověřování.

  • Používá protokol TCP pro přenos.

  • Implementuje kódování binární zprávy.

  • Implementuje zasílání zpráv WS-Reliable.

Mezi možnosti patří:

  • Zabezpečení vrstvy zpráv (pomocí WS-Security).

  • Zabezpečení přenosu pomocí přihlašovacích údajů zpráv – důvěrnost a integrita poskytované protokolem TLS (Transport Layer Security) přes protokol TCP a přihlašovací údaje pro autorizaci poskytované ws-Security.

Další informace naleznete v tématu NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcp a MessageCredentialType.

NetNamedPipeBinding

V kódu použijte NetNamedPipeBinding třídu; v konfiguraci použijte <netNamedPipeBinding>.

Tato vazba je optimalizovaná pro komunikaci mezi procesy (obvykle na stejném počítači). Ve výchozím nastavení má tato vazba následující charakteristiky:

  • Používá zabezpečení přenosu pro přenos zpráv a jejich ověřování.

  • Používá pojmenované kanály pro doručování zpráv.

  • Implementuje kódování binární zprávy.

  • Šifrování a podepisování zpráv

Mezi možnosti patří:

  • Ověřování pomocí zabezpečení systému Windows.

Další informace najdete v tématech NetNamedPipeSecurity, NetNamedPipeSecurityMode a NamedPipeTransportSecurity.

MsmqIntegrationBinding

V kódu použijte MsmqIntegrationBinding třídu; v konfiguraci použijte <msmqIntegrationBinding>.

Tato vazba je optimalizovaná pro vytváření klientů a služeb WCF, které spolupracují s koncovými body služby Microsoft Message Queuing (MSMQ), které nejsou WCF.

Tato vazba ve výchozím nastavení používá zabezpečení přenosu a poskytuje následující vlastnosti zabezpečení:

  • Zabezpečení lze vypnout (Bez zabezpečení).

  • Zabezpečení přenosu MSMQ (přeprava).

Pro více informací se podívejte na NetMsmqSecurity a NetMsmqSecurityMode.

NetMsmqBinding

V kódu použijte NetMsmqBinding třídu; v konfiguraci použijte <netMsmqBinding>.

Tato vazba je určena k použití při vytváření služeb WCF, které vyžadují podporu zpráv ve frontě MSMQ.

Tato vazba ve výchozím nastavení používá zabezpečení přenosu a poskytuje následující vlastnosti zabezpečení:

  • Zabezpečení lze vypnout (Bez zabezpečení).

  • Zabezpečení přenosu MSMQ (přeprava).

  • Zabezpečení zpráv založené na protokolu SOAP (Message).

  • Souběžné zabezpečení přenosu a zpráv (obojí).

  • Podporované typy přihlašovacích údajů klienta: None, Windows, UserName, Certificate, IssuedToken.

Přihlašovací Certificate údaje se podporují pouze v případě, že je režim zabezpečení nastavený na Both nebo Message.

Pro více informací se podívejte na MessageSecurityOverMsmq a MsmqTransportSecurity.

WSFederationHttpBinding

V kódu použijte WSFederationHttpBinding třídu; v konfiguraci použijte <wsFederationHttpBinding>.

Ve výchozím nastavení tato vazba používá WS-Security (zabezpečení vrstvy zpráv).

Další informace naleznete v tématu FederaceWSFederationHttpSecurity a WSFederationHttpSecurityMode.

Vlastní vazby

Pokud žádná ze systémových vazeb nesplňuje požadavky, můžete vytvořit vlastní vazbu s vlastním prvkem vazby zabezpečení. Další informace naleznete v části Možnosti zabezpečení s vlastními vazbami.

Možnosti vazby

Následující tabulka shrnuje funkce nabízené v nastavení režimu zabezpečení, to znamená, že uvádí funkce, které jsou k dispozici, když je režim zabezpečení nastaven na Transport, Messagenebo TransportWithMessageCredential. Tato tabulka vám pomůže najít funkce zabezpečení, které vaše aplikace vyžaduje.

Nastavení Vlastnosti
Přeprava Ověřování serveru

Ověřování klientů

Zabezpečení typu point-to-point

Interoperabilita

Hardwarová akcelerace

Vysoká propustnost

Zabezpečený firewall

Aplikace s vysokou latencí

Opětovné šifrování napříč několika skoky
Zpráva Ověřování serveru

Ověřování klientů

Komplexní zabezpečení

Interoperabilita

Bohaté nároky

Federace

Vícefaktorové ověřování

Vlastní tokeny

Služba notáře nebo časového razítka

Aplikace s vysokou latencí

Trvalost podpisů zpráv
TransportWithMessageCredential Ověřování serveru

Ověřování klientů

Zabezpečení typu point-to-point

Interoperabilita

Hardwarová akcelerace

Vysoká propustnost

Nároky bohatého klienta

Federace

Vícefaktorové ověřování

Vlastní tokeny

Zabezpečený firewall

Aplikace s vysokou latencí

Opětovné šifrování napříč několika skoky

Následující tabulka uvádí vazby, které podporují různá nastavení režimu. Vyberte vazbu z tabulky, která se má použít k vytvoření koncového bodu služby.

Závazný Podpora režimu přenosu Podpora režimu zpráv Podpora TransportWithMessageCredential
BasicHttpBinding Ano Ano Ano
WSHttpBinding Ano Ano Ano
WSDualHttpBinding Ne Ano Ne
NetTcpBinding Ano Ano Ano
NetNamedPipeBinding Ano Ne Ne
NetMsmqBinding Ano Ano Ne
MsmqIntegrationBinding Ano Ne Ne
wsFederationHttpBinding Ne Ano Ano

Přeprava přihlašovacích údajů v rámci vazeb

Následující tabulka uvádí typy přihlašovacích údajů klienta, které jsou k dispozici při použití buď BasicHttpBinding nebo WSHttpBinding v režimu zabezpečení přenosu.

Typ Popis
Žádné Určuje, že klient nemusí prezentovat žádné přihlašovací údaje. To se překládá jako anonymní klient.
Basic Základní ověřování. Další informace naleznete v dokumentu RFC 2617 – OVĚŘOVÁNÍ HTTP: Základní ověřování a ověřování hodnotou hash, k dispozici na adrese https://go.microsoft.com/fwlink/?LinkId=84023.
Přehled Ověřování pomocí digestu. Další informace naleznete v dokumentu RFC 2617 – OVĚŘOVÁNÍ HTTP: Základní ověřování a ověřování hodnotou hash, k dispozici na adrese https://go.microsoft.com/fwlink/?LinkId=84023.
protokol NTLM Ověřovací systém NT LAN Manager (NTLM).
Windows Ověřování systému Windows.
Certifikát Ověřování prováděné pomocí certifikátu
Vystavenýtoken Umožňuje službě vyžadovat ověření klienta pomocí tokenu vydaného službou tokenů zabezpečení nebo CardSpace. Další informace najdete v tématu Federace a vystavené tokeny.

Klientské přihlašovací údaje ve vazbách

Následující tabulka uvádí typy přihlašovacích údajů klienta, které jsou k dispozici při použití vazby v režimu zabezpečení zprávy.

Typ Popis
Žádné Umožňuje službě komunikovat s anonymními klienty.
Windows Umožňuje, aby se výměny zpráv SOAP provedly v rámci ověřeného kontextu přihlašovacích údajů systému Windows.
Uživatelské jméno Umožňuje službě vyžadovat ověření klienta pomocí přihlašovacích údajů uživatelského jména. Všimněte si, že pokud je režim zabezpečení nastaven na TransportWithMessageCredential, WCF nepodporuje odesílání hesla digest nebo odvození klíčů pomocí hesla a použití takových klíčů pro zabezpečení režimu zpráv. Wcf proto vynucuje zabezpečení přenosu při použití přihlašovacích údajů uživatelského jména.
Certifikát Umožňuje službě vyžadovat ověření klienta pomocí certifikátu.
Vystavenýtoken Umožňuje službě použít službu tokenů zabezpečení k poskytnutí vlastního tokenu.

Viz také