Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

Not. werger.: Ev gotara hêja ya Okta rave dike ka OAuth û OIDC (OpenID Connect) çawa bi rengek hêsan û zelal dixebitin. Ev zanyarî dê ji bo pêşdebiran, rêvebirên pergalê, û tewra "bikarhênerên birêkûpêk" ên serîlêdanên webê yên populer, ku bi îhtîmalek mezin daneyên nepenî bi karûbarên din re jî diguhezînin re kêrhatî be.

Di Serdema Kevir a Înternetê de, parvekirina agahdariyê di navbera karûbaran de hêsan bû. We bi hêsanî têketin û şîfreya xwe ji karûbarek din da karûbarek din, da ku ew têkeve hesabê we û agahdariya ku jê re lazim bû werbigire.

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect
"Hesabê xwe yê bankê bide min." “Em soz didin ku dê her tişt bi şîfre û pereyan baş be. Ew rast e, rast e!" *hee hee*

Xof! Divê tu kes ji bikarhênerek hewce neke ku navek bikarhêner û şîfreyek parve bike, şehadan, bi xizmeteke din. Tu garantî tune ku rêxistina li pişt vê karûbarê dê daneyan ewle bihêle û dê ji hewcedariyê bêtir agahdariya kesane kom neke. Dibe ku ew dîn xuya bike, lê hin serîlêdan hîn jî vê pratîkê bikar tînin!

Îro standardek yekane heye ku dihêle karûbarek bi ewlehî daneyên din bikar bîne. Mixabin, standardên weha gelek jargon û terman bikar tînin, ku têgihîştina wan tevlihev dike. Armanca vê materyalê ew e ku rave bike ka ew çawa bi karanîna nîgarên sade dixebitin (Hûn difikirin ku rismên min dişibin xêzkirina zarokan? Oh baş!).

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

Bi awayê, ev rêber di forma vîdyoyê de jî heye:

Xanim û birêz, bi xêr hatin: OAuth 2.0

OAuth 2.0 standardek ewlehiyê ye ku destûrê dide yek serîlêdanek ku destûrê bide gihîştina agahdariya di serîlêdana din de. Rêzeya gavên ji bo dayîna destûrê [destûr] (an jî razîbûn [razîbûn]) gelek caran bang dikin wekîlkirinî [wekîlkirinî] an jî jî destûra veqetandî [desthilatdariya şandî]. Bi vê standardê, hûn destûr didin serîlêdanek ku daneyan bixwîne an fonksiyonên serîlêdanek din li ser navê we bikar bîne bêyî ku şîfreya xwe bide wê. Sinif!

Weke mînak, em bibêjin ku hûn malperek bi navê "Puna Bêbext a Rojê" kifş dikin. [Peyva Xerîb a Rojê] û biryar da ku li ser wê qeyd bike da ku rojane bi awayê mesajên nivîsê li ser têlefonê werbigire. We bi rastî ji malperê hez kir, û we biryar da ku hûn wê bi hemî hevalên xwe re parve bikin. Beriya her tiştî, her kes ji lênûskên xezeb hez dike, rast?

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect
"Peydaya bêbext ya rojê: Li ser zilamê ku nîvê çepê yê laşê xwe winda kiriye bihîstiye? Niha ew her gav rast e!” (wergera teqrîbî, ji ber ku orîjînal gotara xwe heye - nêzîkê werger.)

Eşkere ye ku nivîsandina her kesê ji navnîşa têkiliyê ne vebijarkek e. Û, heke hûn piçek jî mîna min bin, wê hingê hûn ê her gav biçin ku ji karên nehewce dûr bikevin. Xweşbextane, Terrible Puna Rojê dikare hemî hevalên we bixwe vexwîne! Ji bo kirina vê yekê, hûn tenê hewce ne ku gihîştina e-nameya têkiliyên xwe vekin - malper bixwe dê ji wan re vexwendnameyê bişîne (qanûnên OAuth)!

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect
“Her kes ji şanoyê hez dike! - Jixwe têketine? "Ma hûn dixwazin bihêlin ku malpera Terrible Pun of the Day bigihîje navnîşa têkiliya we? - Sipas ji were! Ji niha û pê ve, em ê her roj bîranînan ji her kesê ku hûn nas dikin re bişînin, heya dawiya demê! Tu hevalê herî baş î!"

  1. Karûbarê e-nameya xwe hilbijêrin.
  2. Ger hewce be, biçin malpera nameyê û têkevin hesabê xwe.
  3. Destûrê bidin Terrible Pun of the Day ku bigihîje têkiliyên xwe.
  4. Vegere malpera Terrible Pun of the Day.

Ger hûn hişê xwe biguhezînin, serîlêdanên ku OAuth bikar tînin rêyek ji bo betalkirina gihîştinê jî peyda dikin. Gava ku hûn biryar didin ku hûn êdî naxwazin têkiliyan bi Terrible Pun of the Day re parve bikin, hûn dikarin biçin malpera e-nameyê û malpera pun ji navnîşa serîlêdanên destûrdar derxînin.

OAuth Flow

Em tenê ji tiştê ku bi gelemperî jê re tê gotin derbas bûne herrikîn [herrikîn] OAuth. Di mînaka me de, ev herik ji gavên xuya, û hem jî çend gavên nedîtbar pêk tê, ku tê de du karûbar li ser danûstendinek ewledar a agahdarî li hev dikin. Mînaka berê ya Terrible Pun of the Day, herikîna OAuth 2.0 ya herî gelemperî, ku wekî "koda destûrnameyê" tê zanîn, bikar tîne. ["koda destûrnameyê" herikîna].

Berî ku em li hûrguliyên ka OAuth çawa dixebite, em li ser wateya hin peyvan biaxivin:

  • Xwediyê çavkaniyê:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Ew tu yî! Hûn xwediyê pêbaweriyên xwe, daneyên xwe ne, û hemî çalakiyên ku li ser hesabên we têne kirin kontrol dikin.

  • Kirrîxwaz:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Serlêdanek (mînakî, karûbarê Terrible Puna Rojê) ku dixwaze li ser navê hin çalakiyan bigihîje an pêk bîne. Xwediyê çavkaniyê'a.

  • Servera Destûrdariyê:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Serlêdana ku dizane Xwediyê çavkaniyê'a û tê de u Xwediyê çavkaniyê'jixwe hesabek heye.

  • server çavkaniyê binirxîne:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Navbera bernamesaziya serîlêdanê (API) an karûbarê ku Kirrîxwaz dixwaze li ser navê xwe bikar bîne Xwediyê çavkaniyê'a.

  • URI beralî bike:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Girêdana ku Servera Destûrdariyê dê beralî bike Xwediyê çavkaniyê'û piştî dayîna destûrê Kirrîxwaz'ba. Ew carinan wekî "URL-ya paşvegerê" tê binav kirin.

  • cureyê bersivê:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Cureyê agahdariya ku tê payîn ku were wergirtin Kirrîxwaz. Ya herî gelemperî cureyê bersivê'ohm kod e, ew e Kirrîxwaz li hêviya wergirtinê ye Destûra Destûrê.

  • di çarçoveya:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Ev ravek berfireh a destûrên ku hewce ne Kirrîxwaz'y, wek gihîştina daneyan an pêkanîna hin çalakiyan.

  • Razîbûn:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Servera Destûrdariyê digire Scopesdaxwaz kirin Kirrîxwaz'om, û dipirse Xwediyê çavkaniyê'a, ew amade ye ku pêşkêş bike Kirrîxwaz'destûrên minasib hene.

  • Nasnameya kiriyar:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Ev nasname ji bo naskirinê tê bikaranîn Kirrîxwaz'a ser Servera Destûrdariyê'e.

  • Secret Client:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Ev şîfreya ku tenê tê zanîn e Kirrîxwaz'u û Servera Destûrdariyê'ba. Ew dihêle ku ew agahdariya taybet parve bikin.

  • Destûra Destûrê:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Koda demkî bi demek kurt a derbasdar, ku Kirrîxwaz peyda dike Servera Destûrdariyê'y di berdêla Têketina Têketinê.

  • Têketina Têketinê:

    Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

    Mifteya ku dê xerîdar bikar bîne da ku pê re têkilî daynin server çavkaniyê binirxîne'om. Cûreyek nîşanek an qerta sereke ya ku peyda dike Kirrîxwaz'destûr heye ku daneyan daxwaz bike an çalakiyan li ser bike server çavkaniyê binirxîneli ser navê te ye.

bingotin: Carinan Pêşkêşkara Destûrdanê û Pêşkêşkara Çavkaniyê heman server in. Lêbelê, di hin rewşan de, dibe ku ev serverên cûda bin, tewra ku ew ne ji heman rêxistinê ne. Mînakî, Servera Destûrnameyê dibe ku karûbarek sêyemîn be ku ji hêla Pêşkêşkara Çavkaniyê ve tê pêbawer kirin.

Naha ku me têgehên bingehîn ên OAuth 2.0 vegirtiye, em vegerin ser mînaka xwe û ji nêz ve li tiştê ku di herikîna OAuth de diqewime binêre.

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

  1. Hûn, Xwediyê çavkaniyê, hûn dixwazin karûbarê Terrible Puna Rojê peyda bikin (Kirrîxwazy) bigihîjin têkiliyên xwe da ku ew ji hemî hevalên we re vexwendinê bişînin.
  2. Kirrîxwaz gerokê beralî dike ser rûpelê Servera Destûrdariyê'a û di nav pirsê de Nasnameya kiriyar, URI beralî bike, cureyê bersivê û yek an jî zêdetir Scopes (destûr) jê re lazim e.
  3. Servera Destûrdariyê we piştrast dike, ger hewce bike navek bikarhêner û şîfreyek dipirse.
  4. Servera Destûrdariyê formek nîşan dide Razîbûn (pejirandin) bi navnîşek hemî Scopesdaxwaz kirin Kirrîxwaz'om. Hûn qebûl dikin an red dikin.
  5. Servera Destûrdariyê we beralî dike malperê Kirrîxwaz'a, bikaranîn URI beralî bike bi hev re Destûra Destûrê (koda destûrnameyê).
  6. Kirrîxwaz rasterast pê re têkilî daynin Servera Destûrdariyê'ohm (ji gerokê re derbas dibe Xwediyê çavkaniyê'a) û bi ewlehî dişîne Nasnameya kiriyar, Secret Client и Destûra Destûrê.
  7. Servera Destûrdariyê daneyan kontrol dike û bersivê dide Têketina Têketinê'om (nîşana gihîştinê).
  8. Now Kirrîxwaz dikarin bikar bînin Têketina Têketinê ji bo şandina daxwazek server çavkaniyê binirxîne ji bo ku navnîşek têkiliyan bistînin.

ID Client û Secret

Demek dirêj berî ku we destûr da Terrible Pun of the Day ku bigihîje têkiliyên we, Xerîdar û Servera Destûrdanê têkiliyek xebatê ava kiribû. Servera Destûrnameyê Nasnameya Xerîdar û Nepeniya Xerîdar (carinan tê gotin Nasnameya App и App Secret) û ji bo pêwendiya bêtir di hundurê OAuth de wan ji Xerîdar re şandin.

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect
"- Slav! Ez dixwazim bi we re bixebitim! - Bê guman, ne pirsgirêk e! Li vir Nasnameya Xerîdar û Veşartina we hene!”

Nav nîşan dide ku Sira Xerîdar divê veşartî bimîne da ku tenê Xerîdar û Servera Destûrnameyê wê bizanibe. Beriya her tiştî, bi alîkariya wî ye ku Servera Desthilatdariyê rastiya Xerîdar piştrast dike.

Lê ev ne hemû ye... Ji kerema xwe bi xêr hatî OpenID Connect!

OAuth 2.0 tenê ji bo hatî çêkirin wekîlkirinî - peydakirina gihîştina dane û fonksiyonan ji serîlêdanek berbi ya din. OpenID Girêdan (OIDC) li ser OAuth 2.0 qatek zirav e ku hûrguliyên têketinê û profîla bikarhênerê ku tê îmzekirin li hesabê zêde dike. Rêxistinkirina danişîna têketinê bi gelemperî wekî tê gotin authentication [rastkirin], û agahdariya li ser bikarhênerê ku têketî pergalê (ango der barê Xwediyê çavkaniyêe), - daneyên şexsî [nasname]. Ger Servera Destûrnameyê OIDC piştgirî dike, carinan wekî tê gotin pêşkêşvanê daneyên kesane [pêşkêşkerê nasnameyê]ji ber ku ew pêşkêş dike Kirrîxwaz'agahiyek li ser heye Xwediyê çavkaniyê'e.

OpenID Connect dihêle hûn senaryoyên ku têketinek yekane di gelek serlêdanan de were bikar anîn bicîh bikin - ev nêzîkatî jî wekî tê zanîn nîşana yekane (SSO). Mînakî, dibe ku serîlêdanek yekbûna SSO bi torên civakî yên wekî Facebook an Twitter-ê re piştgirî bike, ku rê dide bikarhêneran ku hesabek ku berê heye bikar bînin û tercîh dikin ku bikar bînin.

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

Herikîna (herikîn) OpenID Connect wekî di doza OAuth de xuya dike. Cûdahiya tenê ev e ku di daxwaza bingehîn de, qada taybetî ya ku tê bikar anîn ev e openid, - A Kirrîxwaz di dawiyê de dibe mîna Têketina Têketinê, û ID Token.

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

Mîna di herikîna OAuth de, Têketina Têketinê di OpenID Connect de, ev hin nirx e ku ne diyar e Kirrîxwaz'ba. Ji xala Kirrîxwaz'a Têketina Têketinê rêzek tîpan nîşan dide ku bi her daxwazekê re tê derbas kirin server çavkaniyê binirxîne'y, ku diyar dike ka token derbasdar e. ID Token tiştekî bi temamî cuda temsîl dike.

ID Token JWT ye

ID Token rêzek taybetmendî ya karakteran e ku wekî JSON Web Token an JWT tê zanîn (carinan nîşaneyên JWT wekî "jots" têne gotin). Ji çavdêrên derveyî re, dibe ku JWT wekî giloverek nefêmkirî xuya bike, lê Kirrîxwaz dikare ji JWT-ê agahdariyên cihêreng derxe, wek ID, navê bikarhêner, dema têketinê, tarîxa qedandinê ID Token'a, hebûna hewildanên destwerdana JWT. Daneyên hundir ID Token'a têne gotin sepanên [îddîa].

Rêbernameyek Illustrated ji bo OAuth û OpenID Connect

Di doza OIDC de, rêgezek standard jî heye ku tê de ye Kirrîxwaz dikare di derbarê kesane de agahdariya zêde bixwaze [nasname] ji Servera Destûrdariyê'a, wek nimûne, navnîşek e-nameyek bikar tîne Têketina Têketinê.

Di derbarê OAuth û OIDC de bêtir fêr bibin

Ji ber vê yekê, me bi kurtî vekoland ka OAuth û OIDC çawa dixebitin. Amade ne ku kûr bikolin? Li vir çavkaniyên din hene ku ji we re bibin alîkar ku hûn di derbarê OAuth 2.0 û OpenID Connect de bêtir fêr bibin:

Mîna her gav, ji bo şîrovekirinê hîs bikin. Ji bo ku hûn bi nûçeyên me yên herî dawî re agahdar bibin, bibin abone Twitter и YouTube Okta ji bo pêşdebiran!

PS ji wergêr

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment