Autorizacia OAuth 2.0

OAuth 2.0 je autorizacny framework, ktory sa stal de facto standardom pre autorizaciu pristupu k chranenym zdrojom. Umoznuje aplikaciam tretich stran ziskat pristup k uzivatelskym datam bez vystavenia povereni pouzivatela. Namiesto zdielania hesiel sluzby poskytuju tokeny.

Pozadie

Predstavte si, ze chcete pouzit aplikaciu tretej strany, ktora potrebuje pristup k datam z vasho uctu Google. Nechceli by ste tejto aplikacii tretej strany poskytnút vase pouzivatelske meno a heslo do Google, vsak? Tu prichadza OAuth. Umoznuje vam udelit tejto aplikacii pristup k vasim datam Google bez zdielania vasich povereni Google.

OAuth 2.0 using LoadFocus

Zaklady OAuth 2.0

OAuth 2.0 sa zameriava na jednoduchosť pre vyvojarov klientov a zaroven poskytuje specificke autorizacne toky pre webove aplikacie, desktopove aplikacie, mobilne telefony a zariadenia v obyvacke. Tu je zjednoduseny rozklad:

  • Vlastnik zdrojov: Pouzivatel, ktory autorizuje aplikaciu na pristup k jeho uctu. Pristup aplikacie k uctu pouzivatela je obmedzeny "rozsahom" udelenej autorizacie (napr. citanie alebo zapis urciteho typu dat).

  • Klient: Aplikacia, ktora chce pristupovat k uctu pouzivatela. Predtym, nez tak moze urobit, musi byt autorizovana pouzivatelom a autorizacia musi byt validovana API.

  • Zdrojovy server: Server hostujuci pouzivatelske ucty. Moze prijimat a odpovedať na poziadavky na chranene zdroje pomocou pristupovych tokenov.

  • Autorizacny server: Tento server overuje identitu pouzivatela a potom vydava pristupove tokeny aplikacii.

Toky OAuth 2.0

Existuje niekolko "tokov" alebo "typov udelenia" pre rozne typy aplikacii a pripadov pouzitia:

  • Authorization Code (pre aplikacie beziace na webovom serveri): Toto je najcastejsi tok, najma pre webove aplikacie. Zahrna presmerovanie pouzivatela na sluzbu, kde sa prihlasi. Po prihlaseni je presmerovany spat do aplikacie s autorizacnym kodom, ktory moze aplikacia vymenit za pristupovy token.

  • Implicit (pre aplikacie beziace v prehliadaci): Tento tok je pre aplikacie zalozene na user-agent (napr. single-page aplikacie), kde je pristupovy token vraceny okamzite bez dodatocneho kroku vymeny autorizacneho kodu.

  • Resource Owner Password Credentials: Tento tok umoznuje aplikacii priamo poskytnút pouzivatelske meno a heslo pouzivatela. Odporuca sa iba pre doveryhodne aplikacie, pretoze zahrna zdielanie povereni pouzivatela.

  • Client Credentials: Pouziva sa, ked sam klient je vlastnikom zdrojov; napriklad ked je klient sluzbou beziaceou na pozadi.

Tokeny

Namiesto pouzitia povereni pouzivatela pouziva OAuth 2.0 tokeny. Existuju dva typy:

  • Pristupovy token: Umoznuje aplikacii vykonavat API poziadavky v mene pouzivatela. Ma kratku zivotnost.

  • Refresh token: Moze sa pouzit na ziskanie noveho pristupoveho tokenu, ak povodny pristupovy token vyprsi. Ma dlhsiu zivotnost nez pristupovy token.

Bezpecnost

OAuth 2.0 sa spolieha na SSL/TLS pre bezpecnost. Zabezpecuje dovernost dat medzi klientom, autorizacnym serverom a zdrojovym serverom. Aj ked utocnici zachytia pristupovy token, nemozu ho pouzit po jeho expiracii (zvycajne kratky cas) ani mimo rozsahu, pre ktory bol vydany.

Zaver

OAuth 2.0 je mocny a flexibilny framework, ktory umoznuje aplikaciam tretich stran pristupovat k uzivatelskym datam bez vystavenia povereni pouzivatelov. Stal sa nevyhnutnym nastrojom v modernom webe, poskytujuc pouzivatelom a vyvojarom bezpecny a efektivny prostriedok na udelovanie a spravu povoleni napriec roznymi sluzbami a aplikaciami.