Sdílet prostřednictvím


Zabezpečení distribuované aplikace

Zabezpečení wcf (Windows Communication Foundation) je rozdělené do tří hlavních funkčních oblastí: zabezpečení přenosu, řízení přístupu a auditování. Zabezpečení přenosu zajišťuje integritu, důvěrnost a ověřování. Zabezpečení přenosu je poskytováno jedním z následujících způsobů: zabezpečení přenosu, zabezpečení zpráv nebo TransportWithMessageCredential.

Přehled zabezpečení zpráv WCF najdete v tématu Přehled zabezpečení. Další informace o ostatních dvou částech zabezpečení WCF naleznete v tématu Autorizace a auditování.

Scénáře zabezpečení přenosu

Mezi běžné scénáře, které využívají zabezpečení přenosu WCF, patří:

  • Zabezpečený přenos pomocí Windows. Klient a služba WCF se nasazují v doméně Windows (nebo doménové struktuře Windows). Zprávy obsahují osobní údaje, takže požadavky zahrnují vzájemné ověřování klienta a služby, integritu zpráv a důvěrnost zpráv. Kromě toho je vyžadován důkaz, že došlo k určité transakci, například příjemce zprávy by měl zaznamenat informace o podpisu.

  • Zabezpečený přenos pomocí UserName a HTTPS. Aby bylo možné pracovat přes internet, je potřeba vyvinout klienta a službu WCF. Přihlašovací údaje klienta se ověřují v databázi párů uživatelských jmen a hesel. Služba se nasadí na adresu HTTPS pomocí důvěryhodného certifikátu SSL (Secure Sockets Layer). Vzhledem k tomu, že zprávy putují přes internet, klient a služba musí být vzájemně ověřeny a během přenosu musí být zachována důvěrnost a integrita zpráv.

  • Zabezpečený přenos pomocí certifikátů. Pro práci přes veřejný internet je potřeba vyvinout klienta a službu WCF. Klient i služba mají certifikáty, které je možné použít k zabezpečení zpráv. Klient a služba používají internet ke vzájemné komunikaci a k provádění vysoce hodnotných transakcí, které vyžadují integritu zpráv, důvěrnost a vzájemné ověřování.

Integrita, důvěrnost a ověřování

Tři funkce – integrita, důvěrnost a ověřování – se nazývají zabezpečení přenosu. Zabezpečení přenosu poskytuje funkce, které pomáhají zmírnit hrozby distribuované aplikace. Následující tabulka stručně popisuje tři funkce, které tvoří zabezpečení přenosu.

Function Popis
Integrita Integrita je zárukou , že jsou data úplná a přesná, zejména po procházení z jednoho bodu do druhého a možná i čtení mnoha aktéry. Integrita musí být zachována, aby se zabránilo manipulaci s daty a obvykle se dosahuje digitálním podepisováním zprávy.
Důvěrnost Důvěrnost je zárukou, že zprávu nečte nikdo jiný než zamýšlený čtenář. Například číslo platební karty musí být důvěrné, protože je odesláno přes internet. Důvěrnost je často poskytována šifrováním dat pomocí schématu veřejného klíče nebo privátního klíče.
Ověřování Ověřování je ověření deklarované identity. Například při použití bankovního účtu je nezbytné, aby pouze skutečný vlastník účtu mohl vybírat finanční prostředky. Ověřování je možné poskytnout různými způsoby. Jednou z běžných metod je systém uživatele a hesla. Druhou možností je použití certifikátu X.509, který poskytuje třetí strana.

Režimy zabezpečení

WCF má několik režimů zabezpečení přenosu, které jsou popsány v následující tabulce.

Režim Popis
Nic V přenosové vrstvě ani ve vrstvě zpráv není k dispozici žádné zabezpečení. Žádný z předdefinovaných vazeb ve výchozím nastavení nepoužívá tento režim s výjimkou elementu <basicHttpBinding> nebo při použití kódu BasicHttpBinding třídy.
Přeprava Používá zabezpečený přenos, jako je HTTPS, pro integritu, důvěrnost a vzájemné ověřování.
Zpráva Používá zabezpečení zpráv SOAP pro integritu, důvěrnost a vzájemné ověřování. Zprávy SOAP jsou zabezpečeny podle standardů WS-Security.
Smíšený režim Používá zabezpečení přenosu pro integritu, důvěrnost a ověřování serveru. Používá zabezpečení zpráv (WS-Security a další standardy) pro ověřování klientů.

(Tento výčet pro tento režim je TransportWithMessageCredential.)
Oba Provádí ochranu a ověřování na obou úrovních. Tento režim je k dispozici pouze v elementu <netMsmqBinding> .

Přihlašovací údaje a zabezpečení přenosu

Přihlašovací údaje jsou data, která se zobrazují za účelem vytvoření deklarované identity nebo schopností. Prezentace přihlašovacích údajů zahrnuje prezentaci dat i důkaz o vlastnictví dat. WCF podporuje různé typy přihlašovacích údajů na úrovni zabezpečení přenosu i zpráv. Můžete zadat typ přihlašovacích údajů pro vazbu WCF.

V mnoha zemích nebo oblastech představuje řidičská licence příklad přihlašovacích údajů. Licence obsahuje data představující identitu a možnosti. Obsahuje doklad o vlastnictví ve formě obrazu vlastníka. Licence je vydána důvěryhodnou autoritou, obvykle vládním licenčním oddělením. Licence je zapečetěná a může obsahovat hologram, který ukazuje, že nebyla manipulována nebo padělaná.

Představte si například dva typy přihlašovacích údajů podporovaných ve WCF: uživatelské jméno a přihlašovací údaje certifikátu X.509.

Pro přihlašovací údaje uživatelského jména představuje uživatelské jméno deklarovanou identitu a heslo představuje doklad o vlastnictví. Důvěryhodná autorita v tomto případě je systém, který ověřuje uživatelské jméno a heslo.

V přihlašovacích údajích certifikátu je možné použít název subjektu, alternativní název subjektu nebo konkrétní pole v rámci certifikátu k reprezentaci deklarované identity nebo schopností. Doklad o vlastnictví dat v přihlašovacích údajích se vytvoří pomocí přidruženého privátního klíče k vygenerování podpisu.

Další informace o programování zabezpečení přenosu a zadání přihlašovacích údajů naleznete v tématu Vazby a zabezpečení a chování zabezpečení.

Typy přihlašovacích údajů přenosového klienta

Následující tabulka uvádí možné hodnoty použité při vytváření aplikace, která používá zabezpečení přenosu. Tyto hodnoty můžete použít v nastavení kódu nebo vazby.

Nastavení Popis
Nic Určuje, že klient nemusí prezentovat žádné přihlašovací údaje. To se přeloží na anonymního klienta.
Basic Určuje základní ověřování. Další informace najdete v tématu RFC2617 "Ověřování HTTP: Základní ověřování a ověřování hodnotou hash".
Digest Určuje ověřování hodnotou hash. Další informace najdete v tématu RFC2617 "Ověřování HTTP: Základní ověřování a ověřování hodnotou hash".
Ntlm Určuje ověřování systému Windows pomocí vyjednávání SSPI v doméně Windows.

Výsledkem vyjednávání SSPI je použití protokolu Kerberos nebo NT LanMan (NTLM).
Windows Určuje ověřování systému Windows pomocí SSPI v doméně Windows. SSPI vybere buď protokol Kerberos, nebo NTLM jako ověřovací službu.

SSPI nejprve zkouší protokol Kerberos; pokud se to nezdaří, použije protokol NTLM.
Certifikát Provádí ověřování klientů pomocí certifikátu, obvykle X.509.

Typy přihlašovacích údajů klienta zpráv

Následující tabulka uvádí možné hodnoty použité při vytváření aplikace, která používá zabezpečení zpráv. Tyto hodnoty můžete použít v nastavení kódu nebo vazby.

Nastavení Popis
Nic Umožňuje službě komunikovat s anonymními klienty.
Windows Umožňuje výměnu zpráv PROTOKOLU SOAP v rámci ověřeného kontextu přihlašovacích údajů systému Windows. Používá mechanismus vyjednávání SSPI k výběru z protokolu Kerberos nebo NTLM jako ověřovací služby.
Username Umožňuje službě vyžadovat ověření klienta pomocí přihlašovacích údajů uživatelského jména. Wcf neumožňuje žádné kryptografické operace s uživatelským jménem, jako je generování podpisu nebo šifrování dat. 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.
CardSpace Umožňuje službě vyžadovat ověření klienta pomocí CardSpace.

Programovací přihlašovací údaje

Pro každý typ přihlašovacích údajů klienta umožňuje programovací model WCF zadat hodnoty přihlašovacích údajů a validátory přihlašovacích údajů pomocí chování služby a chování kanálu.

Zabezpečení WCF má dva typy přihlašovacích údajů: chování přihlašovacích údajů služby a chování přihlašovacích údajů kanálu. Chování přihlašovacích údajů ve WCF určuje skutečná data, konkrétně přihlašovací údaje používané ke splnění požadavků na zabezpečení vyjádřených prostřednictvím vazeb. Ve WCF je klientská třída komponentou za běhu, která převádí mezi vyvoláním operace a zprávami. Všichni klienti dědí z ClientBase<TChannel> třídy. Vlastnost ClientCredentials základní třídy umožňuje zadat různé hodnoty přihlašovacích údajů klienta.

V WCF jsou chování služby atributy použité na třídu implementují kontrakt služby (rozhraní) programově řídit službu. Třída ServiceCredentials umožňuje zadat certifikáty pro přihlašovací údaje služby a nastavení ověření klienta pro různé typy přihlašovacích údajů klienta.

Model vyjednávání pro zabezpečení zpráv

Režim zabezpečení zpráv umožňuje provádět zabezpečení přenosu tak, aby přihlašovací údaje služby byly nakonfigurovány v klientovi mimo pásmo. Pokud například používáte certifikát uložený v úložišti certifikátů systému Windows, musíte použít nástroj, jako je modul snap-in Konzola mmc (Microsoft Management Console).

Režim zabezpečení zpráv také umožňuje provést přenos zabezpečení, aby se přihlašovací údaje služby vyměňovaly s klientem jako součást počátečního vyjednávání. Chcete-li povolit vyjednávání, nastavte NegotiateServiceCredential vlastnost na truehodnotu .

Viz také