Autentizace uživatele ? základní rozdělení
Autentizace je proces pro jednoznačné ověření subjektu (člověka), který vstupuje do informačního systému.
Můžeme rozlišit několik druhů autentizace
HTTP autentizace
Autentizace spojováná většinou s htaccess, je jednou z možností přihlášení uživatele. V server apache toto zajištují moduly mod_auth, mod_auth_db.
1/ Klient chce přistoupit na zabezpečenou stránku
2/ Server odpovídá chybou 401 (Access Denied), a do odpovědi přidává hlavičku WWW-Authenticate.
3/ Zadáme heslo a jméno.
4/ ověření z bodu 3 a v případě neúspěchu skok do bodu 2
nevýhody této autentizace jsou
1/ při každém požadavku na zabezpečenou stránku je nešifrovaně zasíláno heslo a jméno. Je vhodné použit zabezpečený kanál HTTPS.
2/ odhlášení není možné vynutit
3/ není možné vytvořit jiný obsah pro přihlášeného a jiný pro nepříhlášeného uživatele
Formulářová autentizace
Druhou častější možností je formulář na webové stránce. Pomocí formuláře zašlete údaje, které po nás bude aplikace požadovat, většinou to bývá uživatelské jméno a heslo, výhodou je, že je možné rozlišit přihlášené a nepřihlášené klienty a zobrazit pro něj jiný obsah. Můžeme využít timeout pro odhlášení. Většinou využíváme session pro formulářovou autentizace.
Uložení hesel
Při formulářové autentizaci jsou hesla často ukládána v databázi, nebo textovém souboru. Velkou chybou je ukládání hesel v plain textu, uživatel sice vidí své heslo, může si jej nechat zaslat na email, ale hrozí zneužití v případě získání seznamu hesel. Řešením je ukládání hesla v zašifrované podobě, častou to je MD5, klient sice nikdy heslo nepřečtě, ale pokud bychom chtěli mu zaslat heslo na email, musíme zaslat nové-dočasné heslo, které ošetříme že bude platné pouze pro určitou dobu.
Autorizace
Autorizace je ověření práv daného klienta. Přihlášený klient může mít různá práva pro různé úkony. Například může určitý soubor pouze číst, nebo může údaj pouze editovat a nemůžu číst atd?