OAuthi ja OpenID Connecti illustreeritud juhend

MĂ€rge. tĂ”lge: See suurepĂ€rane Okta artikkel selgitab lihtsalt ja selgelt, kuidas OAuth ja OIDC (OpenID Connect) töötavad. Need teadmised on kasulikud populaarsete veebirakenduste arendajatele, sĂŒsteemiadministraatoritele ja isegi "tavakasutajatele", kes tĂ”enĂ€oliselt vahetavad ka konfidentsiaalseid andmeid teiste teenustega.

Interneti kiviajal oli teabe jagamine teenuste vahel lihtne. Andsite lihtsalt oma sisselogimise ja parooli ĂŒhest teenusest teise, nii et ta sisenes teie kontole ja sai kogu vajaliku teabe.

OAuthi ja OpenID Connecti illustreeritud juhend
"Anna mulle oma pangakonto." «Lubame, et salasÔna ja rahaga saab kÔik korda. See on aus, aus!" *hee hee*

Õudus! Keegi ei tohiks kunagi nĂ”uda, et kasutaja jagaks kasutajanime ja parooli, volikirjad, teise teenusega. Ei ole mingit garantiid, et selle teenuse taga olev organisatsioon hoiab andmeid turvaliselt ega kogu vajalikust rohkem isiklikku teavet. See vĂ”ib tunduda hullumeelne, kuid mĂ”ned rakendused kasutavad seda praktikat endiselt!

TĂ€napĂ€eval on ĂŒks standard, mis vĂ”imaldab ĂŒhel teenusel turvaliselt kasutada teise teenuse andmeid. Kahjuks kasutatakse sellistes standardites palju ĆŸargooni ja termineid, mis raskendab nende mĂ”istmist. Selle materjali eesmĂ€rk on selgitada, kuidas need töötavad lihtsate illustratsioonide abil (Kas te arvate, et minu joonistused meenutavad laste vĂ€rvimist? Ahjaa!).

OAuthi ja OpenID Connecti illustreeritud juhend

Muide, see juhend on saadaval ka videovormingus:

Esita video

Daamid ja hÀrrad, tere tulemast: OAuth 2.0

OAuth 2.0 on turbestandard, mis vĂ”imaldab ĂŒhel rakendusel saada luba teise rakenduse teabele juurde pÀÀseda. Loa vĂ€ljastamise sammude jada [luba] (VĂ”i nĂ”usolekut [nĂ”usolek]) helistavad sageli luba [volitus] ОлО ЎажД delegeeritud volitus [delegeeritud volitus]. Selle standardiga lubate rakendusel teie nimel andmeid lugeda vĂ”i teise rakenduse funktsioone kasutada ilma parooli andmata. Klass!

Oletame nÀiteks, et avastate veebisaidi nimega "PÀeva Ônnetu sÔnamÀng" [PÀeva kohutav sÔnamÀng] ja otsustas sellel registreeruda, et saada igapÀevaseid sÔnamÀnge telefoni tekstisÔnumite kujul. Sait meeldis teile vÀga ja otsustasite seda kÔigi oma sÔpradega jagada. LÔppude lÔpuks meeldivad jubedad sÔnamÀngud kÔigile, eks?

OAuthi ja OpenID Connecti illustreeritud juhend
"PĂ€eva kahetsusvÀÀrne sĂ”namĂ€ng: olete kuulnud mehest, kes kaotas oma vasaku kehapoole? NĂŒĂŒd on tal alati Ă”igus!” (ligikaudne tĂ”lge, sest originaalil on oma sĂ”namĂ€ng – ca tĂ”lge)

On selge, et igale inimesele kontaktiloendist kirjutamine ei ole valik. Ja kui sa oled vĂ€hegi minu moodi, siis annad endast kĂ”ik, et vĂ€ltida asjatut tööd. Õnneks vĂ”ib pĂ€eva kohutav sĂ”namĂ€ng ise kĂ”ik teie sĂ”brad kohale kutsuda! Selleks pead lihtsalt avama juurdepÀÀsu oma kontaktide meilile – sait ise saadab neile kutsed (OAuthi reeglid)!

OAuthi ja OpenID Connecti illustreeritud juhend
“KĂ”ik armastavad sĂ”namĂ€ngu! - Juba sisse logitud? „Kas soovite lubada veebisaidil Terrible Pun of the Day juurdepÀÀsu oma kontaktide loendile? - AitĂ€h! Edaspidi saadame iga pĂ€ev meeldetuletusi kĂ”igile tuttavatele, kuni aegade lĂ”puni! Sa oled parim sĂ”ber!"

  1. Valige oma meiliteenus.
  2. Vajadusel minge e-posti saidile ja logige oma kontole sisse.
  3. Andke oma kontaktidele juurdepÀÀsemiseks luba PÀeva kohutavale sÔnamÀngule.
  4. Naaske pÀeva kohutava sÔnamÀngu saidile.

Kui muudate meelt, pakuvad OAuthi kasutavad rakendused juurdepÀÀsu ka vĂ”imaluse tĂŒhistada. Kui olete otsustanud, et te ei soovi enam pĂ€eva kohutava sĂ”namĂ€nguga kontakte jagada, vĂ”ite minna e-posti saidile ja eemaldada sĂ”namĂ€ngusait volitatud rakenduste loendist.

OAuth Flow

Oleme just lÀbi teinud selle, mida tavaliselt nimetatakse voolu [vool] OAuth. Meie nÀites koosneb see voog nÀhtavatest sammudest, aga ka mitmest nÀhtamatust etapist, mille kÀigus kaks teenust lepivad kokku turvalises teabevahetuses. Eelmises Terrible Pun of the Day nÀites kasutatakse kÔige levinumat OAuth 2.0 voogu, mida tuntakse "volitamiskoodi" voona. ["volitamiskoodi" voog].

Enne OAuthi toimimise ĂŒksikasjadesse sukeldumist rÀÀgime mĂ”ne termini tĂ€hendusest.

  • Ressursi omanik:

    OAuthi ja OpenID Connecti illustreeritud juhend

    See oled sina! Teile kuuluvad oma mandaadid, andmed ja saate juhtida kÔiki tegevusi, mida teie kontodel vÔidakse teha.

  • klient:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Rakendus (nt teenus Terrible Pun of the Day), mis soovib juurdepÀÀsu vÔi teatud toiminguid teha Ressursi omanik'а.

  • Autoriseerimisserver:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Rakendus, mis teab Ressursi omanik'a ja milles u Ressursi omanik'on juba konto.

  • ressursiserver:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Rakenduse programmeerimisliides (API) vÔi teenus, mis klient nimel soovib kasutada Ressursi omanik'а.

  • Ümbersuunamise URI:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Link, mis Autoriseerimisserver suunab ĂŒmber Ressursi omanikja pĂ€rast loa andmist klient'at. Seda nimetatakse mĂ”nikord "tagasihelistamis-URL-iks".

  • Vastuse tĂŒĂŒp:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Eeldatava teabe tĂŒĂŒp klient. KĂ”ige tavalisem Vastuse tĂŒĂŒp'ohm on kood, see tĂ€hendab klient loodab saada Autoriseerimiskood.

  • Ulatus:

    OAuthi ja OpenID Connecti illustreeritud juhend

    See on vajalike Ă”iguste ĂŒksikasjalik kirjeldus klient'y, nĂ€iteks andmetele juurdepÀÀsemine vĂ”i teatud toimingute tegemine.

  • NĂ”usolek:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Autoriseerimisserver vĂ”tab Õppesuunataotletud klient'om, ja kĂŒsib Ressursi omanik'a, kas ta on valmis pakkuma klient'omama vastavaid Ă”igusi.

  • kliendi ID:

    OAuthi ja OpenID Connecti illustreeritud juhend

    Seda ID-d kasutatakse tuvastamiseks klient'a sisse Autoriseerimisserver'e.

  • Kliendi saladus:

    OAuthi ja OpenID Connecti illustreeritud juhend

    See on ainult teadaolev parool klient'sina ja Autoriseerimisserver'at. See vÔimaldab neil privaatselt teavet jagada.

  • Autoriseerimiskood:

    OAuthi ja OpenID Connecti illustreeritud juhend

    LĂŒhikese kehtivusajaga ajutine kood, mis klient annab Autoriseerimisserver'y vastutasuks Access Token.

  • Access Token:

    OAuthi ja OpenID Connecti illustreeritud juhend

    VĂ”ti, millega klient suhtlemiseks kasutab ressursiserver'om. Omamoodi mĂ€rk vĂ”i vĂ”tmekaart, mis pakub klientomama luba andmete kĂŒsimiseks vĂ”i toimingute tegemiseks ressursiserverSinu nimel.

MÀrkus: MÔnikord on autoriseerimisserver ja ressursiserver sama server. Kuid mÔnel juhul vÔivad need olla erinevad serverid, isegi kui need ei kuulu samasse organisatsiooni. NÀiteks vÔib autoriseerimisserver olla kolmanda osapoole teenus, mida ressursiserver usaldab.

NĂŒĂŒd, kui oleme kĂ€sitlenud OAuth 2.0 pĂ”hikontseptsioone, pöördume tagasi oma nĂ€ite juurde ja vaatame lĂ€hemalt, mis OAuthi voos toimub.

OAuthi ja OpenID Connecti illustreeritud juhend

  1. Sina, Ressursi omanik, soovite pakkuda teenust Terrible Pun of the Day (klienty) juurdepÀÀs teie kontaktidele, et nad saaksid saata kutseid kÔigile teie sÔpradele.
  2. klient suunab brauseri lehele Autoriseerimisserver'a ja lisage pĂ€ringusse kliendi ID, Ümbersuunamise URI, Vastuse tĂŒĂŒp ja ĂŒks vĂ”i mitu Õppesuuna (load), mida see vajab.
  3. Autoriseerimisserver kontrollib teid, kĂŒsides vajadusel kasutajanime ja parooli.
  4. Autoriseerimisserver kuvab vormi NĂ”usolek (kinnitused) koos kĂ”igi nimekirjaga Õppesuunataotletud klient'om. NĂ”ustute vĂ”i keeldute.
  5. Autoriseerimisserver suunab teid saidile klient'a, kasutades Ümbersuunamise URI koos Autoriseerimiskood (volituskood).
  6. klient suhtleb otse Autoriseerimisserver'ohm (brauserist mööda minnes Ressursi omanik'a) ja saadab turvaliselt kliendi ID, Kliendi saladus О Autoriseerimiskood.
  7. Autoriseerimisserver kontrollib andmeid ja vastab Access Token'om (pÀÀsuluba).
  8. NĂŒĂŒd jagab ta klient saab kasutada Access Token pĂ€ringu saatmiseks ressursiserver kontaktide loendi saamiseks.

Kliendi ID ja saladus

Ammu enne seda, kui lubasite PÀeva kohutaval sÔnamÀngul oma kontaktidele juurde pÀÀseda, olid kliendi ja autoriseerimisserver loonud töösuhte. Autoriseerimisserver genereeris kliendi ID ja kliendi saladuse (mÔnikord nimetatakse seda App ID О Rakenduse saladus) ja saatis need kliendile edasiseks suhtluseks OAuthis.

OAuthi ja OpenID Connecti illustreeritud juhend
"- Tere! Tahaksin teiega koostööd teha! - Muidugi, see pole probleem! Siin on teie kliendi ID ja saladus!

Nimi vihjab, et kliendisaladust tuleb hoida saladuses, et seda teaksid ainult klient ja autoriseerimisserver. LÔppude lÔpuks kinnitab autoriseerimisserver just tema abiga Kliendi tÔde.

Kuid see pole veel kÔik... Tere tulemast OpenID Connecti!

OAuth 2.0 on mĂ”eldud ainult volitus - vĂ”imaldada juurdepÀÀsu andmetele ja funktsioonidele ĂŒhest rakendusest teise. OpenID Connect (OIDC) on OAuth 2.0 peal olev Ă”huke kiht, mis lisab kontole sisse logitud kasutaja sisselogimis- ja profiiliandmed. Sisselogimisseansi korraldamist nimetatakse sageli autentimine [autentimine]ja teavet sĂŒsteemi sisse logitud kasutaja kohta (nt umbes Ressursi omanik'e), — isiklikud andmed [identiteet]. Kui autoriseerimisserver toetab OIDC-d, nimetatakse seda mĂ”nikord ka kui isikuandmete pakkuja [identiteedi pakkuja]sest see annab klient'teavet selle kohta Ressursi omanik'e.

OpenID Connect vĂ”imaldab rakendada stsenaariume, kus ĂŒhte sisselogimist saab kasutada mitmes rakenduses – seda lĂ€henemist tuntakse ka kui ĂŒhekordne sisselogimine (SSO). NĂ€iteks vĂ”ib rakendus toetada SSO integreerimist sotsiaalsete vĂ”rgustikega, nagu Facebook vĂ”i Twitter, vĂ”imaldades kasutajatel kasutada kontot, mis neil juba on ja mida eelistavad kasutada.

OAuthi ja OpenID Connecti illustreeritud juhend

Voog (voog) OpenID Connect nÀeb vÀlja sama, mis OAuthi puhul. Ainus erinevus seisneb selles, et esmases taotluses kasutatakse konkreetset ulatust openid, - A klient lÔpuks meeldib Access TokenJa ID-mÀrk.

OAuthi ja OpenID Connecti illustreeritud juhend

Nii nagu OAuthi voos, Access Token OpenID Connectis on see vÀÀrtus, mis pole selge klient'at. Vaatepunktist klient'а Access Token tÀhistab tÀhemÀrkide jada, mis edastatakse koos iga pÀringuga ressursiserver'y, mis mÀÀrab, kas mÀrk on kehtiv. ID-mÀrk esindab tÀiesti erinevat asja.

ID Token on JWT

ID-mĂ€rk on spetsiaalselt vormindatud mĂ€rgijada, mida tuntakse JSON Web Token vĂ”i JWT nime all (mĂ”nikord hÀÀldatakse JWT mĂ€rke nagu "jots"). VĂ€lisvaatlejatele vĂ”ib JWT tunduda arusaamatu jaburana, kuid klient saab JWT-st vĂ€lja vĂ”tta erinevat teavet, nagu ID, kasutajanimi, sisselogimisaeg, aegumiskuupĂ€ev ID-mĂ€rk„a, JWT-d sekkumise katsete olemasolu. Andmed sees ID-mĂ€rk'a kutsutakse rakendusi [vĂ€ited].

OAuthi ja OpenID Connecti illustreeritud juhend

OIDC puhul on olemas ka standardne viis, mille abil klient vĂ”ib kĂŒsida ĂŒksikisiku kohta lisateavet [identiteet] pĂ€rit Autoriseerimisserver'a, nĂ€iteks e-posti aadress, mis kasutab Access Token.

Lisateave OAuthi ja OIDC kohta

Niisiis vaatasime lĂŒhidalt ĂŒle, kuidas OAuth ja OIDC töötavad. Kas olete valmis sĂŒgavamale kaevama? Siin on tĂ€iendavad ressursid, mis aitavad teil OAuth 2.0 ja OpenID Connecti kohta lisateavet saada.

Nagu alati, kommenteerige julgelt. Et olla kursis meie viimaste uudistega, tellige puperdama Đž Youtube Okta arendajatele!

PS tÔlkijalt

Loe ka meie blogist:

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster