Čo je OAuth?
OAuth je otvorený štandard pre autorizáciu, ktorý umožňuje aplikáciám získať obmedzený prístup k používateľským účtom bez zdieľania hesiel. Aktuálna verzia OAuth 2.0 je základom prihlásenia cez Google, Facebook, GitHub a ďalších poskytovateľov.
Definícia OAuth
Čo je OAuth
OAuth je otvorený štandard pre autorizáciu, ktorý umožňuje tretím stranám pristupovať k chráneným zdrojom používateľa bez toho, aby poznali jeho heslo. Prvá verzia OAuth 1.0 bola publikovaná v roku 2007 — iniciovali ju vývojári z Twitter a Google. Aktuálny štandard OAuth 2.0 bol publikovaný ako RFC 6749 v októbri 2012 a nie je spätne kompatibilný s verziou 1.0.
Dôležitý rozdiel: OAuth rieši autorizáciu (čo smie aplikácia robiť), nie autentifikáciu (kto je používateľ). Na autentifikáciu sa používa nadstavba OpenID Connect, postavená na OAuth 2.0.
Ako OAuth 2.0 funguje
- Používateľ (Resource Owner) chce povoriť aplikácii prístup k svojim dátam
- Aplikácia (Client) presmeruje používateľa na autorizačný server (napr. Google)
- Autorizačný server overí používateľa a spýta sa na súhlas (consent screen)
- Authorization Code — po súhlase server vráti jednorazový kód
- Access Token — aplikácia vymení kód za prístupový token, s ktorým môže pristupovať k API
- Refresh Token — voliteľný token na obnovenie prístupu bez opätovného prihlásenia
Medzi najväčších poskytovateľov OAuth patria Google, Facebook, Apple, Microsoft a GitHub. Používateľ tak nemusí vytvárať nový účet — prihlási sa existujúcim.
Praktický príklad
Príklad: Chcete sa zaregistrovať na novom webe a vidíte tlačidlo „Prihlásiť sa cez Google".
Po kliknutí vás web presmeruje na Google, kde sa prihlásite a odsúhlasíte zdieľanie mena a e-mailu. Google vráti webovej aplikácii autorizačný kód, aplikácia ho vymení za access token a pomocou neho získa vaše meno a e-mail z Google API. Heslo k vášmu Google účtu aplikácia nikdy nevidí.
Často kladené otázky
Čo je OAuth a na čo slúži?
OAuth je štandard pre autorizáciu, ktorý umožňuje aplikáciám pristupovať k vašim dátam (napr. e-mail, profil) bez toho, aby poznali vaše heslo. Je základom tlačidiel „Prihlásiť sa cez Google/Facebook".
Aký je rozdiel medzi OAuth a OpenID Connect?
OAuth rieši autorizáciu (čo smie aplikácia robiť s vašimi dátami). OpenID Connect je nadstavba nad OAuth 2.0, ktorá pridáva autentifikáciu (overenie totožnosti používateľa).
Je prihlásenie cez OAuth bezpečné?
Áno, OAuth je bezpečnejšie než zdieľanie hesla s treťou stranou. Token má obmedzené oprávnenia a platnosť, a používateľ ho môže kedykoľvek zrušiť v nastaveniach svojho účtu u poskytovateľa.
Aký je rozdiel medzi OAuth 1.0 a OAuth 2.0?
OAuth 2.0 je kompletne prepísaný štandard — je jednoduchší na implementáciu, podporuje mobilné aplikácie a používa bearer tokeny. OAuth 1.0 vyžadoval kryptografické podpisy na každú požiadavku, čo bolo zložitejšie.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.