OAuth 2.0 autorizācija
OAuth 2.0 ir autorizācijas ietvars, kas ir kļuvis par de facto standartu piekļuves autorizēšanai aizsargātiem resursiem. Tas ļauj trešo pušu lietotnēm piekļūt lietotāja datiem, neatklājot lietotāja akreditācijas datus. Paroļu kopīgošanas vietā pakalpojumi nodrošina marķierus.
Konteksts
Iedomājieties, ka vēlaties izmantot trešās puses lietotni, kurai nepieciešams piekļūt datiem no jūsu Google konta. Jūs nevēlētos sniegt šai trešās puses lietotnei savu Google lietotājvārdu un paroli, vai ne? Tieši šeit palīgā nāk OAuth. Tas ļauj piešķirt šai lietotnei piekļuvi jūsu Google datiem bez jūsu Google akreditācijas datu kopīgošanas.
OAuth 2.0 pamati
OAuth 2.0 koncentrējas uz klienta izstrādātāja vienkāršību, vienlaikus nodrošinot specifiskas autorizācijas plūsmas tīmekļa lietotnēm, darbvirsmas lietotnēm, mobilajiem tālruņiem un viesistabas ierīcēm. Šeit ir vienkāršots sadalījums:
Resource Owner: Lietotājs, kas autorizē lietotni piekļūt viņa kontam. Lietotnes piekļuve lietotāja kontam ir ierobežota ar piešķirtās autorizācijas "tvērumu" (piem., noteikta datu veida lasīšana vai rakstīšana).
Client: Lietotne, kas vēlas piekļūt lietotāja kontam. Pirms tam tai jābūt autorizētai no lietotāja puses un autorizācijai jābūt validētai ar API.
Resource Server: Serveris, kas mitina lietotāju kontus. Tas var pieņemt un atbildēt uz aizsargātu resursu pieprasījumiem, izmantojot piekļuves marķierus.
Authorization Server: Šis serveris verificē lietotāja identitāti un pēc tam izsniedz piekļuves marķierus lietotnei.
OAuth 2.0 plūsmas
Pastāv vairākas "plūsmas" vai "piešķīruma veidi" dažādiem lietotņu tipiem un lietošanas gadījumiem:
Authorization Code (lietotnēm, kas darbojas tīmekļa serverī): Tā ir visbiežāk izmantotā plūsma, īpaši tīmekļa lietotnēm. Tā ietver lietotāja novirzīšanu uz pakalpojumu, kur viņš piesakās. Pēc pieteikšanās viņš tiek novirzīts atpakaļ uz lietotni ar autorizācijas kodu, ko lietotne var apmainīt pret piekļuves marķieri.
Implicit (lietotnēm, kas darbojas pārlūkprogrammā): Šī plūsma ir paredzēta lietotāja aģentā bāzētām lietotnēm (piem., vienas lapas lietotnēm), kur piekļuves marķieris tiek atgriezts nekavējoties bez papildu autorizācijas koda apmaiņas soļa.
Resource Owner Password Credentials: Šī plūsma ļauj lietotnei tieši norādīt lietotāja lietotājvārdu un paroli. Tā ir ieteicama tikai uzticamām lietotnēm, jo ietver lietotāja akreditācijas datu kopīgošanu.
Client Credentials: Izmanto, kad pats klients ir resursa īpašnieks; piemēram, kad klients ir fona pakalpojums.
Marķieri
Lietotāja akreditācijas datu vietā OAuth 2.0 izmanto marķierus. Ir divi veidi:
Access Token: Ļauj lietotnei veikt API pieprasījumus lietotāja vārdā. Tam ir īss derīguma termiņš.
Refresh Token: Var tikt izmantots jauna piekļuves marķiera iegūšanai, ja sākotnējais piekļuves marķieris ir beidzies. Tam ir garāks derīguma termiņš nekā piekļuves marķierim.
Drošība
OAuth 2.0 paļaujas uz SSL/TLS drošībai. Tas nodrošina datu konfidencialitāti starp klientu, autorizācijas serveri un resursu serveri. Pat ja uzbrucēji spēj pārtvert piekļuves marķieri, viņi to nevar izmantot pēc tā derīguma termiņa beigām (parasti īss periods) vai ārpus tvēruma, kuram tas tika izsniegts.
Secinājums
OAuth 2.0 ir jaudīgs un elastīgs ietvars, kas ļauj trešo pušu lietotnēm piekļūt lietotāja datiem bez lietotāja akreditācijas datu atklāšanas. Tas ir kļuvis par būtisku rīku modernajā tīmeklī, nodrošinot lietotājiem un izstrādātājiem drošu un efektīvu veidu, kā piešķirt un pārvaldīt atļaujas dažādos pakalpojumos un lietotnēs.