Sadržaj:
Mnogi luksuzni automobili dolaze s ključem automobila. To je poseban ključ koji dajete polazniku parkiranja i za razliku od vašeg uobičajenog ključa, auto će moći voziti samo na malu udaljenost dok blokira pristup prtljažniku i putničkom mobilnom telefonu. Bez obzira na ograničenja koja ključ automobila stavlja, ideja je vrlo pametna. Nekome dajete ograničen pristup vašem automobilu posebnim tipkom, dok pomoću drugog ključa možete otključati sve ostalo. - Službeni vodič za OAuth 1.0
Tako su smjernice za specifikacije u zajednici objasnile OAuth još u 2007. godini. I iako je OAuth 2.0 potpuno novi protokol, isti se opis i dalje primjenjuje - OAuth ostaje način da korisnicima omoguće pristup trećoj strani (i ograničen pristup) njihovim resursi bez dijeljenja lozinki.
Ako redovno budete na Internetu, vjerojatno ste naišli na web mjesto koje koristi OAuth. Uostalom, najveće svjetske web stranice, kao što su Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote i Vimeo, koriste ovaj standard provjere autentičnosti. Pročitajte više kako biste saznali više o ovom standardu i zašto se sljedeća generacija, OAuth 2.0, još uvijek koristi na relativno eksperimentalnoj osnovi.
Što je OAuth 2.0?
Prvo, morate znati što OAuth kao protokol radi: Omogućuje autorizaciju programskog sučelja između dviju web ili desktop aplikacija. Kao rezultat, web stranice mogu dijeliti zaštićene resurse s drugim web stranicama i uslugama.
Na primjer, ako igrate Scramble s prijateljima na iPadu, mogli biste unijeti svoje vjerodajnice na Facebooku, dopuštajući igrama da pregledaju vaš popis prijatelja kako bi vidjeli tko od njih igra - i pozovite ostale da se pridruže. Ili se možete povezati s prijateljima na usluzi Google+ na temelju toga ko vas prati na Twitteru. Ove su vrste aplikacije korisne za korisnike, ali uključuju pristup jednoj web stranici ili programu informacijama o vama na drugoj web lokaciji.
OAuth 2.0 djeluje slično kao prva inkarnacija OAuth-a, ali sasvim je nov standard. To znači da nije nazadno kompatibilan s OAuth 1.0. Verzija 2.0 očistila je mnoge probleme s izvornim OAuthom i učinila poboljšanja.
Iako je u osnovi zadržao arhitekturu prve verzije, 2.0 se poboljšao na:
- Autentifikacija i potpisi. OAuth 2.0 je nekome na strani klijenta olakšao implementaciju protokola.
- Korisničko iskustvo i alternativni načini izdavanja tokena
- Performanse, posebno s većim web stranicama i uslugama
Prednosti upotrebe OAuth 2.0
Jedan od najboljih razloga za korištenje OAuth je taj što dijeljenje čini mnogo lakšim. Već smo navikli učitati fotografije na Instagram i automatski ih objavljivati na Twitteru i Facebooku. U stvari, upravo ova vrsta jednostavne uporabe i crossovera čine društvene medije tako privlačnim.
Ali to nije sve. Za krajnje korisnike OAuth znači da ne morate stvarati drugi profil. Na primjer, ako želite ostaviti komentar na članak, za to možete upotrijebiti vjerodajnice za Facebook ili Twitter, umjesto da se morate prijaviti za račun na određenoj web stranici. Ovo je sjajno za web mjesta na kojima obično niste aktivni ili kojima možda ne vjerujete. Također može koristi stranicama osiguravajući da korisnici imaju identitet na Facebooku, zbog čega je spam komentara manje vjerojatan.
OAuth također znači i manje lozinki koje se morate zapamtiti. Najbolja je praksa imati različite lozinke za različite usluge na web mjestu. Dakle, umjesto da memorirate drugu lozinku za, uslugu morate koristiti samo svoju Facebook lozinku za pristup usluzi. Usput, neće vidjeti vašu lozinku.
Možete ograničiti i onim izvorima kojima se pristupa putem vašeg OAuth. Na primjer, kada igrate igru na Facebooku, možete odrediti želite li igru objaviti na vašem zidu u vaše ime ili ne.
Za programere OAuth 2.0 pruža već razvijeni kod za provjeru autentičnosti, prikaz društvene interakcije i prikaz korisničkih profila. To znači manje grešaka s kojima se programeri mogu boriti i manji rizik jer je API već ispravljen, testiran i dokazan. Konačno, također imate koristi od manje podataka za pohranjivanje na vlastitim poslužiteljima.
Kako je OAuth 2.0 došao
Sasvim je očito da je OAuth odgovor na poziv za sigurnim računanjem i lakoćom korištenja za različite web usluge. OAuth 2.0 je, s druge strane, proizašao iz potrebe da se OAuth učini manje složenim. Ali cijela ideja za oboje zapravo je potekla iz OpenID-a.
OpenID je usluga koja je korisnicima omogućila prijavu u razne usluge pomoću vjerodajnica za prijavu s druge web stranice. No OpenID je bio ograničen, tako da se skupina ljudi koja radi na različitim autorizacijskim protokolima za vlastite web lokacije okupila. Prve implementacije OAuth-a izvedene su 2007. godine, a prva revizija uslijedila je dvije godine kasnije.
OAuth 2.0 stigao je na scenu 2010. godine. Namjera mu je bila da se usredotoči na jednostavnost klijenta i programera i bude lakše skalabilnost uz istodobno poboljšavanje korisničkog iskustva.
Izazovi unaprijed?
Iako Google, Klout i druga velika imena implementiraju OAuth 2.0, pred ovim protokolom je još uvijek stjenovit put. Postoje kritike unutar zajednice OAuth 2.0, uključujući i zabrinutost zbog sigurnosti protokola (mnogi vjeruju da je manje siguran od OAuth 1.0).
Prema Hammeru, ako ga koristi kompetentni programer koji dobro poznaje web sigurnost, OAuth 2.0 djeluje. Nažalost, samo mali broj programera odgovara tom računu.
Pored toga, OAuth 2.0 kodove nije za višekratnu upotrebu. Na primjer, OAuth 2.0 protokoli koje koristi Facebook ne bi bili lako upotrebljivi na drugim web lokacijama. Štoviše, novi je protokol zapravo puno složeniji od originala.
No, pravi je poticaj mnogim ljudima to što čini se da OAuth 2.0 ne nudi nikakve stvarne prednosti ili poboljšanja u odnosu na 1.0. Hammer piše da ako uspješno implementirate 1.0, nema razloga za nadogradnju na 2.0.
OAuth 2.0 je, međutim, još uvijek vrlo živ. Ako se pozabavi kritikama i pitanjima koja se postavljaju, može ipak pronaći mjesto kao vrlo moćan protokol. U vrijeme pisanja, međutim, verzija 1.0 se još uvijek smatra službenom, stabilnom i testiranom verzijom OAuth-a. Ipak, za programere koji žele raditi s velikim imenima u mrežnom svijetu, sigurno provođenje ovog protokola može postati ključna vještina postavljena u ne tako dalekoj budućnosti.