Autorizácia a autentifikácia v modernom webovom priestore

Povedzme, že nás už prestalo baviť odsýpanie jednej mikro sajty za druhou. A skúsme pripustiť, že nás už unavuje nekonečný komfort frontendovej slobody od Wordpressu a jemu podobných robustných CMS riešení. Odrazu sa ocitáme zoči-voči krutej realite, v ktorej slovo Frontend podlieha slovu Backend, s ktorým sme si doteraz nemuseli lámať hlavu. “Ale ja si aj tak chcem napísať svoj web (s AUTH prvkami) od piky a sám!” zakričal by, mnou vymyslený, Jožko, ktorý sedí v poslednej, tiež vymyslenej, lavici vo vymyslenej vzdelávacej inštitúcii. Tak si teda bez okolkov skúsme, keď nie pre nás, tak pre Jožka, povedať viac.

V prvom rade by sme si nemali zamieňat pojem autorizácia a autentifikácia. I keď tieto dva pojmy idú navzájom ruka v ruke, pod autentifikáciou myslíme akýkoľvek proces, pri ktorom sa dopytujeme, či dané indivídum (buď ide o človeka, alebo script) je tým, za koho sa vydáva. 

Vo svete webov ide, samozrejme, o identifikáciu na základe predloženia informácie (napr. email, heslo) o autenticite návštevníka identifikačnej službe, ktorá prihlási používateľa J0hnyB0i69 do webu pokec.azet.sk, ak sú prihlasovacie údaje správne.

Autorizácia sa stará o to, k čomu má prihlásený, alebo neprihlásený používateľ prístup. Taktiež o to, aké akcie môže vykonať a kam sa môže na našej stránke navigovať.

Implementácia autentifikácie

Väčšina techník sa spolieha v prvom rade na HTTP/HTTPS implementačné štandardy a všetky majú asi nasledovný priebeh:

  • Neznámy, neprihlásený návštevník si pýta obsah, na ktorý sú potrebné určité práva.
  • Webová aplikácia vráti požiadavku na autentifikáciu daného používateľa, zvyčajne v podobe HTML formuláru
  • Návštevník vyplní formulár s metódou odosielania POST a odošle ho.
  • Dáta odoslané týmto spôsobom prechádzajú cez webovú aplikáciu, odkazujúcu sa s autentifikáciou na serverovú implementáciu, ktorá následne posúdi návštevníkom zadané dáta a pokúsi sa ho autentifikovať so zaslaním výsledku informujúcom o úspešnosti procesu používateľovho snaženia.
  • Ak je výsledok úspešný, aplikácia používateľa  autentifikuje a jeho dáta uskladní na základe zvolenej autentifikačnej metódy. Buď ide o sessions/cookies, tokens, signatures a iné. V opačnom prípade je používateľovi naservírovaná správa o jeho nekonečnom neúspechu s odporúčaním vyskúšať celý tento proces znova.

Tento postup býva zvyčajne vždy rovnaký, až na väčšie, alebo menšie rozdiely v implementácii techník zabezpečenia.

Autentifikácia zabezpečená treťou stranou

Dnes už je autentifikácia zabezpečená treťou stranou pomerne populárny spôsob, akým autentifikovať používateľa. Zväčša k tomu stačí jeho email, telefónne číslo, alebo login k nejakej z väčších sociálnych sietí. Ide totiž o spôsob identifikácie vzdialene, a teda nie priamo cez databázu a API vašej serverovej implementácie, ale prostredníctvom API, ktorú táto služba poskytuje. Ide napríklad o riešenia od týchto gigantov: Google, Facebook, LinkedIn alebo GitHub.

Vďaka tomuto riešeniu nemusí mať používateľ vytvorené vždy nové konto pre každý web, ktorý vyžaduje registráciu, no používa jedno konto na prihlásenie sa do viacerých služieb.

Autorizácia

Fáza autorizácie nasleduje hneď po autentifikácii. Je zodpovedná hlavne za nastavenie práv a rolí prihlasujúceho sa používateľa. Každý používateľ môže mať jednu alebo viacero rolí a taktiež z nich plynúcich práv. Tie následne určia, k akému obsahu má tento používateľ prístup a k akému sa už nikdy nedostane. 

Záver

Prešli sme si základmi autorizácie a autentifikácie pre moderné webové aplikácia a stránky, avšak môžeme povedať, že sme sa zatiaľ iba kĺzali po povrchu. Nabudúce si totižto povieme viac o autentifikačných metódach, spôsoboch zabezpečenia autentifikácie, taktiež o populárnom autorizačnom protokole OAUTH 2, či o autorizácii treťou stranou.