ASP.NET QuickStart Príručka
Autentifikácia a autorizácia
ASP.NET pracuje v súčinnosti s IIS na zabezpečenie autentifikácie použitím
základnej, digest a windows autentifikácie. ASP.NET podporuje
Microsoft Passport authentication service, ktorá poskytuje
služby naviazania (sign-on) a podporu pre služby používateľského profilu.
ASP.NET zároveň poskytuje robustnú službu pre aplikácie, ktoré používajú
autentifikáciu založenú na formách. Uvedená autentifikácia používa cookies na overenie identity používateľov
a umožňuje aplikácii vykonať vlastnú verifikáciu prihlasovacích údajov.
Je dôležité uvedomiť si, že autentizačné služby ASP.NET sú podriadené
autentizačným službám poskytnutým IIS. Na príklad, aby ste mohli použiť základnú autentifikáciu v
IIS aplikácii, musíte nastaviť použitie základnej autentifikácie prostredníctvom Internet Service Manager tool.
ASP.NET poskytuje dva typy autorizačných služieb:
- Porovnanie oproti ACL alebo oproti povoleniam na daný zdroj, aby sme zistili, či prihlásený používateľ môže k nemu pristúpiť.
- URL autorizácia, ktorá autorizuje identitu pre časti webového priestoru (stránky)
Predstavte si scenár, v ktorom je aplikácia nastavená na použitie anonymného prístupu použitím
konta IUSR_MYMACHINE. Keď sa autorizuje požiadavka na ASP.NET stránku (ako napr. "/default.aspx"),
robí sa kontrola oproti ACL daného súboru (napríklad,
"c:\inetpub\wwwroot\default.aspx"), aby sa overilo, či má účet IUSR_MYMACHINE právo čítať daný súbor.
Ak ho má, prístup je autorizovaný. Ak sa webový obsah nachádza na NTFS disku a Windows Authentication je konfigurovaná pre použitie
virtual directory, autorizácia súborov sa vykonáva automaticky.
V rámci URL autorizácie sa anonymný používateľ porovnáva oproti konfiguračným údajom
ASP.NET aplikácie. Ak je prístup povolený pre dané URL, požiadavka je autorizovaná. V uvedenom prípade, sa porovnáva,
či má anonymný používateľ prístup ku /Default.aspx (porovnanie sa vykonáva oproti URL, nie oproti súboru ktorý je reprezentovaný daným URL po vyhodnotení).
Môže sa zdať, že ide o malý rozdiel, ktorý ale umožní aplikácii použiť autentizačné schémy
akou je autentifikácia založená na formách alebo Passport autentifikácia, v ktorej používateľ
nezodpovedá kontu na stroji ani doménovému kontu. Zároveň umožňuje autorizáciu oproti virtuálnym zdrojom, pre
ktoré neexistuje fyzický súbor. Na príklad, aplikácia môže mapovať všetky volania na súbory končiace príponou
.stk na handler, ktorý obsluhuje ceny akcií založené na premenných v query string-u.
V takomto prípade neexistuje žiadny fyzický .stk súbor, oproti ktorému robiť ACL porovnania, a preto sa používa URL autorizácia
na kontrolu prístupu k virtuálnemu prostriedku.
Súborová autorizácia sa vždy vykoná oproti autentizovanému kontu, ktoré je
poskytnuté IIS. Ak je povolený anonymný prístup, autorizuje sa oproti kontu
anonymous. V opačnom prípade sa použije konto NT. Funguje to presne rovnakým
spôsobom ako v ASP.
Súborové ACL sa nastavujú pre daný súbor alebo adresár v záložke
Security v obrazovke vlastností Explorer-u.
URL autorizácia sa konfiguruje ako súčasť ASP.NET aplikácie a je do detailov opísaná v časti Autorizácia používateľov a rolí.
Aby ste aktivovali autentizačnú službu ASP.NET, musíte nastaviť element
<authentication> v konfiguračnom súbore aplikácie.
Element môže mať ktorúkoľvek z hodnôt uvedených v nasledujúcej tabuľke.
| Hodnota | Popis |
| None | Nie sú aktívne žiadne autentizačné služby ASP.NET. Autentizačné služby IIS sú stále aktívne.
|
| Windows | Autentizačné služby ASP.NET pripájajú WindowsPrincipal (System.Security.Principal.WindowsPrincipal)
do aktuálnej žiadosti kvôli autorizácii oproti používateľom a skupinám NT.
|
| Forms | Autentizačné služby ASP.NET riadia cookies a smerujú neautentifikovaných používateľov na stránku logon.
Forms autentizácia sa často používa v súčinnosti s možnosťou IIS aktivovať anonymný prístup k aplikácii. |
| Passport | Autentizačné služby ASP.NET poskytujú obálku nad službami, ktoré ponúka Passport SDK, ktoré ale musia byť najprv nainštalované na stanici.
|
Nasledujúci konfiguračný súbor aktivuje autentifikáciu založenú na formách (cookie autentifikácia) pre aplikáciu:
<configuration>
<system.web>
<authentication mode="Forms"/>
</system.web>
</configuration>
|