Ilustriran vodnik za OAuth in OpenID Connect

Opomba. prevod: Ta odličen članek avtorja Okta na preprost in jasen način pojasnjuje, kako OAuth in OIDC (OpenID Connect) delujeta. To znanje bo koristilo razvijalcem, sistemskim skrbnikom in celo »običajnim uporabnikom« priljubljenih spletnih aplikacij, ki najverjetneje izmenjujejo zaupne podatke tudi z drugimi storitvami.

V kameni dobi interneta je bilo izmenjavanje informacij med storitvami enostavno. Preprosto ste dali svojo prijavo in geslo iz ene storitve v drugo, tako da je vstopil v vaš račun in prejel vse potrebne informacije.

Ilustriran vodnik za OAuth in OpenID Connect
"Daj mi svoj bančni račun." »Obljubljamo, da bo z geslom in denarjem vse v redu. To je pošteno, pošteno!" *he hee*

groza! Nihče ne bi smel od uporabnika zahtevati, da deli uporabniško ime in geslo, poverilnice, z drugo storitvijo. Nobenega jamstva ni, da bo organizacija, ki stoji za to storitvijo, varovala podatke in ne bo zbirala več osebnih podatkov, kot je potrebno. Morda se sliši noro, vendar nekatere aplikacije še vedno uporabljajo to prakso!

Danes obstaja en sam standard, ki eni storitvi omogoča varno uporabo podatkov druge. Na žalost takšni standardi uporabljajo veliko žargona in izrazov, kar otežuje njihovo razumevanje. Namen tega gradiva je s preprostimi ilustracijami razložiti, kako delujejo (Se vam zdi, da moje risbe spominjajo na otroško mazanje? No, no!).

Ilustriran vodnik za OAuth in OpenID Connect

Mimogrede, ta vodnik je na voljo tudi v video formatu:

Dame in gospodje, dobrodošli: OAuth 2.0

OAuth 2.0 je varnostni standard, ki eni aplikaciji omogoča pridobitev dovoljenja za dostop do informacij v drugi aplikaciji. Zaporedje korakov za izdajo dovoljenja [dovoljenje] (Ali soglasje [soglasje]) pogosto kličejo pooblastilo [pooblastilo] ali celo delegirano pooblastilo [delegirano pooblastilo]. S tem standardom aplikaciji dovolite branje podatkov ali uporabo funkcij druge aplikacije v vašem imenu, ne da bi ji posredovali svoje geslo. Razred!

Recimo, da odkrijete spletno mesto z imenom "Nesrečna igra dneva" [Grozna besedna igra dneva] in se odločil, da se nanj registrira, da bi na telefon prejemal vsakodnevne besedne igre v obliki besedilnih sporočil. Stran vam je bila zelo všeč in odločili ste se, da jo delite z vsemi prijatelji. Navsezadnje imajo vsi radi srhljive besedne igre, kajne?

Ilustriran vodnik za OAuth in OpenID Connect
»Nesrečna igra dneva: Ste slišali za tipa, ki je izgubil levo polovico telesa? Zdaj ima vedno prav!« (približen prevod, ker izvirnik ima svojo besedno igro - pribl. prevod.)

Jasno je, da pisanje vsaki osebi s seznama stikov ni možnost. In če ste vsaj malo podobni meni, potem se boste potrudili na vse, da se izognete nepotrebnemu delu. Na srečo lahko Terrible Pun of the Day sam povabi vse vaše prijatelje! Če želite to narediti, morate samo odpreti dostop do e-pošte vaših stikov - spletno mesto jim bo samo poslalo povabila (pravila OAuth)!

Ilustriran vodnik za OAuth in OpenID Connect
»Vsi imajo radi besedne igre! - Ste že prijavljeni? »Ali želite spletnemu mestu Terrible Pun of the Day omogočiti dostop do vašega seznama stikov? - Hvala vam! Od zdaj naprej bomo pošiljali opomnike vsak dan vsem, ki jih poznate, do konca časa! Ti si najboljši prijatelj!"

  1. Izberite svojo e-poštno storitev.
  2. Po potrebi pojdite na e-poštno mesto in se prijavite v svoj račun.
  3. Dajte Terrible Pun of the Day dovoljenje za dostop do vaših stikov.
  4. Vrnite se na spletno stran Terrible Pun of the Day.

V primeru, da si premislite, aplikacije, ki uporabljajo OAuth, ponujajo tudi način za preklic dostopa. Ko se odločite, da ne želite več deliti stikov z aplikacijo Terrible Pun of the Day, lahko obiščete poštno mesto in odstranite besedno mesto s seznama pooblaščenih aplikacij.

Tok OAuth

Pravkar smo šli skozi tisto, kar se običajno imenuje tok [tok] OAuth. V našem primeru je ta tok sestavljen iz vidnih korakov in več nevidnih korakov, v katerih se dve storitvi dogovorita za varno izmenjavo informacij. Prejšnji primer Terrible Pun of the Day uporablja najpogostejši tok OAuth 2.0, znan kot tok »avtorizacijske kode«. [potek "avtorizacijske kode"].

Preden se poglobimo v podrobnosti delovanja OAuth, se pogovorimo o pomenu nekaterih izrazov:

  • Lastnik vira:

    Ilustriran vodnik za OAuth in OpenID Connect

    to si ti! Ste lastnik svojih poverilnic, svojih podatkov in nadzorujete vse dejavnosti, ki se lahko izvajajo na vaših računih.

  • Pomoč:

    Ilustriran vodnik za OAuth in OpenID Connect

    Aplikacija (na primer storitev Terrible Pun of the Day), ki želi dostopati ali izvesti določena dejanja v imenu Lastnik vira'a.

  • avtorizacijski strežnik:

    Ilustriran vodnik za OAuth in OpenID Connect

    Aplikacija, ki ve Lastnik vira'a in v kateri u Lastnik viraže imate račun.

  • strežnik virov:

    Ilustriran vodnik za OAuth in OpenID Connect

    Vmesnik za programiranje aplikacij (API) ali storitev, ki Pomoč želi uporabiti v imenu Lastnik vira'a.

  • URI preusmeritve:

    Ilustriran vodnik za OAuth in OpenID Connect

    Povezava, ki avtorizacijski strežnik bo preusmeril Lastnik vira'in po izdaji dovoljenja Pomoč'pri. Včasih se imenuje "URL povratnega klica".

  • Vrsta odziva:

    Ilustriran vodnik za OAuth in OpenID Connect

    Vrsta informacije, za katero se pričakuje, da bo prejeta Pomoč. Najpogostejši Vrsta odziva'ohm je koda, tj Pomoč pričakuje, da bo prejel Koda dovoljenja.

  • področje uporabe:

    Ilustriran vodnik za OAuth in OpenID Connect

    To je podroben opis dovoljenj, ki so potrebna Pomoč'y, kot je dostop do podatkov ali izvajanje določenih dejanj.

  • Soglasje:

    Ilustriran vodnik za OAuth in OpenID Connect

    avtorizacijski strežnik traja Scopeszahtevano Pomoč'om, in vpraša Lastnik vira'a, ali je pripravljen zagotoviti Pomoč'imeti ustrezna dovoljenja.

  • ID stranke:

    Ilustriran vodnik za OAuth in OpenID Connect

    Ta ID se uporablja za identifikacijo Pomoč'a na avtorizacijski strežnik'e.

  • Stranka skrivnost:

    Ilustriran vodnik za OAuth in OpenID Connect

    To je geslo, ki je znano samo Pomoč'ti in avtorizacijski strežnik'pri. Omogoča jim zasebno izmenjavo informacij.

  • Koda dovoljenja:

    Ilustriran vodnik za OAuth in OpenID Connect

    Začasna koda s kratkim časom veljavnosti, ki Pomoč zagotavlja avtorizacijski strežnik'y v zameno za Dostopni žeton.

  • Dostopni žeton:

    Ilustriran vodnik za OAuth in OpenID Connect

    Ključ, s katerim bo stranka komunicirala strežnik virov'om. Nekakšna značka ali ključna kartica, ki zagotavlja Pomoč'imeti dovoljenje za zahtevanje podatkov ali izvajanje dejanj na strežnik virovv tvojem imenu.

Obvestilo: Včasih sta avtorizacijski strežnik in strežnik virov isti strežnik. Vendar pa so v nekaterih primerih to lahko različni strežniki, tudi če ne pripadajo isti organizaciji. Na primer, avtorizacijski strežnik je lahko storitev tretje osebe, ki ji strežnik virov zaupa.

Zdaj, ko smo pokrili temeljne koncepte OAuth 2.0, se vrnimo k našemu primeru in si podrobneje oglejmo, kaj se dogaja v toku OAuth.

Ilustriran vodnik za OAuth in OpenID Connect

  1. ti, Lastnik viraželite ponuditi storitev Grozna besedna igra dneva (Pomočy) dostop do vaših stikov, tako da lahko pošiljajo povabila vsem vašim prijateljem.
  2. Pomoč preusmeri brskalnik na stran avtorizacijski strežnik'a in vključite v poizvedbo ID stranke, URI preusmeritve, Vrsta odziva in enega ali več Scopes (dovoljenja), ki jih potrebuje.
  3. avtorizacijski strežnik vas preveri in po potrebi zahteva uporabniško ime in geslo.
  4. avtorizacijski strežnik prikaže obrazec Soglasje (birme) s seznamom vseh Scopeszahtevano Pomoč'om. Se strinjate ali zavrnete.
  5. avtorizacijski strežnik vas preusmeri na spletno mesto Pomoč'a, z uporabo URI preusmeritve s Koda dovoljenja (avtorizacijska koda).
  6. Pomoč neposredno komunicira z avtorizacijski strežnik'ohm (zaobide brskalnik Lastnik vira'a) in varno pošlje ID stranke, Stranka skrivnost и Koda dovoljenja.
  7. avtorizacijski strežnik preveri podatke in odgovori z Dostopni žeton'om (žeton za dostop).
  8. Zdaj Pomoč lahko uporabi Dostopni žeton poslati zahtevo na strežnik virov da dobite seznam stikov.

ID in skrivnost stranke

Dolgo preden ste Terrible Pun of the Day dovolili dostop do vaših stikov, sta odjemalec in avtorizacijski strežnik vzpostavila delovno razmerje. Pooblastitveni strežnik je ustvaril ID odjemalca in skrivnost odjemalca (včasih imenovana ID aplikacije и Skrivnost aplikacije) in jih poslal naročniku za nadaljnjo interakcijo znotraj OAuth.

Ilustriran vodnik za OAuth in OpenID Connect
"- Zdravo! Rad bi delal s teboj! - Seveda, ni problem! Tukaj sta ID in skrivnost vaše stranke!«

Ime namiguje, da mora biti skrivnost odjemalca tajna, tako da jo vesta le odjemalec in avtorizacijski strežnik. Navsezadnje z njegovo pomočjo avtorizacijski strežnik potrdi resničnost odjemalca.

Vendar to še ni vse ... Pozdravite OpenID Connect!

OAuth 2.0 je zasnovan samo za pooblastilo - omogočiti dostop do podatkov in funkcij iz ene aplikacije v drugo. OpenID Connect (OIDC) je tanka plast na vrhu OAuth 2.0, ki doda podatke o prijavi in ​​profilu uporabnika, ki je prijavljen v račun. Organizacija prijavne seje se pogosto imenuje avtentikacija [avtentikacija], in informacije o uporabniku, ki je prijavljen v sistem (tj. o Lastnik vira'e), — osebni podatki [identiteta]. Če avtorizacijski strežnik podpira OIDC, se včasih imenuje ponudnik osebnih podatkov [ponudnik identitete]ker zagotavlja Pomoč'imeti podatke o Lastnik vira'e.

OpenID Connect vam omogoča izvajanje scenarijev, kjer je mogoče eno samo prijavo uporabiti v več aplikacijah - ta pristop je znan tudi kot enotna prijava (SSO). Na primer, aplikacija lahko podpira integracijo SSO z družbenimi omrežji, kot sta Facebook ali Twitter, kar uporabnikom omogoča uporabo računa, ki ga že imajo in ga raje uporabljajo.

Ilustriran vodnik za OAuth in OpenID Connect

Tok (flow) OpenID Connect je videti enako kot v primeru OAuth. Edina razlika je v tem, da je v primarni zahtevi uporabljen določen obseg openid, - A Pomoč na koncu postane kot Dostopni žetonIn ID žeton.

Ilustriran vodnik za OAuth in OpenID Connect

Tako kot v toku OAuth, Dostopni žeton v OpenID Connect je to neka vrednost, ki ni jasna Pomoč'pri. Z vidika Pomoč'a Dostopni žeton predstavlja niz znakov, ki se posreduje skupaj z vsako zahtevo strežnik virov'y, ki določa, ali je žeton veljaven. ID žeton predstavlja čisto nekaj drugega.

Žeton ID je JWT

ID žeton je posebej oblikovan niz znakov, znan kot spletni žeton JSON ali JWT (včasih se žetoni JWT izgovarjajo kot "jots"). Zunanjim opazovalcem se JWT morda zdi nerazumljiva bedarija, vendar Pomoč lahko iz JWT izvleče različne informacije, kot so ID, uporabniško ime, čas prijave, datum poteka ID žeton'a, prisotnost poskusov poseganja v JWT. Podatki znotraj ID žeton'a se imenujejo aplikacije [trditve].

Ilustriran vodnik za OAuth in OpenID Connect

V primeru OIDC obstaja tudi standardni način, s katerim Pomoč lahko zahteva dodatne podatke o posamezniku [identiteta] od avtorizacijski strežnik'a, na primer e-poštni naslov z uporabo Dostopni žeton.

Izvedite več o OAuth in OIDC

Tako smo na kratko pregledali, kako delujeta OAuth in OIDC. Ste pripravljeni kopati globlje? Tukaj so dodatni viri, ki vam bodo pomagali izvedeti več o OAuth 2.0 in OpenID Connect:

Kot vedno vas prosimo, da komentirate. Če želite biti na tekočem z našimi najnovejšimi novicami, se naročite na Twitter и YouTube Okta za razvijalce!

PS od prevajalca

Preberite tudi na našem blogu:

Vir: www.habr.com

Dodaj komentar