Gwida Illustrata għal OAuth u OpenID Connect

Nota. transl.: Dan l-artiklu mill-aqwa ta' Okta jispjega kif l-OAuth u l-OIDC (OpenID Connect) jaħdmu b'mod sempliċi u ċar. Dan l-għarfien se jkun utli għall-iżviluppaturi, amministraturi tas-sistema, u anke "utenti regolari" ta 'applikazzjonijiet web popolari, li x'aktarx jiskambjaw ukoll data kunfidenzjali ma' servizzi oħra.

Fl-Età tal-Ġebel tal-Internet, il-qsim tal-informazzjoni bejn is-servizzi kien faċli. Sempliċement tajt il-login u l-password tiegħek minn servizz għal ieħor, sabiex hu daħal fil-kont tiegħek u rċieva kull informazzjoni li kellu bżonn.

Gwida Illustrata għal OAuth u OpenID Connect
"Agħtini l-kont bankarju tiegħek." “Nwegħdu li kollox se jkun tajjeb bil-password u l-flus. Dak onest, onest!" *hee hee*

Orrur! Ħadd m'għandu qatt jeħtieġ li utent jaqsam username u password, kredenzjali, b'servizz ieħor. M'hemm l-ebda garanzija li l-organizzazzjoni wara dan is-servizz se żżomm id-data sigura u mhux se tiġbor aktar informazzjoni personali milli meħtieġ. Jista 'jidher miġnun, iżda xi apps għadhom jużaw din il-prattika!

Illum hemm standard wieħed li jippermetti li servizz wieħed juża b'mod sigur id-dejta ta 'ieħor. Sfortunatament, standards bħal dawn jużaw ħafna lingwaġġ u termini, li jikkomplika l-fehim tagħhom. L-iskop ta' dan il-materjal huwa li jispjega kif jaħdmu bl-użu ta' illustrazzjonijiet sempliċi (Taħseb li t-tpinġijiet tiegħi jixbħu t-tixbiħ tat-tfal? Tajjeb!).

Gwida Illustrata għal OAuth u OpenID Connect

Mill-mod, din il-gwida hija wkoll disponibbli fil-format tal-vidjo:

Sinjuri, merħba: OAuth 2.0

OAuth 2.0 huwa standard tas-sigurtà li jippermetti li applikazzjoni waħda tikseb permess biex taċċessa informazzjoni f'applikazzjoni oħra. Sekwenza ta' passi għall-ħruġ ta' permess [permess] (Jew kunsens [kunsens]) spiss iċempel awtorizzazzjoni [awtorizzazzjoni] jew saħansitra awtorizzazzjoni delegata [awtorizzazzjoni delegata]. B'dan l-istandard, inti tippermetti li applikazzjoni taqra data jew tuża l-funzjonijiet ta' applikazzjoni oħra f'ismek mingħajr ma tagħtiha l-password tiegħek. Klassi!

Bħala eżempju, ejja ngħidu li tiskopri sit imsejjaħ "Unlucky Pun of the Day" [Pun Terribbli tal-Jum] u ddeċidiet li tirreġistra fuqha sabiex tirċievi puns ta 'kuljum fil-forma ta' messaġġi fuq it-telefon. Verament għoġbok is-sit, u ddeċidejt li taqsamha mal-ħbieb tiegħek kollha. Wara kollox, kulħadd jħobb puns creepy, hux?

Gwida Illustrata għal OAuth u OpenID Connect
“Punt sfortunat tal-ġurnata: Smajt dwar ir-raġel li tilef in-nofs tax-xellug ta’ ġismu? Issa dejjem għandu raġun!” (traduzzjoni approssimattiva, minħabba li l-oriġinal għandu l-pun tiegħu stess - madwar trad.)

Huwa ċar li l-kitba lil kull persuna mil-lista ta 'kuntatti mhijiex għażla. U, jekk inti saħansitra xi ftit bħali, allura inti se tagħmel kull tul biex tevita xogħol bla bżonn. Fortunatament, Terrible Pun of the Day jista 'jistieden lill-ħbieb tiegħek waħdu! Biex tagħmel dan, għandek bżonn biss tiftaħ aċċess għall-email tal-kuntatti tiegħek - is-sit innifsu jibgħatilhom stediniet (regoli OAuth)!

Gwida Illustrata għal OAuth u OpenID Connect
“Kulħadd iħobb il-puns! - Diġà illoggjat? “Tixtieq tippermetti li l-websajt Terrible Pun of the Day taċċessa l-lista ta’ kuntatti tiegħek? - Grazzi! Minn issa 'l quddiem, aħna nibagħtu tfakkiriet kuljum lil kull min taf, sal-aħħar taż-żmien! Int l-aqwa ħabib!"

  1. Agħżel is-servizz tal-email tiegħek.
  2. Jekk meħtieġ, mur fis-sit tal-posta u idħol fil-kont tiegħek.
  3. Agħti Terrible Pun of the Day permess biex taċċessa l-kuntatti tiegħek.
  4. Irritorna fis-sit Terrible Pun of the Day.

F'każ li tibdel fehmtek, applikazzjonijiet li jużaw OAuth jipprovdu wkoll mod kif tirrevoka l-aċċess. Ladarba tiddeċiedi li ma tridx aktar taqsam kuntatti ma' Terrible Pun of the Day, tista' tmur fuq is-sit tal-posta u tneħħi s-sit pun mil-lista tiegħek ta' apps awtorizzati.

OAuth Flow

Għadna kif għaddejna minn dak li s-soltu jissejjaħ fluss [fluss] OAuth. Fl-eżempju tagħna, dan il-fluss jikkonsisti f'passi viżibbli, kif ukoll f'diversi passi inviżibbli, li fihom żewġ servizzi jaqblu dwar skambju sigur ta' informazzjoni. L-eżempju Terrible Pun of the Day preċedenti juża l-fluss OAuth 2.0 l-aktar komuni, magħruf bħala l-fluss tal-"kodiċi tal-awtorizzazzjoni". [fluss ta' "kodiċi ta' awtorizzazzjoni"].

Qabel ma tgħaddas fid-dettalji ta' kif jaħdem OAuth, ejja nitkellmu dwar it-tifsira ta' xi termini:

  • Sid tar-Riżorsi:

    Gwida Illustrata għal OAuth u OpenID Connect

    Huwa int! Inti stess il-kredenzjali tiegħek, id-dejta tiegħek, u tikkontrolla l-attivitajiet kollha li jistgħu jitwettqu fuq il-kontijiet tiegħek.

  • klijent:

    Gwida Illustrata għal OAuth u OpenID Connect

    Applikazzjoni (pereżempju, is-servizz Terrible Pun of the Day) li trid taċċessa jew twettaq ċerti azzjonijiet f'isem Sid tar-Riżorsi'A.

  • Server ta' Awtorizzazzjoni:

    Gwida Illustrata għal OAuth u OpenID Connect

    L-app li taf Sid tar-Riżorsi'a u li fiha u Sid tar-Riżorsi'a diġà għandhom kont.

  • server tar-riżorsi:

    Gwida Illustrata għal OAuth u OpenID Connect

    Applikazzjoni programmar interface (API) jew servizz li klijent trid tuża f'isem Sid tar-Riżorsi'A.

  • URI mill-ġdid:

    Gwida Illustrata għal OAuth u OpenID Connect

    Il-link li Server ta' Awtorizzazzjoni se jidderieġi mill-ġdid Sid tar-Riżorsi'u wara li jagħti l-permess klijent'fil. Xi kultant tissejjaħ "Callback URL".

  • tip ta' rispons:

    Gwida Illustrata għal OAuth u OpenID Connect

    It-tip ta' informazzjoni mistennija li tiġi riċevuta klijent. L-aktar komuni tip ta' rispons'ohm huwa l-kodiċi, jiġifieri klijent jistenna li jirċievi Kodiċi ta 'Awtorizzazzjoni.

  • Ambitu:

    Gwida Illustrata għal OAuth u OpenID Connect

    Din hija deskrizzjoni dettaljata tal-permessi li huma meħtieġa klijent'y, bħall-aċċess għad-dejta jew it-twettiq ta' ċerti azzjonijiet.

  • Kunsens:

    Gwida Illustrata għal OAuth u OpenID Connect

    Server ta' Awtorizzazzjoni jieħu Ambitimitluba klijent'om, u jistaqsi Sid tar-Riżorsi'a, hu lest li jipprovdi klijent'għandu l-permessi xierqa.

  • ID tal-Klijent:

    Gwida Illustrata għal OAuth u OpenID Connect

    Din l-ID tintuża biex tidentifika klijent'a fuq Server ta' Awtorizzazzjoni'e.

  • Sigriet tal-Klijent:

    Gwida Illustrata għal OAuth u OpenID Connect

    Din hija l-password li hija magħrufa biss klijent'u u Server ta' Awtorizzazzjoni'fil. Jippermettilhom jaqsmu l-informazzjoni privatament.

  • Kodiċi ta 'Awtorizzazzjoni:

    Gwida Illustrata għal OAuth u OpenID Connect

    Kodiċi temporanju b'perjodu qasir ta 'validità, li klijent tipprovdi Server ta' Awtorizzazzjoni'y bi skambju għal Token ta 'Aċċess.

  • Token ta 'Aċċess:

    Gwida Illustrata għal OAuth u OpenID Connect

    Iċ-ċavetta li l-klijent se juża biex jikkomunika magħha server tar-riżorsi'om. Speċi ta’ badge jew key card li tipprovdi klijent'għandha permess biex titlob dejta jew twettaq azzjonijiet fuqha server tar-riżorsi'e f'ismek.

Innota: Kultant Server tal-Awtorizzazzjoni u Server tar-Riżorsi huma l-istess server. Madankollu, f'xi każijiet, dawn jistgħu jkunu servers differenti, anki jekk ma jappartjenux għall-istess organizzazzjoni. Pereżempju, is-Server tal-Awtorizzazzjoni jista' jkun servizz ta' parti terza fdat mis-Server tar-Riżorsi.

Issa li koprejna l-kunċetti ewlenin ta 'OAuth 2.0, ejja mmorru lura għall-eżempju tagħna u nagħtu ħarsa aktar mill-qrib lejn dak li jiġri fil-fluss OAuth.

Gwida Illustrata għal OAuth u OpenID Connect

  1. Int, Sid tar-Riżorsi, trid tipprovdi s-servizz Terrible Pun of the Day (klijenty) aċċess għall-kuntatti tiegħek sabiex ikunu jistgħu jibagħtu stediniet lill-ħbieb tiegħek kollha.
  2. klijent jerġa' jidderieġi l-browser lejn il-paġna Server ta' Awtorizzazzjoni'a u jinkludu fit-tfittxija ID tal-Klijent, URI mill-ġdid, tip ta' rispons u wieħed jew aktar Ambiti (permessi) li teħtieġ.
  3. Server ta' Awtorizzazzjoni jivverifikak, billi titlob username u password jekk meħtieġ.
  4. Server ta' Awtorizzazzjoni juri formola Kunsens (konfermi) b'lista ta' kollha Ambitimitluba klijent'om. Inti taqbel jew tirrifjuta.
  5. Server ta' Awtorizzazzjoni jidderieġik lejn is-sit klijent'a, bl-użu URI mill-ġdid flimkien ma ' Kodiċi ta 'Awtorizzazzjoni (kodiċi ta' awtorizzazzjoni).
  6. klijent jikkomunika direttament ma' Server ta' Awtorizzazzjoni'ohm (jinjora l-browser Sid tar-Riżorsi'a) u jibgħat mingħajr periklu ID tal-Klijent, Sigriet tal-Klijent и Kodiċi ta 'Awtorizzazzjoni.
  7. Server ta' Awtorizzazzjoni jiċċekkja d-data u jirrispondi bi Token ta 'Aċċess'om (token ta' aċċess).
  8. Issa klijent jistgħu jużaw Token ta 'Aċċess biex tibgħat talba lil server tar-riżorsi biex tikseb lista ta' kuntatti.

ID tal-Klijent u Sigriet

Ħafna qabel ma ppermettiet Terrible Pun of the Day biex taċċessa l-kuntatti tiegħek, il-Klijent u l-Awtorizzazzjoni Server kienu stabbilixxew relazzjoni ta’ ħidma. Is-Server tal-Awtorizzazzjoni ġġenera l-ID tal-Klijent u l-Sigriet tal-Klijent (xi kultant imsejħa App ID и App Secret) u bagħtuhom lill-Klijent għal aktar interazzjoni fi ħdan OAuth.

Gwida Illustrata għal OAuth u OpenID Connect
"- Bongu! Nixtieq naħdem miegħek! - Sure, mhux problema! Hawn huma l-ID tal-Klijent u s-Sigriet tiegħek!”

L-isem jimplika li s-Sigriet tal-Klijent għandu jinżamm sigriet sabiex il-Klijent u s-Server tal-Awtorizzazzjoni biss ikunu jafuh. Wara kollox, huwa bl-għajnuna tiegħu li s-Server ta 'Awtorizzazzjoni jikkonferma l-verità tal-Klijent.

Imma dan mhux kollox... Jekk jogħġbok merħba OpenID Connect!

OAuth 2.0 huwa ddisinjat biss għal awtorizzazzjoni - li jipprovdi aċċess għal data u funzjonijiet minn applikazzjoni għal oħra. Connect OpenID (OIDC) huwa saff irqiq fuq OAuth 2.0 li jżid id-dettalji tal-login u l-profil tal-utent li jkun illoggjat fil-kont. L-organizzazzjoni ta' sessjoni ta' login spiss tissejjaħ awtentikazzjoni [awtentikazzjoni], u informazzjoni dwar l-utent illoggjat fis-sistema (jiġifieri dwar Sid tar-Riżorsi'e), — data personali [identità]. Jekk is-Server tal-Awtorizzazzjoni jappoġġa l-OIDC, xi drabi jissejjaħ fornitur ta’ data personali [fornitur tal-identità]għax jipprovdi klijent'jkollhom informazzjoni dwar Sid tar-Riżorsi'e.

OpenID Connect jippermettilek li timplimenta xenarji fejn login wieħed jista 'jintuża f'applikazzjonijiet multipli - dan l-approċċ huwa magħruf ukoll bħala sinjal wieħed (SSO). Pereżempju, applikazzjoni tista' tappoġġja l-integrazzjoni SSO ma' netwerks soċjali bħal Facebook jew Twitter, li tippermetti lill-utenti jużaw kont li diġà għandhom u jippreferu jużaw.

Gwida Illustrata għal OAuth u OpenID Connect

Il-fluss (fluss) OpenID Connect jidher l-istess bħal fil-każ ta 'OAuth. L-unika differenza hija li fit-talba primarja, l-ambitu speċifiku użat huwa openid, - A klijent eventwalment gets simili Token ta 'AċċessU Token ID.

Gwida Illustrata għal OAuth u OpenID Connect

Eżatt bħal fil-fluss OAuth, Token ta 'Aċċess f'OpenID Connect, dan huwa xi valur li mhux ċar klijent'fil. Mil-lat klijent‘а Token ta 'Aċċess tirrappreżenta sensiela ta' karattri li tiġi mgħoddija flimkien ma' kull talba lil server tar-riżorsi'y, li jiddetermina jekk it-token huwiex validu. Token ID jirrappreżenta ħaġa kompletament differenti.

ID Token huwa JWT

Token ID hija sensiela ta' karattri ifformattjata apposta magħrufa bħala JSON Web Token jew JWT (xi kultant it-tokens JWT huma ppronunzjati bħal "jots"). Għall-osservaturi ta' barra, JWT jista' jidher qisu xi ħaġa inkomprensibbli, iżda klijent jista 'jiġbed informazzjoni varji mill-JWT, bħal ID, username, ħin ta' login, data ta 'skadenza Token ID“a, il-preżenza ta’ attentati biex jinterferixxu mal-JWT. Data ġewwa Token ID'a jissejħu applikazzjonijiet [klejms].

Gwida Illustrata għal OAuth u OpenID Connect

Fil-każ tal-OIDC, hemm ukoll mod standard li bih klijent jista’ jitlob informazzjoni addizzjonali dwar l-individwu [identità] minn Server ta' Awtorizzazzjoni'a, pereżempju, indirizz elettroniku bl-użu Token ta 'Aċċess.

Tgħallem aktar dwar OAuth u OIDC

Għalhekk, irrevejna fil-qosor kif jaħdmu l-OAuth u l-OIDC. Lest biex tħaffer aktar fil-fond? Hawn huma riżorsi addizzjonali biex jgħinuk titgħallem aktar dwar OAuth 2.0 u OpenID Connect:

Bħal dejjem, tħossok liberu li tikkummenta. Biex iżżomm ruħek aġġornat bl-aħħar aħbarijiet tagħna, abbona għal twitter и YouTube Okta għall-iżviluppaturi!

PS minn traduttur

Aqra wkoll fuq il-blog tagħna:

Sors: www.habr.com

Żid kumment