Sdílet prostřednictvím


Zabezpečení služby IIS a rozhraní .NET Framework

K zabezpečení služeb rozhraní .NET Framework 4 hostovaných ve službě WAS (Aktivační služba procesů systému Windows) používá technologie Windows Server AppFabric spolehlivé funkce zabezpečení služby IIS a rozhraní .NET Framework verze 4. Chcete-li snadněji porozumět tomu, jak správně nakonfigurovat zabezpečení klient-služba v technologii AppFabric, je třeba pochopit princip možností zabezpečení ve službě IIS a rozhraní .NET Framework.

Obecně platí, že z mnoha vrstev možností zabezpečení, které jsou k dispozici, byste měli využívat ty, jež jsou pro vaše nasazení nejvhodnější. Každá vrstva zabezpečení poskytuje možnost zabezpečení konkrétních prostředků. Nástroje ve službě IIS například obecně poskytují prostředky pro zabezpečení artefaktů služby IIS jako jsou weby a aplikace, nastavení zabezpečení rozhraní .NET Framework 4 lze pak použít pro koncepty služby WCF nebo WF, například pro služby, koncové body a operace.

Další informace o zabezpečení naleznete v tématu Windows Communication Foundation Security (Zabezpečení služby Windows Communication Foundation) (https://go.microsoft.com/fwlink/?LinkId=183157) a IIS Security (Zabezpečení služby IIS) (https://go.microsoft.com/fwlink/?LinkId=183159) (stránky mohou být v angličtině).

Zabezpečení služby IIS a technologie AppFabric

Služba IIS ovlivňuje zabezpečení aplikace ze strany volajícího klienta a také při přístupu služby rozhraní .NET Framework k úložištím dat monitorování a trvalosti. Služba IIS ovlivňuje zabezpečení technologie AppFabric v následujících oblastech:

  • IIS_IUSRS: Skupina zabezpečení systému Windows, která slouží ke správě přístupu za běhu k souborům a složkám ve výchozí instalaci služby IIS.

    securityZabezpečení Poznámka
    Nezaměňujte skupinu zabezpečení systému Windows IIS_IUSRS s přihlašovacím názvem IIS_IUSRS systému SQL Server. Jedná se o související, avšak oddělené entity.

  • Identita fondu aplikací: Služba IIS dynamicky vkládá všechny identity fondu aplikací do skupiny IIS_IUSRS při běhu. Této skupině zabezpečení je uděleno oprávnění k přístupu k nezbytným úložištím dat, zejména k úložišti dat trvalosti. Další informace naleznete v tématu Zabezpečení systému SQL Server.

Zabezpečení rozhraní .NET Framework pro technologii AppFabric

Hovoříme-li o zabezpečení služeb rozhraní .NET Framework konfigurovaných v technologii AppFabric, odkazujeme ve skutečnosti na službu WCF. Služba WCF definuje přenosový protokol, který slouží ke komunikaci mezi klientem služby WCF a službou (WCF nebo WF) rozhraní .NET Framework. Jedná se o součást technologie .NET Framework, která poskytuje jednotný programovací model pro rychlé vytváření aplikací orientovaných na služby, jež komunikují v rámci webu a podniku. Kromě toho, že se služba WCF integruje se stávajícími infrastrukturami zabezpečení, pomocí zabezpečených zpráv protokolu SOAP rozšiřuje také zabezpečení na rámec domén systému Windows. Další informace naleznete v tématu Windows Communication Foundation Security (Zabezpečení služby Windows Communication Foundation) (https://go.microsoft.com/fwlink/?LinkId=183157) a Security Architecture (Architektura zabezpečení) (https://go.microsoft.com/fwlink/?LinkId=183160) (stránky mohou být v angličtině).

Kombinace zabezpečení služby IIS a rozhraní .NET Framework

Pro zachování integrity aplikace je nezbytné zajistit, aby zpráva odeslaná do služby nebyla při přenosu zobrazena nebo změněna. Toho můžete dosáhnout šifrováním a podpisem. Přenos zpráv je však skutečně zabezpečen, pouze pokud můžete s naprostou jistotou ověřit také identitu volající klientské aplikace. U technologie AppFabric je důležité porozumět tomu, jak služba IIS a rozhraní WCF spolupracují na zajištění tohoto postupu.

Další informace o vzorech a postupech týkajících se zabezpečení webových služeb naleznete v tématu Patterns & Practices: Improving Web Services Security Guide (Vzory a postupy: Průvodce vylepšením zabezpečení webových služeb) (https://go.microsoft.com/fwlink/?LinkId=183161) (stránka může být v angličtině).

Ověřování služba IIS v technologii AppFabric

Mechanismy zabezpečení přenosu služby WCF závisí v systému Windows na použité vazbě a následném přenosu. Jestliže například používáte třídu WSHttpBinding, je přenos realizován prostřednictvím protokolu HTTP a primární mechanismus pro zabezpečení přenosu je SSL (Secure Sockets Layer) přes HTTP, který je běžně znám jako protokol HTTPS. Pro zabezpečení zpráv na úrovni zprávy je využívána specifikace WS-Security. To zahrnuje rozšíření na zasílání zpráv protokolu SOAP, aby bylo možné zajistit utajení, integritu a ověřování na úrovni zpráv SOAP (namísto na úrovni přenosu).

Režimy hostovaných služeb

Hostované služby mohou být spuštěny ve dvou režimech: v režimu smíšených přenosů nebo v režimu kompatibility s rozhraním ASP.NET. Režim je řízen konfiguračním příznakem aspNetCompatibilityEnabled na úrovni aplikace. Tento příznak lze také získat při běhu ze statické vlastnosti ServiceHostingEnvironment.AspNetCompatibilityEnabled. Příznak aspNetCompatibilityEnabled je ve výchozím nastavení nastaven na hodnotu false, a proto se služby spouští v režimu smíšených přenosů, dokud explicitně toto nastavení nezměníte.

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false"/>
</system.serviceModel>

Režim smíšených přenosů

V režimu smíšených přenosů modul HTTP zachytí požadavek v prvotní fázi přenosu: BeginRequest. Jakmile požadavek dorazí, nastaví modul HTTP vlastnost HttpContext.Current na hodnotu null a vrátí zpět zosobnění, pokud je vlákno zosobněno. Vzhledem k tomu, že je požadavek klienta zachycen v této počáteční fázi, jsou další funkce protokolu HTTP automaticky vypnuty. Při spuštění v režimu smíšených přenosů tedy služby nemají přístup k následujícím funkcí protokolu HTTP v rozhraní ASP.NET:

  • HttpContext.Current: V tomto režimu je vždy nastavena na hodnotu null. Služba WCF poskytuje protějšek této funkce – OperationContext.Current.

  • Autorizace souboru nebo adresy URL: Tato funkce autorizace přenosové vrstvy se běžně povoluje prostřednictvím oddílu <system.web/authorization> v souboru Web.config služeb ASMX. Ve službě WCF ve smíšeném režimu je autorizace přenosu zakázána. Jedinou možností, jak autorizovat soubor nebo adresu URL, je použití autorizace na úrovni zprávy, která je součástí služby WCF.

  • Zosobnění: Zosobnění umožňuje službě při provádění akcí na serveru jednat jako klient. Funkce zosobnění v rozhraní ASP.NET se běžně povoluje prostřednictvím oddílu <system.web/identity> v souboru Web.config služeb ASMX. V přenosové vrstvě služby WCF ve smíšeném režimu není k dispozici.

  • Stav relace: Stav relace rozhraní ASP.NET není ve smíšením režimu podporován. Služba WCF má svoji vlastní spolehlivou implementaci relace, která poskytuje flexibilní správu stavu relace. Největší problém pro službu WCF představuje skutečnost, že stav relace nepřetrvá recyklaci aplikací a nefunguje ve webových zahradách či farmách. Důvodem je to, že na rozdíl od služby stavu rozhraní ASP.NET, která je zakázána, neexistuje mechanismus pro sdílení stavu mezi aplikacemi nebo procesy.

  • Další funkce protokolu HTTP: Další funkce protokolu HTTP využívají funkci HttpContext.Current a nejsou ve smíšeném režimu podporovány. Nelze například očekávat správný výsledek z vlastnosti ConfigurationManager.AppSettings. Funkce globalizace prostřednictvím oddílu <system.web/globalization> není k dispozici.

V režimu smíšených přenosů je ve volání služby WCF do služeb rozhraní .NET Framework ignorováno ověřování služby IIS. Tím je zajištěno, že zabezpečení služby WCF zůstane primárním mechanismem ověřování a zabezpečení přenosu zpráv mezi klientem služby WCF a službou rozhraní .NET Framework. V režimu smíšených přenosů jsou všechny přenosy zpracovávány stejným způsobem. Služba může obsahovat více koncových bodů služby WCF, které mohou naslouchat na stejném či různých přenosech, například HTTP, net.tcp, net.pipe, net.msmq apod. Hostované služby, spuštěné v režimu smíšených přenosů, však stále využívají rozhraní ASP.NET a službu IIS pro poskytování hostitelského prostředí, konfiguraci aplikace a nasazení.

Režim kompatibility s rozhraním ASP.NET

Chcete-li používat ověřování služby IIS v aplikaci, jejímž hostitelem je služba WAS (a to včetně všech aplikací hostovaných v technologii AppFabric), je třeba použít režim kompatibility s rozhraním ASP a zabezpečení přenosu služby WCF. Pouze prostřednictvím režimu kompatibility s rozhraním ASP můžete také využít výhod následujících funkcí zabezpečení služby IIS:

  • Řídit uživatele systému Windows a členy určitých skupiny systému Windows, kteří mají povoleno připojení k hostitelským službám webu nebo aplikace pomocí Správce služby IIS.

  • Převést web na virtuální adresář služby IIS a potom dvěma způsoby nakonfigurovat nastavení zabezpečení na fyzickou cestu k virtuálnímu adresáři. Předávací ověřování sděluje službě IIS, aby při přístupu k fyzické cestě virtuálního adresáře předala do systému souborů Windows pověření ověřeného uživatele. Můžete také určit konkrétní identitu uživatele pro proces, který je hostitelem služeb rozhraní .NET Framework, jež bude mít přístup k veškerému obsahu v zadané fyzické cestě.

  • Pro řízení zabezpečení volání přicházejících do služeb přidružených k webu vybrat vhodnou metodu ověřování služby IIS (anonymní, základní, formuláře, ověřování hodnotou hash, ověřování systému Windows nebo zosobnění formulářů v rozhraní ASP.NET).

Bez ohledu na to, zda je režim kompatibility s rozhraním ASP povolen, můžete využít výhod následujících funkcí zabezpečení služby IIS:

  • Konfigurace nastavení SSL na použití 64 nebo 128bitového šifrování a konfigurace zpracování klientských certifikátů u příchozích žádostí.

  • Vytvoření autorizačních pravidel pro povolení nebo odepření přístupu uživatele k webům či aplikacím.

  • Použití možností protokolování služby IIS pro vytvoření protokolu auditování zabezpečení u příchozích žádostí.

  • Úprava připojovacích řetězců zabezpečení v databázích monitorování a trvalosti.

  • Správa nastavení vazeb u klientů volajících do služeb.

  • Konfigurace oprávnění pro spouštění na úrovni souboru (úplné řízení, čtení a spouštění, výpis obsahu souboru, zápis a další oprávnění) na webu nebo v aplikacích služeb, které web obsahuje.

  • Změna výchozí identity síťové služby vlastního fondu aplikací na konkrétní identitu, pod kterou se bude moci spouštět. Pokud používáte integrované zabezpečení v systému SQL Server, slouží tato identita k volání do systému SQL Server.

Další informace naleznete v tématu WCF Services and ASP.NET (Služby WCF a rozhraní ASP.NET) (https://go.microsoft.com/fwlink/?LinkId=183163) (stránka může být v angličtině).

Další pokyny k ověřování

Povolení ověřování služby IIS pro aplikaci:

  • Použijte režim kompatibility s rozhraním ASP.

  • Použijte vazbu služby WCF založenou na protokolu HTTP, která podporuje režim zabezpečení přenosu (basicHttpBinding, wsHttpBinding a wsFederationHttpBinding).

Po splnění těchto požadavků nakonfigurujte službu IIS a hostovanou službu rozhraní .NET Framework na použití kompatibilních nastavení zabezpečení služby IIS a služby WCF. Další nastavení zabezpečení aplikace nakonfigurujte tak, aby odpovídala zabezpečení a vazbám všech jejích služeb. Zadáte-li jiné schéma, dojde k chybě aktivace služby WCF. Režimy zabezpečení ve službě WCF (v tomto případě se jedná o režim zabezpečení přenosu) jsou zadány v elementech vazby. Musejí podporovat ověřování, a proto se ujistěte, že vybraná nastavení zabezpečení služby WCF jsou kompatibilní s nastavením služby IIS. Při vytváření vazby se přenos namapuje k nakonfigurovanému režimu ověřování služby WCF. Služba určuje režim ověřování prostřednictvím konfigurace vazby a nastavení v konfiguračním souboru klienta služby WCF tomu musí odpovídat. Klient musí být nakonfigurován na poskytování správného tvaru pověření klienta, aby bylo možné zajistit podporu schématu ověřování, které poskytuje služba. Vzhledem k tomu, že technologie AppFabric neposkytuje element uživatelského rozhraní pro provádění změn tohoto typu, je třeba tuto operaci provést ručně v příslušném souboru Web.config.

securityZabezpečení Poznámka
wsDualHttpBinding podporuje pouze zabezpečení založené na zprávě, a proto je nelze využívat v případě, že ve svých službách používáte ověřování služby IIS.

  2011-12-05