Avtorizacija OAuth 2.0

OAuth 2.0 je avtorizacijsko ogrodje, ki je postalo de facto standard za avtorizacijo dostopa do zaščitenih virov. Tretjim aplikacijam omogoča dostop do uporabniških podatkov, ne da bi razkrili uporabnikove poverilnice. Namesto deljenja gesel storitve zagotavljajo žetone.

Ozadje

Predstavljajte si, da želite uporabiti aplikacijo tretje osebe, ki mora dostopati do podatkov iz vašega računa Google. Ne bi želeli tej aplikaciji tretje osebe zagotoviti svojega uporabniškega imena in gesla za Google, kajne? Tu nastopi OAuth. Omogoča vam, da tej aplikaciji dodelite dostop do vaših podatkov Google, ne da bi delili svoje poverilnice Google.

OAuth 2.0 z uporabo LoadFocus

Osnove OAuth 2.0

OAuth 2.0 se osredotoča na enostavnost za razvijalce odjemalcev, hkrati pa zagotavlja specifične avtorizacijske tokove za spletne aplikacije, namizne aplikacije, mobilne telefone in naprave za dnevne sobe. Tukaj je poenostavljen pregled:

  • Lastnik vira: Uporabnik, ki avtorizira aplikacijo za dostop do svojega računa. Dostop aplikacije do uporabniškega računa je omejen na "obseg" dodeljene avtorizacije (npr. branje ali pisanje določene vrste podatkov).

  • Odjemalec: Aplikacija, ki želi dostopati do uporabniškega računa. Preden to lahko stori, mora biti avtorizirana s strani uporabnika in avtorizacija mora biti potrjena s strani API-ja.

  • Strežnik virov: Strežnik, ki gosti uporabniške račune. Lahko sprejme in odgovori na zahteve za zaščitene vire z uporabo dostopnih žetonov.

  • Avtorizacijski strežnik: Ta strežnik preveri identiteto uporabnika in nato izda dostopne žetone aplikaciji.

Tokovi OAuth 2.0

Obstaja več "tokov" ali "tipov podelitev" za različne vrste aplikacij in primerov uporabe:

  • Avtorizacijska koda (za aplikacije, ki tečejo na spletnem strežniku): To je najpogostejši tok, posebej za spletne aplikacije. Vključuje preusmeritev uporabnika na storitev, kjer se prijavi. Po prijavi je preusmerjen nazaj na aplikacijo z avtorizacijsko kodo, ki jo aplikacija lahko zamenja za dostopni žeton.

  • Implicitni (za aplikacije, ki tečejo v brskalniku): Ta tok je namenjen aplikacijam, ki temeljijo na uporabniškem agentu (npr. enostranske aplikacije), kjer se dostopni žeton vrne takoj brez dodatnega koraka zamenjave avtorizacijske kode.

  • Poverilnice lastnika vira (geslo): Ta tok omogoča aplikaciji, da neposredno posreduje uporabniško ime in geslo uporabnika. Priporočen je samo za zaupanja vredne aplikacije, saj vključuje deljenje uporabniških poverilnic.

  • Poverilnice odjemalca: Uporablja se, kadar je odjemalec sam lastnik vira; na primer, kadar je odjemalec storitev v ozadju.

Žetoni

Namesto uporabe uporabniških poverilnic OAuth 2.0 uporablja žetone. Obstajata dve vrsti:

  • Dostopni žeton: Omogoča aplikaciji, da v imenu uporabnika izvaja zahteve API. Ima kratko življenjsko dobo.

  • Osvežitveni žeton: Uporablja se za pridobitev novega dostopnega žetona, če je izvirni dostopni žeton potekel. Ima daljšo življenjsko dobo kot dostopni žeton.

Varnost

OAuth 2.0 se za varnost zanaša na SSL/TLS. Zagotavlja zaupnost podatkov med odjemalcem, avtorizacijskim strežnikom in strežnikom virov. Tudi če napadalcem uspe prestreči dostopni žeton, ga ne morejo uporabiti po poteku njegove veljavnosti (običajno kratko obdobje) ali zunaj obsega, za katerega je bil izdan.

Zaključek

OAuth 2.0 je zmogljivo in prilagodljivo ogrodje, ki tretjim aplikacijam omogoča dostop do uporabniških podatkov, ne da bi razkrili uporabniške poverilnice. Postal je bistveno orodje v sodobnem spletu, ki uporabnikom in razvijalcem zagotavlja varen in učinkovit način dodeljevanja in upravljanja dovoljenj med različnimi storitvami in aplikacijami.