Myndskreytt leiðarvísir um OAuth og OpenID Connect

Athugið. þýð.: Þessi frábæra grein eftir Okta útskýrir hvernig OAuth og OIDC (OpenID Connect) virka á einfaldan og skýran hátt. Þessi þekking mun nýtast forriturum, kerfisstjórum og jafnvel „venjulegum notendum“ vinsælra vefforrita, sem líklegast einnig skiptast á trúnaðargögnum við aðra þjónustu.

Á steinöld internetsins var auðvelt að deila upplýsingum á milli þjónustu. Þú gafst einfaldlega inn notandanafnið þitt og lykilorð frá einni þjónustu til annarrar, svo að hann kom inn á reikninginn þinn og fékk allar upplýsingar sem hann þurfti.

Myndskreytt leiðarvísir um OAuth og OpenID Connect
"Gefðu mér bankareikninginn þinn." „Við lofum að allt verði í lagi með lykilorðið og peningana. Það er heiðarlegt, heiðarlegt!" *hæ hæ*

Hryllingur! Enginn ætti nokkurn tíma að krefjast þess að notandi deili notendanafni og lykilorði, skilríki, með annarri þjónustu. Það er engin trygging fyrir því að stofnunin á bak við þessa þjónustu haldi gögnunum öruggum og muni ekki safna fleiri persónuupplýsingum en nauðsynlegt er. Það kann að hljóma brjálað, en sum forrit nota samt þessa æfingu!

Í dag er til einn staðall sem gerir einni þjónustu kleift að nota gögn annarrar á öruggan hátt. Því miður nota slíkir staðlar mikið hrognamál og hugtök, sem torveldar skilning þeirra. Tilgangur þessa efnis er að útskýra hvernig þau virka með einföldum myndskreytingum (Heldurðu að teikningarnar mínar líkist barnadælingu? Jæja!).

Myndskreytt leiðarvísir um OAuth og OpenID Connect

Við the vegur, þessi handbók er einnig fáanleg á myndbandsformi:

Dömur mínar og herrar, velkomin: OAuth 2.0

OAuth 2.0 er öryggisstaðall sem gerir einu forriti kleift að fá aðgang að upplýsingum í öðru forriti. Röð skrefa við útgáfu leyfis [leyfi] (Eða samþykki [samþykki]) hringir oft heimild [heimild] eða jafnvel framselt heimild [úthlutað heimild]. Með þessum staðli leyfir þú forriti að lesa gögn eða nota aðgerðir annars forrits fyrir þína hönd án þess að gefa því upp lykilorðið þitt. bekk!

Sem dæmi, segjum að þú uppgötvar síðu sem heitir "Óheppinn orðaleikur dagsins" [Hræðilegur orðaleikur dagsins] og ákvað að skrá sig á það til að fá daglega orðaleiki í formi sms-skilaboða í síma. Þér líkaði mjög vel við síðuna og ákvaðst að deila henni með öllum vinum þínum. Eftir allt saman, allir hafa gaman af hrollvekjandi orðaleikjum, ekki satt?

Myndskreytt leiðarvísir um OAuth og OpenID Connect
„Óheppilegur orðaleikur dagsins: Heyrt um gaurinn sem missti vinstri hluta líkamans? Nú hefur hann alltaf rétt fyrir sér!“ (áætluð þýðing, því frumritið hefur sinn orðaleik - ca. þýðing.)

Það er ljóst að það er ekki valkostur að skrifa hverjum og einum af tengiliðalistanum. Og, ef þú ert jafnvel svolítið eins og ég, þá munt þú gera hvað sem er til að forðast óþarfa vinnu. Sem betur fer getur Terrible Pun of the Day boðið öllum vinum þínum sjálfur! Til að gera þetta þarftu bara að opna aðgang að tölvupósti tengiliða þinna - síðan sjálft mun senda þeim boð (OAuth reglur)!

Myndskreytt leiðarvísir um OAuth og OpenID Connect
„Allir elska orðaleiki! - Ertu búinn að skrá þig inn? „Viltu leyfa vefsíðunni Terrible Pun of the Day að fá aðgang að tengiliðalistanum þínum? - Þakka þér fyrir! Héðan í frá munum við senda áminningar á hverjum degi til allra sem þú þekkir, allt til endaloka! Þú ert besti vinur!"

  1. Veldu tölvupóstþjónustuna þína.
  2. Ef nauðsyn krefur, farðu á póstsíðuna og skráðu þig inn á reikninginn þinn.
  3. Gefðu Terrible Pun of the Day leyfi til að fá aðgang að tengiliðunum þínum.
  4. Farðu aftur á síðuna Hræðileg orðaleikur dagsins.

Ef þú skiptir um skoðun, bjóða forrit sem nota OAuth einnig leið til að afturkalla aðgang. Þegar þú hefur ákveðið að þú viljir ekki lengur deila tengiliðum með Terrible Pun of the Day geturðu farið á póstsíðuna og fjarlægt orðaleikssíðuna af listanum yfir leyfileg forrit.

OAuth flæði

Við erum nýbúin að fara í gegnum það sem venjulega er kallað flæði [flæði] OAuth. Í okkar dæmi samanstendur þetta flæði af sýnilegum skrefum, auk nokkurra ósýnilegra skrefa, þar sem tvær þjónustur koma sér saman um örugg upplýsingaskipti. Fyrra Hræðileg orðaleikur dagsins dæmið notar algengasta OAuth 2.0 flæðið, þekkt sem „heimildarkóði“ flæðið. [flæði „heimildarkóða“].

Áður en farið er ofan í saumana á því hvernig OAuth virkar skulum við tala um merkingu sumra hugtaka:

  • Auðlindaeigandi:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Það ert þú! Þú átt skilríkin þín, gögnin þín og stjórnar allri starfsemi sem kann að fara fram á reikningunum þínum.

  • viðskiptavinur:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Forrit (til dæmis þjónustan Hræðileg orðaleikur dagsins) sem vill fá aðgang að eða framkvæma ákveðnar aðgerðir fyrir hönd Auðlindaeigandi'á.

  • Heimildarþjónn:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Appið sem veit Auðlindaeigandi'a og þar sem u Auðlindaeigandi'a er nú þegar með reikning.

  • auðlindaþjónn:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Umsókn forritunarviðmót (API) eða þjónustu sem viðskiptavinur vill nota fyrir hönd Auðlindaeigandi'á.

  • Beina URI:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Hlekkurinn sem Heimildarþjónn mun beina Auðlindaeigandi'og eftir að leyfi hefur verið veitt viðskiptavinur'kl. Stundum er vísað til hennar sem „símtalsslóð“.

  • tegund svars:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Tegund upplýsinga sem búist er við að berist viðskiptavinur. Algengasta tegund svars'ohm er kóðinn, það er viðskiptavinur gerir ráð fyrir að fá Heimildarkóði.

  • Gildissvið:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Þetta er nákvæm lýsing á þeim heimildum sem þarf viðskiptavinur'y, svo sem að fá aðgang að gögnum eða framkvæma ákveðnar aðgerðir.

  • Samþykki:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Heimildarþjónn tekur Mælaróskað eftir viðskiptavinur'om, og spyr Auðlindaeigandi'a, er hann tilbúinn að veita viðskiptavinur'hafa viðeigandi heimildir.

  • Auðkenni viðskiptavinar:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Þetta auðkenni er notað til að auðkenna viðskiptavinur'a á Heimildarþjónn'e.

  • Viðskiptavinur leyndarmál:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Þetta er lykilorðið sem er aðeins þekkt viðskiptavinur'u og Heimildarþjónn'kl. Það gerir þeim kleift að deila upplýsingum einslega.

  • Heimildarkóði:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Tímabundinn kóða með stuttan gildistíma, sem viðskiptavinur veitir Heimildarþjónn'y í skiptum fyrir Aðgangstákn.

  • Aðgangstákn:

    Myndskreytt leiðarvísir um OAuth og OpenID Connect

    Lykillinn sem viðskiptavinurinn mun nota til að eiga samskipti við auðlindaþjónn'om. Eins konar merki eða lyklakort sem veitir viðskiptavinur'hafa leyfi til að biðja um gögn eða framkvæma aðgerðir á auðlindaþjónn'e fyrir þína hönd.

Athugið: Stundum eru heimildaþjónn og auðlindaþjónn sami þjónninn. Hins vegar, í sumum tilfellum, geta þetta verið mismunandi netþjónar, jafnvel þótt þeir tilheyri ekki sömu stofnun. Til dæmis gæti heimildaþjónninn verið þjónusta þriðja aðila sem auðlindaþjónninn treystir.

Nú þegar við höfum farið yfir kjarnahugtök OAuth 2.0, skulum við fara aftur í dæmið okkar og skoða nánar hvað gerist í OAuth flæðinu.

Myndskreytt leiðarvísir um OAuth og OpenID Connect

  1. Þú, Auðlindaeigandi, þú vilt bjóða upp á þjónustuna Hræðileg orðaleikur dagsins (viðskiptavinury) aðgang að tengiliðum þínum svo að þeir geti sent boð til allra vina þinna.
  2. viðskiptavinur vísar vafranum á síðuna Heimildarþjónn'a og taka með í fyrirspurn Auðkenni viðskiptavinar, Beina URI, tegund svars og einn eða fleiri Mælar (heimildir) sem það þarf.
  3. Heimildarþjónn staðfestir þig og biður um notandanafn og lykilorð ef þörf krefur.
  4. Heimildarþjónn sýnir eyðublað Samþykki (staðfestingar) með lista yfir alla Mælaróskað eftir viðskiptavinur'om. Þú samþykkir eða neitar.
  5. Heimildarþjónn vísar þér á síðuna viðskiptavinur'a, nota Beina URI ásamt Heimildarkóði (heimildarkóði).
  6. viðskiptavinur hefur beint samband við Heimildarþjónn'ohm (framhjá vafranum Auðlindaeigandi'a) og sendir örugglega Auðkenni viðskiptavinar, Viðskiptavinur leyndarmál и Heimildarkóði.
  7. Heimildarþjónn athugar gögnin og svarar með Aðgangstákn'om (aðgangstákn).
  8. viðskiptavinur getur notað Aðgangstákn til að senda beiðni til auðlindaþjónn til að fá lista yfir tengiliði.

Auðkenni viðskiptavinar og leyndarmál

Löngu áður en þú leyfðir hræðilegu orðaleik dagsins að fá aðgang að tengiliðunum þínum, höfðu viðskiptavinur og heimildarþjónn komið á samstarfi. Heimildarþjónninn bjó til viðskiptavinaauðkenni og biðlaraleyndarmál (stundum kallað Farsími ID и Leyndarmál apps) og sendi þær til viðskiptavinarins til frekari samskipta innan OAuth.

Myndskreytt leiðarvísir um OAuth og OpenID Connect
"- Halló! Mig langar að vinna með þér! - Jú, ekki vandamál! Hér eru viðskiptavinaauðkenni og leyndarmál!“

Nafnið gefur til kynna að leyndarmál viðskiptavinarins verði að vera leyndu þannig að aðeins viðskiptavinurinn og heimildaþjónninn viti það. Þegar öllu er á botninn hvolft er það með hjálp hans sem leyfisþjónninn staðfestir sannleika viðskiptavinarins.

En það er ekki allt... Vinsamlegast velkomið OpenID Connect!

OAuth 2.0 er aðeins hannað fyrir heimild - til að veita aðgang að gögnum og aðgerðum frá einu forriti í annað. OpenID Connect (OIDC) er þunnt lag ofan á OAuth 2.0 sem bætir innskráningar- og prófílupplýsingum notandans sem er skráður inn á reikninginn. Skipulag innskráningarlotu er oft nefnt auðkenning [auðkenning], og upplýsingar um notandann sem er skráður inn í kerfið (þ.e. um Auðlindaeigandi'e), — persónulegar upplýsingar [auðkenni]. Ef heimildaþjónninn styður OIDC er hann stundum nefndur veitanda persónuupplýsinga [auðkennisveitandi]vegna þess að það veitir viðskiptavinur'hef upplýsingar um Auðlindaeigandi'e.

OpenID Connect gerir þér kleift að innleiða aðstæður þar sem hægt er að nota eina innskráningu í mörgum forritum - þessi aðferð er einnig þekkt sem einstök innskráning (SSO). Til dæmis getur forrit stutt SSO samþættingu við samfélagsnet eins og Facebook eða Twitter, sem gerir notendum kleift að nota reikning sem þeir hafa þegar og kjósa að nota.

Myndskreytt leiðarvísir um OAuth og OpenID Connect

Flæði (flæði) OpenID Connect lítur út eins og þegar um OAuth er að ræða. Eini munurinn er sá að í aðalbeiðninni er það sérstaka umfang sem notað er openid, - A viðskiptavinur verður að lokum eins AðgangstáknOg ID tákn.

Myndskreytt leiðarvísir um OAuth og OpenID Connect

Rétt eins og í OAuth flæðinu, Aðgangstákn í OpenID Connect er þetta eitthvað gildi sem er ekki ljóst viðskiptavinur'kl. Frá sjónarhóli viðskiptavinurAðgangstákn táknar streng af stöfum sem er send með hverri beiðni til auðlindaþjónn'y, sem ákvarðar hvort táknið sé gilt. ID tákn táknar allt annan hlut.

ID Token er JWT

ID tákn er sérsniðinn strengur af stöfum þekktur sem JSON Web Token eða JWT (stundum eru JWT tákn borin fram eins og „stuðli“). Fyrir utanaðkomandi áhorfendur kann JWT að virðast óskiljanlegt bull, en viðskiptavinur getur dregið út ýmsar upplýsingar úr JWT, svo sem auðkenni, notendanafn, innskráningartíma, fyrningardagsetningu ID tákn'a, tilvist tilrauna til að trufla JWT. Gögn inni ID tákn'a eru kallaðir umsóknir [kröfur].

Myndskreytt leiðarvísir um OAuth og OpenID Connect

Þegar um OIDC er að ræða er líka til stöðluð leið þar sem viðskiptavinur getur óskað eftir frekari upplýsingum um einstaklinginn [auðkenni] frá Heimildarþjónn'a, til dæmis, netfang sem notar Aðgangstákn.

Lærðu meira um OAuth og OIDC

Svo við fórum stuttlega yfir hvernig OAuth og OIDC virka. Tilbúinn til að grafa dýpra? Hér eru viðbótarúrræði til að hjálpa þér að læra meira um OAuth 2.0 og OpenID Connect:

Eins og alltaf, ekki hika við að kommenta. Til að fylgjast með nýjustu fréttum okkar skaltu gerast áskrifandi að twitter и Youtube Okta fyrir forritara!

PS frá þýðanda

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd