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ávnou vazbu pro potřeby zabezpečení.
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 chování za běhu, která jsou přidružená k zabezpečení 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 naleznete v tématu Systémové 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
rozhraní API má v wsHttpBindingu> protějšek<.
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>.
Tato vazba 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 specifikacihttps://go.microsoft.com/fwlink/?LinkId=38955 WS-I (Web Services Interoperability).
Základní profil zabezpečení definovaný ve WS-I
Ve výchozím nastavení není tato vazba zabezpečená. Je navržený tak, aby interoperabilní 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žba (IIS), jako je základní ověřování, digest a integrované zabezpečení Systému Windows. Další informace naleznete v tématu 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, BasicHttpMessageCredentialTypea 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 ws-Reliable Messaging pro spolehlivost.
Implementuje zabezpečení WS-security pro přenos zabezpečení a ověřování.
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é mimo pásmo v klientovi.
Poskytnutí přihlašovacích údajů služby vyjednaných ze služby v rámci nastavení kanálu
Další informace najdete v tématech 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í Systému Windows pro přenos zabezpečení a ověřování.
Používá protokol TCP pro přenos.
Implementuje kódování binární zprávy.
Implementuje WS-Reliable Messaging.
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 a ověřování zpráv.
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é vzájemně komunikují s koncovými body služby Microsoft Message Queuing (MSMQ).
Tato vazba ve výchozím nastavení používá zabezpečení přenosu a poskytuje následující vlastnosti zabezpečení:
Zabezpečení může být zakázáno (Žádné).
Zabezpečení přenosu MSMQ (Transport).
Další informace najdete v tématech 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í může být zakázáno (Žádné).
Zabezpečení přenosu MSMQ (Transport).
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 hodnotu nebo MessageBoth .
Další informace najdete v tématech 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á zabezpečení 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 najdete v tématu 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
, Message
nebo TransportWithMessageCredential
. Tato tabulka vám pomůže najít funkce zabezpečení, které vaše aplikace vyžaduje.
Nastavení | Funkce |
---|---|
Přeprava | Ověřování serveru Ověřování klientů Zabezpečení typu point-to-point Vzájemná funkční spolupráce Hardwarová akcelerace Vysoká propustnost Zabezpečená brána firewall Aplikace s vysokou latencí Opětovné šifrování napříč několika segmenty směrování |
Zpráva | Ověřování serveru Ověřování klientů Komplexní zabezpečení Vzájemná funkční spolupráce Bohaté deklarace identity 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 Vzájemná funkční spolupráce Hardwarová akcelerace Vysoká propustnost Bohaté deklarace identity klientů Federace Vícefaktorové ověřování Vlastní tokeny Zabezpečená brána firewall Aplikace s vysokou latencí Opětovné šifrování napříč několika segmenty směrování |
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.
Vazba | 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 | No | No |
NetMsmqBinding |
Ano | Ano | Ne |
MsmqIntegrationBinding |
Ano | No | No |
wsFederationHttpBinding |
No | Ano | Yes |
Přenos přihlašovacích údajů ve vazbách
Následující tabulka uvádí typy přihlašovacích údajů klienta, které jsou k dispozici při použití BasicHttpBinding
WSHttpBinding
nebo v režimu zabezpečení přenosu.
Typ | Popis |
---|---|
Nic | Určuje, že klient nemusí prezentovat žádné přihlašovací údaje. To se přeloží na anonymního klienta. |
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. |
Digest | Ověřování hodnotou hash. 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. |
NTLM | Ověřování 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. |
Přihlašovací údaje klienta zprávy v 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 |
---|---|
Nic | 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. |
UserName | 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. |