Varnost

Upravljanje prijave OAuth

Upravljanje prijave OAuth

Pomembne stvari, ki jih morate vedeti o OAuth

OAuth mora vedeti vsak razvijalec. Če izdelujete samostojno aplikacijo ali aplikacijo tretje osebe, ki se integrira s kakšno drugo storitvijo HTTP, morate vedeti, kako deluje OAuth, da svojim uporabnikom nudi enostavno in dobro integrirano storitev.

Ideja je omogočiti odjemalskim aplikacijam omejen dostop do uporabniških informacij, ne da bi kdaj delili uporabniške poverilnice ali geslo. Okvir OAuth je odgovoren za izmenjave, ki so potrebne, preden aplikacija dobi vaše podatke.

Recimo, da se želite prijaviti za Dev.do (kar je odličen kraj za izmenjavo idej za razvijalce) vam dovolijo, da se prijavite s svojim računom GitHub. Kako se to zgodi?? Kako bi vedeli, da ste lastnik računa GitHub, s katerim se prijavljate?

Še pomembneje pa je, kako poskrbite, da bo Dev.to ne prekoračuje svojih meja, ko gre za vaše podatke, shranjene v GitHub?

Udeleženci OAuth

Ostali bomo na primeru vtičnika GitHub urejevalnika Atom, ki razvijalcem omogoča, da kodo v GitHub potisnejo neposredno z vmesnikom Atom. Razlog za to je primer, ker GitHub ne skriva podrobnosti za prizoriščem in vidite, kaj se dogaja pod pokrovom.

Preden se lotimo podrobnosti delovanja OAuth-a. Postavimo oder s prepoznavanjem vseh udeležencev v izmenjavi:

  1. Lastnik ali uporabnik vira: Ta uporabnik je tisti, do katerega je treba dostopati do podatkov računa (brati in / ali pisati), da lahko deluje z aplikacijo.
  2. Naročnik: To je aplikacija, ki išče vaše dovoljenje za dostop do vaših podatkov iz druge storitve. V našem primeru je odjemalec Atom editor.
  3. Vir: Vir so vaše dejanske informacije, ki sedijo v strežnikih na nekem oddaljenem mestu. Do tega je mogoče dostopati prek API-ja, če odjemalec dobi ustrezna dovoljenja.
  4. Avtorizacijski strežnik: Povezan tudi prek API-ja. Ta strežnik vzdržuje ponudnik storitev (v našem primeru GitHub). Tako avtorizacijski strežnik kot strežnik virov se imenujeta API, ker ju upravlja ena entiteta, v tem primeru GitHub, in je kot API izpostavljen razvijalcu odjemalca.

Registracija OAuth

Postopek se začne, ko se razvija odjemalska aplikacija. Lahko se obrnete na ponudnika virov in se prijavite na portalu njihovega razvijalca ali na spletnem mestu v razdelku API. Navesti morate tudi URL za povratni klic, kamor bi bil uporabnik preusmerjen po sprejetju ali zavrnitvi, da bi aplikaciji dal potrebna dovoljenja.

Če na primer odprete GitHub → Nastavitve → Nastavitve za razvijalce in kliknete “Registracija nove prijave”. Tako bi dobili ID stranke ki se lahko objavijo in a Skrivnost stranke kar mora organizacija razvijalcev držati ... dobro skrivnost.

Potem ko ste ID razvijalca in skrivnost na voljo vam, razvijalec, vi mora naj bodo varni in varni, saj jih strežnik za avtorizacijo ne bo več prikazal. Enako velja za vse druge žetone, ki bi jih premetavali (Več o žetonih kasneje).

Potek dela OAuth 2

Prijavo ste registrirali. Razvit je bil in preizkušen, zdaj pa so ga uporabniki pripravljeni uporabljati. Nov uporabnik ob registraciji v vašo storitev bo prikazal možnost »Prijavi se z GitHub«. To je prvi korak.

1. korak: Zahteva za avtorizacijo

Zahteva za avtorizacijo je del, v katerem se odpre novo okno (ali podoben poziv) s spletno stranjo vira in prosi uporabnike za prijavo. Če ste v tej napravi že prijavljeni, se ta korak preskoči in GitHub vas preprosto vpraša, ali želite omogočiti dostop do odjemalske aplikacije Atom. To je v primeru Atoma veliko bolj pregledno, ker vas prosijo, da ročno odprete spletno mesto GitHub in jim odobrite dovoljenje.

Ob obisku URL-ja vas prosijo za dovoljenje.

Upoštevajte, da je URL, ki kaže, da je to varna (HTTPS) spletna stran podjetja GitHub.Inc. Zdaj ste lahko uporabnik prepričani, da neposredno komunicirate z GitHubom. Atom preprosto čaka, čisto stran.

Za razliko od Atoma večina odjemalskih aplikacij samodejno naloži stran za prijavo ali dovoljenja. Čeprav je to zelo priročno, se lahko tudi zlorabi, če se odjemalska aplikacija odloči, da bo odprla lažno povezavo. Da bi se temu izognili, morate vedno preveriti URL, na katerega ste preusmerjeni, in se prepričati, da je pravilen in uporablja protokol HTTPS.

2. korak: Pridobivanje odobritve

Če želite obvestiti odjemalca Atom, prejmete žeton (odobritev odobritve), ki ga nato pošljete odjemalcu Atom.

Ko uporabnik to stori, je uporabnikovo delo končano. (Dejansko se tipičen uporabnik sploh ne zaveda izmenjave odobritve odobritve. Primer GitHub je bil izbran, da pokaže, da se to zgodi).

3. korak: Pridobivanje žetona za dostop

Dodelitev pooblastila še vedno ni entiteta, ki odjemalcu omogoča dostop do uporabniških informacij. To dobimo z uporabo nečesa, čemur pravimo dostopni žeton. Katero odjemalsko aplikacijo bo poskušala dobiti v tem koraku.

Če želite to narediti, mora odjemalec avtorizacijskemu strežniku zagotoviti odobritev odobritve skupaj z dokazilom o lastni identiteti. Identiteta se preveri z ID-jem odjemalca in tajnostjo odjemalca, ki sta bili prej dodani odjemalski aplikaciji.

Preverjanje identitete se opravi, da se prepreči, da uporabnik ne bi bil prevaran, da bi uporabil podlo aplikacijo, ki se pretvarja, da je zakonita. Če se na primer nekdo odloči, da bo svojo izvršljivo datoteko kot Atom poimenoval z istim imenom, logotipom in funkcionalnostjo, se bo uporabnik morda prevaral, da bo omogočil dostop do odjemalca, ki lahko zlorabi vaše podatke. Brez vašega soglasja lahko vohljajo ali celo ukrepajo. Pooblaščevalni strežnik zagotavlja, da je odjemalec dejansko takšen, kot se zdi svojim uporabnikom.

Ko je identiteta preverjena in je odobritev odobritve sprejeta, strežnik za avtorizacijo vrne žeton v odjemalsko aplikacijo. Zamislite si žeton kot kombinacijo uporabniškega imena in gesla, ki ju strežnik virov lahko dobi za dostop do določenega zaščitenega vira, do katerega vam je lastnik vira dovolil dostop.

Nazadnje lahko aplikacija s pomočjo tega žetona pridobi dostop do zahtevanih uporabniških informacij in drugih virov s strežnika virov.

Upoštevajte, kako v tej celotni izmenjavi dejansko uporabniško ime in geslo nikoli nista delila s stranko? V tem je lepota OAuth. Namesto da bi dal uporabniško ime in gesla, ki bi aplikaciji omogočila ves dostop do vira, namesto tega uporablja žetone. In žeton lahko pridobi le omejen dostop do vira.

Preklic dovoljenj

Recimo, da izgubite dostop do naprave, v kateri je bila pooblaščena odjemalska aplikacija. Lahko se prijavite v GitHub in odprete Nastavitve → Aplikacije → Pooblaščene aplikacije OAuth, da prekličete odobritev odobritve in žeton za dostop. Tudi jaz bom počel enako, saj je bila na zgornjih posnetkih zaslona javno objavljena odobritev odobritve.

Zdaj, ko imate ptičji pogled na to, kako OAuth 2.Več o odobritvah avtorizacije in drugih podrobnejših podrobnostih protokola ter o tem, kako potekajo klici API, si lahko preberete tukaj.

Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...
Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...