Torolalana misy sary ho an'ny OAuth sy OpenID Connect

Fanamarihana. transl.: Ity lahatsoratra lehibe nosoratan'i Okta ity dia manazava ny fomba fiasan'ny OAuth sy OIDC (OpenID Connect) amin'ny fomba tsotra sy mazava. Ity fahalalana ity dia hahasoa ny mpamorona, ny mpitantana ny rafitra, ary na dia ny "mpampiasa mahazatra" amin'ny rindranasa an-tranonkala malaza, izay azo inoana fa mifanakalo angona tsiambaratelo amin'ny serivisy hafa.

Tamin'ny vanim-potoanan'ny Stone an'ny Internet, mora ny mizara vaovao eo amin'ny serivisy. Nomenao fotsiny ny fidirana sy ny tenimiafinao avy amin'ny serivisy iray mankany amin'ny iray hafa, ka niditra tao amin'ny kaontinao izy ary nahazo fampahalalana ilainy.

Torolalana misy sary ho an'ny OAuth sy OpenID Connect
"Omeo ahy ny kaontinao amin'ny banky." “Mampanantena izahay fa hilamina ny zava-drehetra amin'ny tenimiafina sy ny vola. Marina izany, marina!" *hee hee*

Horror! Tsy misy olona tokony hitaky mpampiasa iray hizara solonanarana sy tenimiafina, FANAMARINANA, miaraka amin'ny serivisy hafa. Tsy misy antoka fa ny fikambanana ao ambadik'ity serivisy ity dia hitazona ny angon-drakitra ho azo antoka ary tsy hanangona fampahalalana manokana mihoatra noho izay ilaina. Mety ho toa adala izany, saingy mbola mampiasa an'io fanao io ny fampiharana sasany!

Ankehitriny dia misy fenitra tokana ahafahan'ny serivisy iray mampiasa ny angon-drakitra hafa. Indrisy anefa fa mampiasa jargon sy teny maro ny fenitra toy izany, izay manasarotra ny fahatakarany. Ny tanjon'ity fitaovana ity dia ny hanazava ny fomba fiasan'izy ireo amin'ny fampiasana fanoharana tsotra (Heverinao ve fa mitovy amin'ny fanaovana daubing ho an'ny ankizy ny sariko? Oh!).

Torolalana misy sary ho an'ny OAuth sy OpenID Connect

Raha ny marina, ity torolàlana ity dia misy amin'ny endrika video ihany koa:

Tompokolahy sy tompokovavy, tongasoa eto: OAuth 2.0

OAuth 2.0 dia fenitry ny fiarovana izay ahafahan'ny fampiharana iray mahazo alalana hidirana vaovao amin'ny fampiharana hafa. Fitohizan'ny dingana amin'ny fanomezana alalana [fahazoan-dalana] (na manaiky [fanekena]) miantso matetika alàlana [fanomezana] na dia fanomezan-dàlana nomena [fanomezana alalana]. Miaraka amin'ity fenitra ity dia avelanao hamaky angon-drakitra na hampiasa ny fiasan'ny rindranasa hafa amin'ny anaranao ny fampiharana iray nefa tsy manome azy ny tenimiafinao. kilasy!

Ohatra, andao atao hoe mahita tranokala antsoina hoe "Unlucky Pun of the Day" ianao. [Fihetseham-po mahatsiravina amin'ny andro] ary nanapa-kevitra ny hisoratra anarana amin'izany mba hahazoana teny isan'andro amin'ny endrika hafatra an-telefaona. Tena tianao ilay tranokala, ary nanapa-kevitra ny hizara izany amin'ny namanao rehetra ianao. Rehefa dinihina tokoa, ny rehetra dia tia teny mampatahotra, sa tsy izany?

Torolalana misy sary ho an'ny OAuth sy OpenID Connect
“Tena mampalahelo tamin'ny andro: Nandre momba ilay lehilahy namoy ny tapany havia? Marina foana izy izao!” (Dikanteny eo ho eo, satria manana teny manokana ny tany am-boalohany - eo ho eo. transl.)

Mazava fa ny fanoratana amin'ny olona tsirairay avy amin'ny lisitry ny fifandraisana dia tsy safidy. Ary, raha toa ahy ianao na dia kely aza, dia handeha amin'ny fomba rehetra hialana amin'ny asa tsy ilaina. Soa ihany fa ny Terrible Pun of the Day dia afaka manasa irery ny namanao rehetra! Mba hanaovana izany, mila manokatra fidirana amin'ny mailaka mifandray amin'ny fifandraisanao ianao - ny tranokala mihitsy no handefa fanasana azy ireo (fitsipika OAuth)!

Torolalana misy sary ho an'ny OAuth sy OpenID Connect
“Ny olon-drehetra dia tia teny! - Efa tafiditra? “Tianao ve ny hamela ny tranokala Terrible Pun of the Day hiditra ny lisitry ny fifandraisanao? - Misaotra anao! Manomboka izao, handefa fampahatsiahivana isan'andro ho an'izay rehetra fantatrao, hatramin'ny faran'ny andro! Ianao no namana tsara indrindra!"

  1. Fidio ny serivisy mailakao.
  2. Raha ilaina, mandehana any amin'ny tranokala mailaka ary midira amin'ny kaontinao.
  3. Omeo alalana ny Terrible Pun of the Day hidirana amin'ny fifandraisanao.
  4. Miverena amin'ny tranokala Terrible Pun of the Day.

Raha toa ka miova hevitra ianao dia manome fomba hanafoanana ny fidirana ihany koa ny fampiharana mampiasa OAuth. Rehefa manapa-kevitra ianao fa tsy te hizara fifandraisana amin'ny Terrible Pun of the Day intsony, dia afaka mandeha any amin'ny tranokala mailaka ianao ary manaisotra ny tranokalan'ny pun amin'ny lisitry ny fampiharana nahazo alalana.

OAuth Flow

Vao nandalo ny antsoina matetika izahay mikoriana [flow] OAuth. Ao amin'ny ohatra ataontsika, ity fikorianan'ny dia ahitana dingana hita maso, ary koa dingana maro tsy hita maso, izay misy serivisy roa mifanaiky amin'ny fifanakalozam-baovao azo antoka. Ny ohatra Terrible Pun of the Day teo aloha dia mampiasa ny fikorianan'ny OAuth 2.0 mahazatra indrindra, fantatra amin'ny anarana hoe "kaody fanomezan-dàlana". ["kaody fahazoan-dàlana"].

Alohan'ny handinihana ny antsipirihan'ny fomba fiasan'ny OAuth, andao hiresaka momba ny dikan'ny teny sasany:

  • Tompon'ny loharanon-karena:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ianao io! Anao ny fahazoan-dàlanao, ny angonao, ary mifehy ny hetsika rehetra mety hatao amin'ny kaontinao.

  • Client:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Fampiharana (ohatra, ny serivisy Terrible Pun of the Day) izay te-hiditra na hanao hetsika sasany amin'ny anaran'ny Tompon'ny loharanon-karena'а.

  • Serivisy fanomezan-dàlana:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ny app izay mahalala Tompon'ny loharanon-karena'a ary izay u Tompon'ny loharanon-karena'a efa manana kaonty.

  • mpizara loharanon-karena:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Application programming interface (API) na serivisy izay Client te hampiasaina amin'ny anarana Tompon'ny loharanon-karena'а.

  • Redirect URI:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ny rohy izay Serivisy fanomezan-dàlana dia havitrika Tompon'ny loharanon-karena'ary rehefa avy nanome alalana Client'amin'ny. Indraindray izy io dia antsoina hoe "URL Callback".

  • Karazana valiny:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ny karazana vaovao andrasana ho azo Client. Ny mahazatra indrindra Karazana valiny'ohm ny code, izany hoe Client manantena ny hahazo Kaodim-pahefana.

  • sehatra:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ity dia famaritana amin'ny antsipiriany momba ny fahazoan-dàlana ilaina Client'y, toy ny fidirana angon-drakitra na fanaovana hetsika sasany.

  • Consent:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Serivisy fanomezan-dàlana beret Scopesnangataka Client'om, ary manontany Tompon'ny loharanon-karena'a, vonona ve izy hanome Client'manana alalana mifanaraka amin'izany.

  • ID mpanjifa:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ity ID ity dia ampiasaina hamantarana Client'a ny Serivisy fanomezan-dàlana'e.

  • Tsiambaratelo an'ny mpanjifa:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Teny miafina tsy fantatra ihany io Client'u ary Serivisy fanomezan-dàlana'amin'ny. Izany dia ahafahan'izy ireo mizara vaovao manokana.

  • Kaodim-pahefana:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Code vonjimaika miaraka amin'ny fe-potoana fohy manan-kery, izay Client TENA Serivisy fanomezan-dàlana'y ho takalon'ny Access Token.

  • Access Token:

    Torolalana misy sary ho an'ny OAuth sy OpenID Connect

    Ny fanalahidy izay hampiasain'ny mpanjifa hifandraisana mpizara loharanon-karena'om. Karazana badge na karatra fanalahidin'ny manome Client'manana alalana hangataka data na hanao hetsika amin'ny mpizara loharanon-karena'e amin'ny anaranao.

fanamarihana: Indraindray ny Mpizara Fanomezana sy ny Server Resource dia iray ihany. Na izany aza, amin'ny toe-javatra sasany, dia mety ho samy hafa izy ireo, na dia tsy an'ny fikambanana iray ihany aza. Ohatra, ny Serveur Fanomezana dia mety ho serivisy antoko fahatelo atokisan'ny Resource Server.

Ankehitriny rehefa nandrakotra ny foto-kevitra fototra momba ny OAuth 2.0 isika, andao hiverina amin'ny ohatra asehontsika ary hijery akaiky ny zava-mitranga amin'ny fikorianan'ny OAuth.

Torolalana misy sary ho an'ny OAuth sy OpenID Connect

  1. ianao, Tompon'ny loharanon-karena, te-hanome ny serivisy Terrible Pun of the Day ianao (Clienty) fidirana amin'ny fifandraisanao mba hahafahan'izy ireo mandefa fanasana amin'ny namanao rehetra.
  2. Client mamindra ny navigateur mankany amin'ny pejy Serivisy fanomezan-dàlana'a ary ampidiro ao amin'ny fanontaniana ID mpanjifa, Redirect URI, Karazana valiny ary iray na maromaro Scopes (fahazoan-dalana) ilainy.
  3. Serivisy fanomezan-dàlana manamarina anao, mangataka solonanarana sy tenimiafina raha ilaina.
  4. Serivisy fanomezan-dàlana mampiseho endrika Consent (fanamafisana) miaraka amin'ny lisitry ny rehetra Scopesnangataka Client'om. Manaiky na mandà ianao.
  5. Serivisy fanomezan-dàlana mamindra anao amin'ny tranokala Client'a, mampiasa Redirect URI miaraka amin'ny Kaodim-pahefana (kaody fanomezan-dàlana).
  6. Client mifandray mivantana amin'ny Serivisy fanomezan-dàlana'ohm (mandalo ny navigateur Tompon'ny loharanon-karena'a) ary alefa soa aman-tsara ID mpanjifa, Tsiambaratelo an'ny mpanjifa и Kaodim-pahefana.
  7. Serivisy fanomezan-dàlana manamarina ny angona ary mamaly amin'ny Access Token'om (famantarana fidirana).
  8. ankehitriny Client afaka mampiasa Access Token mandefa fangatahana amin'ny mpizara loharanon-karena mba hahazoana lisitry ny fifandraisana.

ID mpanjifa sy tsiambaratelo

Ela be talohan'ny namelanao Terrible Pun of the Day hiditra amin'ny fifandraisanao, nanangana fifandraisana miasa ny Mpanjifa sy ny Fanomezan-dàlana. Ny Mpizara Fanomezana dia namorona ny ID mpanjifa sy tsiambaratelon'ny mpanjifa (indraindray antsoina hoe App ID и App Secret) ary nalefany tany amin'ny Mpanjifa mba hifandraisana bebe kokoa ao amin'ny OAuth.

Torolalana misy sary ho an'ny OAuth sy OpenID Connect
"- Salama! Te hiara-hiasa aminao aho! - Mazava ho azy fa tsy olana! Ity ny ID sy tsiambaratelonao mpanjifa!”

Ny anarana dia midika fa tsy maintsy afenina ny tsiambaratelon'ny mpanjifa ka ny Mpanjifa sy ny Mpizara Fanomezana ihany no mahalala izany. Rehefa dinihina tokoa, dia noho ny fanampiany no manamarina ny fahamarinan'ny Mpanjifa ny Serveur Fanomezana.

Saingy tsy izay ihany... Miangavy anao handray OpenID Connect!

OAuth 2.0 dia natao ho an'ny alàlana - manome fidirana amin'ny angona sy fiasa avy amin'ny fampiharana iray mankany amin'ny iray hafa. Sokafy ny ID Connect (OIDC) dia sosona manify eo an-tampon'ny OAuth 2.0 izay manampy ny antsipirian'ny fidirana sy ny mombamomba ny mpampiasa izay nisoratra anarana tamin'ny kaonty. Ny fandaminana ny fivoriana fidirana dia matetika antsoina hoe fanamarinana [fanamarinana], ary fampahalalana momba ny mpampiasa niditra tao amin'ny rafitra (izany hoe momba ny Tompon'ny loharanon-karenae), - angon-drakitra manokana [identity]. Raha manohana ny OIDC ny Serveur Fanomezana, dia antsoina hoe mpamatsy angon-drakitra manokana [mpanome anarana]satria manome Client'manana fampahalalana momba ny Tompon'ny loharanon-karena'e.

OpenID Connect dia ahafahanao manatanteraka toe-javatra ahafahan'ny fidirana tokana ampiasaina amin'ny rindranasa marobe - ity fomba ity dia antsoina koa hoe sonia tokana (SSO). Ohatra, mety hanohana ny fampidirana SSO amin'ny tambajotra sosialy toy ny Facebook na Twitter ny fampiharana iray, ahafahan'ny mpampiasa mampiasa kaonty efa ananany ary aleony ampiasaina.

Torolalana misy sary ho an'ny OAuth sy OpenID Connect

Ny fikorianan'ny OpenID Connect dia mitovy amin'ny an'ny OAuth. Ny hany mahasamihafa azy dia ao amin'ny fangatahana voalohany, ny sehatra manokana ampiasaina dia openid, - A Client lasa toy ny farany Access Token, ary ID Token.

Torolalana misy sary ho an'ny OAuth sy OpenID Connect

Tahaka ny ao amin'ny fikorianan'ny OAuth, Access Token ao amin'ny OpenID Connect, ity dia sanda tsy mazava Client'amin'ny. Raha ny fomba fijery Client'A Access Token maneho andian-tsoratra izay ampitaina miaraka amin'ny fangatahana tsirairay mpizara loharanon-karena'y, izay mamaritra raha manan-kery ny famantarana. ID Token maneho zavatra hafa tanteraka.

ID Token dia JWT

ID Token dia andian-tsoratra voalamina manokana fantatra amin'ny anarana hoe JSON Web Token na JWT (indraindray ny token'ny JWT dia tononina toy ny "jots"). Ho an'ny mpanara-maso ivelany, ny JWT dia mety ho toy ny fitenenan-dratsy tsy takatry ny saina, saingy Client Afaka maka vaovao isan-karazany avy amin'ny JWT, toy ny ID, solonanarana, fotoana fidirana, daty lany daty ID Token'a, ny fisian'ny fikasana hanelingelina ny JWT. Data anatiny ID Token'a no antsoina fampiharana [fitarainana].

Torolalana misy sary ho an'ny OAuth sy OpenID Connect

Raha ny momba ny OIDC dia misy ihany koa ny fomba mahazatra Client afaka mangataka fanazavana fanampiny momba ilay olona [identity] от Serivisy fanomezan-dàlana'a, ohatra, adiresy mailaka mampiasa Access Token.

Mianara bebe kokoa momba ny OAuth sy OIDC

Noho izany, nandinika fohifohy ny fomba fiasan'ny OAuth sy OIDC izahay. Vonona ny handalina lalindalina kokoa? Ireto misy loharano fanampiny hanampy anao hianatra bebe kokoa momba ny OAuth 2.0 sy ny OpenID Connect:

Toy ny mahazatra, aza misalasala maneho hevitra. Mba hahazoana vaovao farany, misoratra anarana amin'ny Twitter и YouTube Okta ho an'ny mpamorona!

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment