OAuth - žingsnis atviro interneto link

Rugpjūtis28

Žymės: openid,oauth

Pasidalink

OAuth

Ankstesniame savo straipsnyje apie OpenID rašiau apie technologiją, leidžiančią identifikuoti vartotoją, nepriklausomai nuo vienos centralizuotos vartotojų tapatybės sistemos.

Šiame straipsnyje - OpenID brolio "OAuth" aprašymas.

OAuth - kas tai?

OAuth - atviras protokolas, skirtas saugiam privačių duomenų perdavimui Internetu, tuo pačiu neatskleidžiant vartotojo tapatybės ir neleidžiant prieiti prie tų resursų, kurių vartotojas nenori pateikti.

Eran Hammer-Lahav pateikia vaizdingą palyginimą: daugelis naujų prabangių automobilių parduodami su "kamerdinerio raktu". Vieni jų suteikia kamerdineriui (viešbučio patarnautojas) teisę pastatyti automobilį, bet nuvažiuoti ne daugiau nei vieną mylią, kiti  - neleidžia atidaryti bagažinės ar naudotis automobilyje esančiu telefonu. Nesvarbu, kokie būtų apribojimai, idėja yra paprasta ir efektyvi.

OAuth - tarsi Inernetinis kamerdinerio raktas.

Kur gali būti naudojamas OAuth?

Daugybė Interneto svetainių siūlo paslaugas, susijusias su kitais Interneto servisais, iš kurių reikia paimti asmeninius duomenis.

Pavyzdžiui, el. pašto kontaktų importavimas iš GMail. Įprastu atveju, vartotojas tinklalapyje įveda savo GMail prisijungimo vardą ir slaptažodį. Naudodama šiuos duomenis, tinklalapio sistema prisijungia prie GMail, pasiima vartotojo el. pašto kontaktus ir importuoja juos į savo duomenų bazę. Čia ir iškyla problema, kadangi vartotojas negali būti tikras, ar jo prisijungimo duomenys nepatenka į trečiąsias šalis ir ar prisijungdama prie Interneto tarnybos (šiuo atveju, GMail), sistema paėmė tik tuos duomenis, kuriuos vartotojas norėjo pateikti.

OAuth yra priemonė valdyti šiems veiksniams, užtikrinant, jog vartotoją identifikuojantys duomenys (pvz.: prisijungimo vardas bei slaptažodis) nepateks tretiesiems asmenims ir leidžiant perduoti tik atitinkamus duomenis.

Tokių paslaugų yra ir daugiau. Pavyzdžiui, nuotraukų spausdinimo servisas gali pasiimti nuotraukas iš privačios vartotojo Interneto galerijos, socialiniuose tinkluose - perduoti savo asmeninius duomenis (kontaktus, žinutes ir pan.) iš vieno socialinio tinklo į kitą.

Kaip tai veikia?

  1. Vartotojas tinklalapyje išsirenka paslaugą;
  2. Vartotojas perkeliamas į paslaugos tiekėjo tinklalapį;
  3. Vartotojas prisijungia prie paslaugos tiekėjo tinklalapio (prisijungimui galima naudoti OpenID);
  4. Vartotojas patvirtina, jog leidžia tinklalapiui prieiti prie tam tikrų asmeninių duomenų;
  5. Vartotojas perkeliamas atgal į tinklalapį, kuriame visus kitus veiksmus (duomenų persiuntimą) atlieka sistema. Persiunčiant duomenis neperduodami vartotojo prisijungimo duomenys,

Saugumas

Saugumas realizuojamas naudojant viešojo rakto principą. Nors tai realizuoja peruodamų duomenų saugumą, pats principas nėra visiškai atsparus nuo fišingo, todėl vartotojas bet kokiu atveju turi būti budrus.

Kas palaiko OAuth plėtrą?

Google proteguojamos atviros socialinės platformos "OpenSocial" autorizacija su trečiųjų šalių tinklalapiais vyksta naudojant OAuth standartą.

WordPress 2.7 viena iš pasiūlytų savybių yra OAuth palaikymas.

2008-08-26 buvo patvirtinta OAuth licenzija. Ją pasirašė (abėcėlės tvarka) AOL, Citizen Agency, Google, Ma.gnolia, Pownce, Six Apart, Twitter, Wesabe, Yahoo! ir keli fiziniai asmenys.

Google Code pateikia parašytas OAuth funkcijų bibliotekas (API) šioms programavimo kalboms:

  • coldfusion
  • csharp
  • java
  • obj-c
  • perl
  • php
  • python
  • ruby

Naudingos nuorodos

Oficialus OAuth tinklalapis

Eran Hammer-Lahav - Yahoo! darbuotojo, OAuth plėtotojo, tinklaraštis

OAuth API iš Google Code