OAuth 2.0 autorizacija
OAuth 2.0 je okvir za autorizaciju koji je postao de facto standard za autorizaciju pristupa zaštićenim resursima. Omogućuje aplikacijama trećih strana pristup korisničkim podacima bez izlaganja korisničkih vjerodajnica. Umjesto dijeljenja lozinki, usluge pružaju tokene.
Pozadina
Zamislite da želite koristiti aplikaciju treće strane koja treba pristupiti podacima s vašeg Google računa. Ne biste htjeli pružiti ovoj aplikaciji treće strane svoje Google korisničko ime i lozinku, zar ne? Tu nastupa OAuth. Omogućuje vam da ovoj aplikaciji odobrite pristup vašim Google podacima bez dijeljenja vaših Google vjerodajnica.
Osnove OAuth 2.0
OAuth 2.0 fokusira se na jednostavnost za razvojne programere klijenata, pružajući specifične tokove autorizacije za web aplikacije, desktop aplikacije, mobilne telefone i uređaje za dnevni boravak. Evo pojednostavljenog pregleda:
Vlasnik resursa: Korisnik koji autorizira aplikaciju za pristup svom računu. Pristup aplikacije korisničkom računu ograničen je na "opseg" odobrene autorizacije (npr. čitanje ili pisanje određene vrste podataka).
Klijent: Aplikacija koja želi pristupiti korisničkom računu. Prije nego što to može učiniti, mora biti autorizirana od korisnika i autorizacija mora biti potvrđena od API-ja.
Poslužitelj resursa: Poslužitelj koji ugošćuje korisničke račune. Može prihvaćati i odgovarati na zahtjeve za zaštićenim resursima koristeći pristupne tokene.
Poslužitelj za autorizaciju: Ovaj poslužitelj verificira identitet korisnika, a zatim izdaje pristupne tokene aplikaciji.
OAuth 2.0 tokovi
Postoji nekoliko "tokova" ili "vrsta odobrenja" za različite vrste aplikacija i slučajeve korištenja:
Authorization Code (za aplikacije koje rade na web poslužitelju): Ovo je najčešći tok, posebno za web aplikacije. Uključuje preusmjeravanje korisnika na uslugu gdje se prijavljuje. Nakon prijave, preusmjerava se natrag na aplikaciju s kodom autorizacije, koji aplikacija može zamijeniti za pristupni token.
Implicit (za aplikacije koje rade u pregledniku): Ovaj tok je za aplikacije temeljene na korisničkom agentu (npr. jednostranične aplikacije) gdje se pristupni token vraća odmah bez dodatnog koraka zamjene koda autorizacije.
Resource Owner Password Credentials: Ovaj tok omogućuje aplikaciji da izravno pruži korisničko ime i lozinku korisnika. Preporučuje se samo za pouzdane aplikacije jer uključuje dijeljenje korisničkih vjerodajnica.
Client Credentials: Koristi se kada je sam klijent vlasnik resursa; na primjer, kada je klijent pozadinska usluga.
Tokeni
Umjesto korištenja korisničkih vjerodajnica, OAuth 2.0 koristi tokene. Postoje dvije vrste:
Pristupni token: Omogućuje aplikaciji slanje API zahtjeva u ime korisnika. Kratkog je vijeka trajanja.
Token za osvježavanje: Može se koristiti za dobivanje novog pristupnog tokena ako je izvorni pristupni token istekao. Duljeg je vijeka trajanja od pristupnog tokena.
Sigurnost
OAuth 2.0 oslanja se na SSL/TLS za sigurnost. Osigurava povjerljivost podataka između klijenta, poslužitelja za autorizaciju i poslužitelja resursa. Čak i ako napadači uspiju presresti pristupni token, ne mogu ga koristiti izvan njegova isteka (obično kratkog trajanja) ili izvan opsega za koji je izdan.
Zaključak
OAuth 2.0 je moćan i fleksibilan okvir koji omogućuje aplikacijama trećih strana pristup korisničkim podacima bez izlaganja korisničkih vjerodajnica. Postao je bitan alat na modernom webu, pružajući korisnicima i programerima siguran i učinkovit način odobravanja i upravljanja dozvolama kroz razne usluge i aplikacije.