In yllustrearre gids foar OAuth en OpenID Connect

Noat. transl.: Dizze geweldige tekst fan Okta ferklearret hoe't OAuth en OIDC (OpenID Connect) op in ienfâldige en dúdlike manier wurkje. Dizze kennis sil nuttich wêze foar ûntwikkelders, systeembehearders, en sels "gewoane brûkers" fan populêre webapplikaasjes, dy't nei alle gedachten ek fertroulike gegevens útwikselje mei oare tsjinsten.

Yn 'e "stientiid" fan it ynternet wie it dielen fan ynformaasje tusken tsjinsten maklik. Jo joegen jo oanmelding en wachtwurd gewoan fan de iene tsjinst nei de oare, sadat it koe oanmelde by jo akkount en alle ynformaasje krije dy't it nedich is.

In yllustrearre gids foar OAuth en OpenID Connect
"Jou jo bankrekken asjebleaft." “Wy tasizze dat alles goed komt mei it wachtwurd en jild. Dat is echt earlik!" *hie hie*

Ferskriklik! Nimmen soe ea in brûker nedich wêze om in brûkersnamme en wachtwurd te dielen; bewiisbrieven, mei in oare tsjinst. D'r is gjin garânsje dat de organisaasje efter dizze tsjinst gegevens feilich hâldt en net mear persoanlike ynformaasje sammelje dan nedich. Dit kin gek lykje, mar guon apps brûke dizze praktyk noch!

Tsjintwurdich is d'r ien standert wêrtroch ien tsjinst de gegevens fan in oar feilich kin brûke. Spitigernôch brûke sokke noarmen in protte jargon en termen, wêrtroch't se dreech te begripen binne. It doel fan dit materiaal is om mei help fan ienfâldige yllustraasjes út te lizzen hoe't se wurkje (Finne jo dat myn tekeningen op in berneskribbel lykje? Och!).

In yllustrearre gids foar OAuth en OpenID Connect

Trouwens, dizze gids is ek beskikber yn fideoformaat:

Dames en hearen, wolkom: OAuth 2.0

OAuth 2.0 is in feiligensstandert wêrmei ien applikaasje tastimming kin krije om tagong te krijen ta ynformaasje yn in oare applikaasje. Folchoarder fan aksjes foar it útjaan fan in fergunning [fergunning] (of tastimming [tastimming]) faak belje machtiging [machtiging] of sels delegearre autorisaasje [delegearre autorisaasje]. Mei dizze standert kinne jo in applikaasje gegevens lêze of funksjes fan in oare applikaasje foar jo brûke sûnder it jo wachtwurd te jaan. Klasse!

As foarbyld, litte wy sizze dat jo in side fûn hawwe mei de namme "Bad Pun of the Day" [Terrible Pun of the Day] en besleat derop te registrearjen om alle dagen wurdspultsjes te ûntfangen yn 'e foarm fan tekstberjochten nei jo tillefoan. Jo fûnen de side echt leuk en besletten it te dielen mei elkenien dy't jo kenne. Elkenien hâldt ommers fan skriklike wurdwurden, krekt?

In yllustrearre gids foar OAuth en OpenID Connect
"Min wurd fan 'e dei: Hawwe jo heard oer de man dy't de lofterkant fan syn lichem ferlear? No hat hy altyd gelyk!” (oersetting is ûngefear, om't it orizjineel in eigen wurdspul hat - sawat oerset.)

It is dúdlik dat it skriuwen nei elke persoan op 'e kontaktlist gjin opsje is. En, as jo wat binne lykas my, sille jo heulendal dwaan om ûnnedich wurk te foarkommen. Gelokkich kin Terrible Pun of the Day al jo freonen útnoegje! Om dit te dwaan, moatte jo him gewoan tagong jaan ta de e-post fan jo kontakten - de side sels sil har útnoegings stjoere (OAuth-regels)!

In yllustrearre gids foar OAuth en OpenID Connect
"Elkenien hâldt fan wurdwurden! - Al ynlogd? - Wolle jo de webside Terrible Pun of the Day tagong jaan ta jo kontaktlist? - Dankewol! Fanôf no sille wy oant it ein fan 'e tiid oant it ein fan' e tiid oantinkens elke dei stjoere nei elkenien dy't jo kenne! Do bist de bêste freon!"

  1. Selektearje jo e-posttsjinst.
  2. As it nedich is, gean nei de e-postwebside en meld jo oan by jo akkount.
  3. Jou Terrible Pun of the Day tastimming om tagong te krijen ta jo kontakten.
  4. Werom nei de webside fan Terrible Pun of the Day.

As jo ​​​​fan gedachten feroarje, jouwe apps dy't OAuth brûke ek in manier om tagong yn te lûken. Sadree't jo beslute dat jo gjin kontakten mear wolle diele mei Terrible Pun of the Day, kinne jo nei de e-postside gean en de wurdpuntside fuortsmite fan jo list mei autorisearre applikaasjes.

OAuth flow

Wy hawwe krekt trochgien wat gewoanlik neamd wurdt streame [streame] OAuth. Yn ús foarbyld bestiet dizze stream út sichtbere stappen, lykas ferskate ûnsichtbere stappen, wêryn twa tsjinsten it iens binne om ynformaasje feilich te wikseljen. It eardere Terrible Pun of the Day-foarbyld brûkt de meast foarkommende OAuth 2.0-stream, bekend as de "autorisaasjekoade". [stream fan "autorisaasjekoade"].

Foardat wy dûke yn 'e details fan hoe't OAuth wurket, litte wy prate oer de betsjutting fan guon termen:

  • Eigner fan boarne:

    In yllustrearre gids foar OAuth en OpenID Connect

    It binne jo! Jo besitte jo bewiisbrieven, jo gegevens, en kontrolearje alle aksjes dy't kinne wurde nommen op jo akkounts.

  • Kliïnt:

    In yllustrearre gids foar OAuth en OpenID Connect

    In applikaasje (lykas de tsjinst Terrible Pun of the Day) dy't tagong wol ta bepaalde aksjes of útfiere út namme fan Eigner fan boarne'IN.

  • Autorisaasje Tsjinner:

    In yllustrearre gids foar OAuth en OpenID Connect

    Applikaasje dy't wit Eigner fan boarne'a en wêryn y Eigner fan boarne'en hawwe al in akkount.

  • Resource Server:

    In yllustrearre gids foar OAuth en OpenID Connect

    In applikaasje programmearring ynterface (API) of tsjinst dat Kliïnt wol út namme brûke Eigner fan boarne'IN.

  • Redirect URI:

    In yllustrearre gids foar OAuth en OpenID Connect

    De keppeling wêr Autorisaasje Tsjinner sil omliede Eigner fan boarne'en nei it jaan fan tastimming Kliïnt'u. Dit wurdt soms in "Callback URL" neamd.

  • Antwurd Type:

    In yllustrearre gids foar OAuth en OpenID Connect

    Soart ynformaasje ferwachte te wurde ûntfongen Kliïnt. It meast foarkommende Antwurd Type'om is de koade, dat wol Kliïnt ferwachtet te ûntfangen Autorisaasjekoade.

  • Scope:

    In yllustrearre gids foar OAuth en OpenID Connect

    Dit is in detaillearre beskriuwing fan de tagongsrjochten dy't nedich binne Kliïnt'y, lykas tagong ta gegevens of it útfieren fan bepaalde aksjes.

  • ynstimming:

    In yllustrearre gids foar OAuth en OpenID Connect

    Autorisaasje Tsjinner nimt Scopes, oanfrege Kliïnt'om, en freget Eigner fan boarne'ah, is hy ree om te leverjen Kliïnt'ha de passende tagongsrjochten.

  • Klient ID:

    In yllustrearre gids foar OAuth en OpenID Connect

    Dizze ID wurdt brûkt foar identifikaasje Kliïnt'en oer Autorisaasje Tsjinner'e.

  • Opdrachtgeheim:

    In yllustrearre gids foar OAuth en OpenID Connect

    Dit is in wachtwurd dat allinich bekend is Kliïntjo en Autorisaasje Tsjinner'u. It lit se ynformaasje útwikselje fertroulik.

  • Autorisaasjekoade:

    In yllustrearre gids foar OAuth en OpenID Connect

    In tydlike koade mei in koarte perioade fan jildichheid, dy't Kliïnt levert Autorisaasje Tsjinner'y yn ruil foar Tagong ta tagong.

  • Tagong ta tagong:

    In yllustrearre gids foar OAuth en OpenID Connect

    De kaai wêrmei de klant sil brûke om te kommunisearjen mei Resource Server'om. In soarte fan badge of kaai card dat jout Kliïnt' hawwe tastimming om gegevens op te freegjen of aksjes út te fieren Resource Server'e út jo namme.

remark: Soms binne autorisaasjetsjinner en boarnetsjinner deselde tsjinner. Yn guon gefallen kinne dit lykwols ferskate servers wêze, sels dejingen dy't net ta deselde organisaasje hearre. Bygelyks, de autorisaasjetsjinner kin in tsjinst fan tredden wêze dy't fertroud wurdt troch de boarnetsjinner.

No't wy bekend binne mei de basisbegripen fan OAuth 2.0, litte wy weromgean nei ús foarbyld en in tichterby besjen wat der bart yn 'e OAuth-stream.

In yllustrearre gids foar OAuth en OpenID Connect

  1. Jo, Eigner fan boarne, wol de tsjinst Terrible Pun of the Day leverje (Kliïnt'y) tagong ta jo kontakten sadat hy útnoegings kin stjoere nei al jo freonen.
  2. Kliïnt ferwiist de browser nei de side Autorisaasje Tsjinner'a en befettet yn it fersyk Klient ID, Redirect URI, Antwurd Type en ien of mear Scopes (fergunningen) dat hy nedich is.
  3. Autorisaasje Tsjinner kontrolearret jo, as it nedich is, freegje om in oanmelding en wachtwurd.
  4. Autorisaasje Tsjinner toant it formulier ynstimming (befêstiging) mei in list fan alle Scopesoanfrege Kliïnt'om. Jo iens of wegerje.
  5. Autorisaasje Tsjinner ferwiist jo nei de side Kliïnt'a, gebrûk Redirect URI tegearre mei Autorisaasjekoade (autorisaasjekoade).
  6. Kliïnt kontakten direkt Autorisaasje Tsjinner'om (de browser omgean Eigner fan boarne'a) en stjoert feilich Klient ID, Opdrachtgeheim и Autorisaasjekoade.
  7. Autorisaasje Tsjinner kontrolearret de gegevens en reagearret mei Tagong ta tagong'om (tagongstoken).
  8. No Kliïnt kin brûke Tagong ta tagong om in fersyk te stjoeren Resource Server om in list mei kontakten te krijen.

Client ID en geheim

Lang foardat jo Terrible Pun of the Day tagong hawwe ta jo kontakten, stifte de Client- en Autorisaasjetsjinner in wurkferhâlding. De autorisaasjetsjinner generearre de Client ID en Client Secret (soms neamd App ID и App geheim) en stjoerde se nei de kliïnt foar fierdere ynteraksje binnen OAuth.

In yllustrearre gids foar OAuth en OpenID Connect
"- Hallo! Ik soe graach wurkje mei dy! - Wis, gjin probleem! Hjir binne jo klant-ID en geheim! ”

De namme jout oan dat it Client Secret geheim moat wurde hâlden, sadat allinich de Client- en Autorisaasjetsjinner it witte. Ommers, it is mei har help dat de autorisaasjetsjinner de autentisiteit fan 'e kliïnt befêstiget.

Mar dat is net alles ... Sis asjebleaft hallo tsjin OpenID Connect!

OAuth 2.0 is ûntwurpen allinnich foar machtiging - om tagong te jaan ta gegevens en funksjes fan de iene applikaasje nei de oare. OpenID ferbine (OIDC) is in tinne laach boppe op OAuth 2.0 dy't oanmeld- en profylynformaasje tafoegje oer de brûker dy't ynlogd is op it akkount. It organisearjen fan in oanmeldsesje wurdt faak neamd autentikaasje [ferifikaasje], en ynformaasje oer de brûker ynlogd yn it systeem (d.w.s. Eigner fan boarne'e), — persoanlike gegevens [identiteit]. As de autorisaasjetsjinner OIDC stipet, wurdt it soms neamd persoanlike gegevens provider [identiteitsprovider]sûnt it jout Kliïnt'y ynformaasje oer Eigner fan boarne'e.

OpenID Connect lit jo senario's ymplementearje wêr't ien oanmelding kin wurde brûkt yn meardere applikaasjes - dizze oanpak is ek bekend as inkele oanmelding (SSO). In applikaasje kin bygelyks SSO-yntegraasje stypje mei sosjale netwurken lykas Facebook of Twitter, wêrtroch brûkers in akkount kinne brûke dy't se al hawwe en leaver brûke.

In yllustrearre gids foar OAuth en OpenID Connect

De OpenID Connect-stream sjocht der itselde út as mei OAuth. It ienige ferskil is dat yn it primêre fersyk de spesifike omfang brûkt is openid, - A Kliïnt op it lêst wurdt it wol Tagong ta tagongen ID Token.

In yllustrearre gids foar OAuth en OpenID Connect

Itselde as yn 'e OAuth-stream, Tagong ta tagong yn OpenID Connect - dit is in bepaalde wearde dy't net dúdlik is Kliïnt'u. Ut it eachpunt Kliïnt'IN Tagong ta tagong stiet foar in string fan tekens dy't wurdt stjoerd tegearre mei elk fersyk oan Resource Server'y, en dat bepaalt oft it token jildich is. ID Token is wat folslein oars.

ID Token is JWT

ID Token is in spesjaal opmakke string fan tekens bekend as in JSON Web Token of JWT (JWT-tokens wurde soms útsprutsen as "jots"). Foar waarnimmers fan bûten liket JWT miskien ûnbegryplik gobbledygook, mar Kliïnt kin ferskate ynformaasje ekstrahearje fan JWT lykas ID, brûkersnamme, oanmeldtiid foar akkount, ferfaldatum ID Token'ah, de oanwêzigens fan besykjen om te bemuoien mei JWT. Gegevens binnen ID Token' en wurde neamd oanfraach [easkje].

In yllustrearre gids foar OAuth en OpenID Connect

Yn it gefal fan OIDC is der ek in standert metoade wêrmei Kliïnt kinne ekstra persoanlike ynformaasje freegje [identiteit] от Autorisaasje Tsjinner'en, bygelyks, in e-mailadres mei help fan Tagong ta tagong.

Learje mear oer OAuth en OIDC

Dat, wy seagen koart nei hoe't OAuth en OIDC wurkje. Klear om djipper te graven? Hjir binne ekstra boarnen om jo te helpen mear te learen oer OAuth 2.0 en OpenID Connect:

Lykas altyd, fiel jo frij om kommentaar te jaan. Om op 'e hichte te bliuwen fan ús lêste nijs, abonnearje op Twitter и YouTube Okta foar ûntwikkelders!

PS fan oersetter

Lês ek op ús blog:

Boarne: www.habr.com

Add a comment