INFO: Zabezpečit ověřování pomocí formulářů pomocí protokol SSL (Secure Sockets Layer) (SSL)

Chyba č: 2833 (Údržba obsahu)Tento článek odkazuje na následující obor názvů knihovny tříd rozhraní.NET Framework společnosti Microsoft:
  • System.Web.Security

Souhrn

Ve výchozím nastavení není soubor cookie obsahující ověřovací lístek formulářů zabezpečena při použití ověřování pomocí formulářů v aplikaci Microsoft ASP.NET webové aplikace. Tento článek popisuje, jak pomoci ověřování zabezpečené formulářů pomocí protokol SSL (Secure Sockets Layer) (SSL). Tento článek také popisuje možnosti implementace dalších a alternativní způsoby pomoci ověřování zabezpečené formulářů.

Další informace

Ověřování pomocí formulářů je ověřovací služba ASP.NET, která umožňuje aplikacím poskytnout své vlastní přihlašovací rozhraní a provést ověření vlastní pověření. S ověřováním pomocí formulářů technologie ASP.NET ověřuje uživatele a poté přesměrovává neověřené uživatele na přihlašovací stránku, která je určena pomocí atributu loginUrl elementu < forms > v souboru Web.config. Při zadání pověření prostřednictvím přihlašovacího formuláře, aplikace požadavek ověří a potom systém vydá FormsAuthenticationTicket třídy ve formě souboru cookie. FormsAuthenticationTicket třídy je předán jako soubor cookie v odpovědi na následné webové požadavky z ověřeného klienta.

Ačkoli ověřování pomocí formulářů poskytuje flexibilní způsob ověřování, je nutné pečlivě zvážit některé důležité problémy při zabezpečení aplikace technologie ASP.NET. Je nutné chránit počáteční přihlašovací pověření pomocí protokolu SSL, protože pověření jsou odesílána na server jako prostý text. Také musíte pomoci chránit soubor cookie obsahující ověřovací lístek formulářů. Chcete-li to provést, použijte protokol SSL k ochraně lístek na všech stránkách. Můžete také zašifrovat ověřovací lístek nastavením ochrany atribut elementu < forms > všechny nebo šifrování v souboru Web.config a metodu šifrování třídy ověřování pomocí formulářů použít k šifrování lístku. Další informace o metodě šifrovat třídy ověřování pomocí formulářů naleznete v části "pomocí metody šifrování třídy ověřování pomocí formulářů" tohoto článku.

Výhody ověřování pomocí formulářů

  • Ověřování pomocí formulářů podporuje ověřování proti vlastním úložišti, jako je například databáze serveru Microsoft SQL Server nebo adresářové služby Active Directory. Další informace naleznete v tématu "odkazy" části tohoto článku.
  • Ověřování pomocí formulářů podporuje ověřování založené na rolích s vyhledávací roli z úložiště dat.
  • Ověřování pomocí formulářů je plynule integrováno webové uživatelské rozhraní. Další informace naleznete v tématu "odkazy" části tohoto článku.
  • Technologie ASP.NET poskytuje většinu infrastruktury. Relativně málo kód je vyžadován ve srovnání s verzí Microsoft Active Server Pages 3.0 a starší.
  • Ověřování pomocí formulářů technologie ASP.NET nevyžaduje, aby aplikace Microsoft Internet Explorer. Ověřování pomocí formulářů podporuje klienty široký rozsah webové prohlížeče.

Jak usnadňující vytváření formulářů ověřování zabezpečení

  • Použijte protokol SSL pro všechny stránky.
  • Použijte metodu šifrování třídy ověřování pomocí formulářů .

Použití protokolu SSL pro všechny stránky

Pomoci zajistit, aby že ověřovací soubor cookie zůstane zabezpečený v rámci relace prohlížeče klienta pomocí šifrování SSL umožňuje bezpečný zabezpečený přístup na všechny stránky. Pomocí šifrování SSL v aplikaci můžete zabránit všem porušili ověřovací soubor cookie a sděloval další důležité informace.

Nastavte hodnotu vlastnosti requireSSL na hodnotu true v souboru Web.config. To umístí SSL na místě v případě, že soubor cookie je odeslán zpět do prohlížeče. Pokud nenastavíte hodnotu requireSSL na hodnotu true, formulář vyvolá výjimku nebo pomocí souboru cookie ověřování.

Při requireSSL nastavena na hodnotu true, šifrované připojení chrání pověření uživatele a nastaví technologie ASP.NET vlastnost HttpCookie.Secure ověřovací soubor cookie. Kompatibilní prohlížeč nevrátí soubor cookie, dokud připojení používá protokol SSL. Následující příklad ukazuje, jak to provést v souboru Web.config aplikace:
 <configuration> <system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH"
loginUrl="login.aspx"
protection="All"
timeout="20"
requireSSL="true">
</forms>
</authentication >
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Následující příklad provede akci, pokud soubor cookie je nastaven k bezpečnému přenosu:

Kód jazyka Visual C# .NET
 string cookieName = FormsAuthentication.FormsCookieName.ToString();  HttpCookie MyCookie = Context.Request.Cookies[cookieName];

if (MyCookie.Secure)
{
Response.Write("The cookie is secure with SSL.");
// Add other required code here.
}


Kód jazyka Visual Basic .NET
   Dim cookieName As String = FormsAuthentication.FormsCookieName.ToString   Dim MyCookie As HttpCookie = Context.Request.Cookies(cookieName)
If MyCookie.Secure Then
Response.Write("The cookie is secure with SSL.")
' Add other required code here.
End If

Použití metodu ověřování pomocí formulářů třídy šifrování

Pokud používáte pouze protokol SSL na webové stránce počáteční přihlašovací k šifrování pověření, které jsou předány k ověření, ujistěte se, že je chráněn ověřovací lístek, který je obsažen v souboru cookie. Lístky ověřování formulářů musí být chráněny, protože soubor cookie je předán mezi klientem a serverem při každé následné webové žádosti. K zašifrování lístek ověřování pomocí formulářů, konfigurovat ochranu atribut elementu < forms > a použít metodu šifrování třídy ověřování pomocí formulářů k šifrování lístku.
<authentication mode="Forms">  <forms name="MyAppFormsAuth"
loginUrl="login.aspx"
protection="All"
timeout="20"
path="/" >
</forms>
</authentication>
Vzhledem k tomu, že Ochrana je atribut nastaven na všechny, když aplikace zavolá metodu FormsAuthentication.Encrypt , lístek musí být ověřeny a být zašifrován.

Při vytváření formulářů ověřovací lístek, volání metody šifrování . V obslužné rutině události přihlášení aplikace obvykle vytvoříte lístek.

Kód jazyka Visual C# .NET
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
Kód jazyka Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Odkazy

Informace o ověřování pomocí formulářů a ASP.NET naleznete na následujících webech společnosti Microsoft:
Ověřování v technologii ASP.NET: pokyny k zabezpečení .NET
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Zprostředkovatel ověřování pomocí formulářů
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Další informace o použití protokolu SSL k zabezpečení ověřování pomocí formulářů klepněte na následující čísla článku zobrazení v článcích znalostní báze Microsoft Knowledge Base:
306590 INFO: Přehled zabezpečení technologie ASP.NET
315588 jak: Secure aplikace ASP.NET pomocí certifikátů na straně klienta
313116 PRB: Forms ověřování požadavků není přesměrováni loginUrl stránky

324069 jak: nastavení služby HTTPS služby IIS

326340 AD - postup: ověřování služby Active Directory pomocí ověřování pomocí formulářů a Visual Basic .NET

301240 SQL - jak: implementovat ověřování na základě formulářů ve vaší aplikaci technologie ASP.NET pomocí C# .NET

308157 SQL - jak: implementovat ověřování na základě formulářů ve vaší aplikaci technologie ASP.NET pomocí jazyka Visual Basic .NET

311495 jak: implementovat založené na rolích zabezpečení pomocí ověřování na základě formulářů ve vaší aplikaci technologie ASP.NET pomocí Visual C# .NET

306238 jak: implementovat založené na rolích zabezpečení pomocí ověřování na základě formulářů ve vaší aplikaci technologie ASP.NET pomocí jazyka Visual Basic .NET

312906 jak: vytvořit klíče pomocí Visual C# .NET pro použití při ověřování pomocí formulářů

313091 jak: vytvoření klíče pomocí jazyka Visual Basic .NET pro použití při ověřování pomocí formulářů

Vlastnosti

ID článku: 813829 - Poslední kontrola: 16. 1. 2017 - Revize: 2

Váš názor