Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

Nota. transl.: Kining nindot nga artikulo ni Okta nagpatin-aw kon sa unsang paagi ang OAuth ug OIDC (OpenID Connect) nagtrabaho sa yano ug tin-aw nga paagi. Kini nga kahibalo mahimong mapuslanon sa mga nag-develop, mga tigdumala sa sistema, ug bisan sa "mga regular nga tiggamit" sa mga sikat nga aplikasyon sa web, nga lagmit nagbinayloay usab sa kompidensyal nga datos sa ubang mga serbisyo.

Sa Panahon sa Bato sa Internet, ang pagpaambit sa impormasyon tali sa mga serbisyo sayon. Gihatag lang nimo ang imong login ug password gikan sa usa ka serbisyo ngadto sa lain, aron siya misulod sa imong account ug nakadawat sa bisan unsang impormasyon nga iyang gikinahanglan.

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect
"Ihatag kanako ang imong bank account." "Kami nagsaad nga ang tanan mahimong maayo sa password ug salapi. Tinuod kana, matinud-anon!" *hee hee*

Makalilisang! Walay usa nga kinahanglan nga magkinahanglan sa usa ka tiggamit sa pagpaambit sa usa ka username ug password, mga kredensyal, uban sa laing serbisyo. Wala’y garantiya nga ang organisasyon sa luyo niini nga serbisyo magtipig sa datos nga luwas ug dili mangolekta labi pa nga personal nga kasayuran kaysa kinahanglan. Mahimong buang kini, apan ang ubang mga app naggamit gihapon niini nga praktis!

Karon adunay usa ka sumbanan nga nagtugot sa usa ka serbisyo nga luwas nga magamit ang datos sa lain. Ikasubo, ang ingon nga mga sumbanan naggamit daghang mga jargon ug termino, nga nagpalisud kanila nga masabtan. Ang katuyoan niini nga materyal mao ang pagpatin-aw kung giunsa nila pagtrabaho gamit ang yano nga mga ilustrasyon (Hunahunaa nga ang akong mga drowing morag daubing sa mga bata? Aw!).

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

Pinaagi sa dalan, kini nga giya magamit usab sa format sa video:

Mga babaye ug ginoo, welcome: OAuth 2.0

OAuth 2.0 usa ka sumbanan sa seguridad nga nagtugot sa usa ka aplikasyon nga makakuha og pagtugot sa pag-access sa impormasyon sa laing aplikasyon. Pagkasunod-sunod sa mga lakang sa pag-isyu og permit [pagtugot] (o pagtugot [pag-uyon]) kanunay nga motawag pagtugot [awtorisasyon] o bisan pa gitugyan nga pagtugot [gitugyan nga pagtugot]. Uban niini nga sumbanan, gitugotan nimo ang usa ka aplikasyon sa pagbasa sa datos o paggamit sa mga gimbuhaton sa laing aplikasyon alang kanimo nga wala gihatag ang imong password. Klase!

Isip pananglitan, ingnon ta nga nakadiskubre ka og website nga gitawag og "Unlucky Pun of the Day" [Makalilisang Pun sa Adlaw] ug nakahukom nga magparehistro niini aron makadawat sa adlaw-adlaw nga mga puns sa porma sa mga text message sa telepono. Ganahan kaayo ka sa site, ug nakahukom ka nga ipaambit kini sa tanan nimong mga higala. Human sa tanan, ang tanan ganahan og creepy puns, di ba?

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect
"Makasubo nga pun sa adlaw: Nakadungog bahin sa lalaki nga nawala ang wala nga katunga sa iyang lawas? Karon siya kanunay nga husto!” (gibanabana nga hubad, tungod kay ang orihinal adunay kaugalingon nga pun - gibanabana nga transl.)

Klaro nga ang pagsulat sa matag tawo gikan sa lista sa kontak dili usa ka kapilian. Ug, kung ikaw usa ka gamay nga sama kanako, nan buhaton nimo ang bisan unsang gitas-on aron malikayan ang wala kinahanglana nga trabaho. Maayo na lang, ang Terrible Pun of the Day makaimbitar sa tanan nimong mga higala nga mag-inusara! Aron mahimo kini, kinahanglan nimo nga ablihan ang pag-access sa email sa imong mga kontak - ang site mismo magpadala kanila mga imbitasyon (mga lagda sa OAuth)!

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect
"Ang tanan nahigugma sa mga puns! - Naka log in na? β€œGusto ba nimong tugutan ang Terrible Pun of the Day nga website nga maka-access sa imong listahan sa kontak? - Salamat! Sukad karon, magpadala kami mga pahinumdom matag adlaw sa tanan nimong kaila, hangtod sa katapusan sa panahon! Ikaw ang labing suod nga higala!"

  1. Pilia ang imong serbisyo sa email.
  2. Kung gikinahanglan, adto sa mail site ug pag-sign in sa imong account.
  3. Hatagi ang Terrible Pun of the Day nga pagtugot nga ma-access ang imong mga kontak.
  4. Balik sa Terrible Pun of the Day site.

Kung mausab ang imong hunahuna, ang mga aplikasyon nga naggamit sa OAuth naghatag usab usa ka paagi aron mabawi ang pag-access. Kung nakahukom ka nga dili na nimo gusto nga makigbahin sa mga kontak sa Terrible Pun of the Day, mahimo kang moadto sa mail site ug tangtangon ang pun site gikan sa lista sa mga awtorisado nga aplikasyon.

OAuth Daloy

Bag-o lang mi nakaagi sa kasagarang tawag modagayday [modagayday] OAuth. Sa among pananglitan, kini nga dagan naglangkob sa makita nga mga lakang, ingon man usab sa daghang dili makita nga mga lakang, diin ang duha nga mga serbisyo nagkauyon sa usa ka luwas nga pagbinayloay sa kasayuran. Ang miagi nga Makalilisang nga Pun sa Adlaw nga pananglitan naggamit sa labing komon nga OAuth 2.0 nga dagan, nga nailhan nga "awtorisasyon code" nga dagan. ["agos sa awtorisasyon"].

Sa dili pa tukion ang mga detalye kung giunsa ang pagtrabaho sa OAuth, hisgutan naton ang kahulugan sa pipila nga mga termino:

  • Tag-iya sa Kapanguhaan:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Ikaw na nga! Imong gipanag-iya ang imong mga kredensyal, imong data, ug kontrola ang tanang kalihokan nga mahimong himoon sa imong mga account.

  • Kliyente:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Usa ka aplikasyon (pananglitan, ang Makalilisang nga Pun of the Day nga serbisyo) nga gustong mo-access o mohimo sa pipila ka mga aksyon alang sa Tag-iya sa Kapanguhaan'a.

  • Server sa pagtugot:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Ang aplikasyon nga nahibal-an Tag-iya sa Kapanguhaan'a ug diin u Tag-iya sa Kapanguhaan'a naa nay account.

  • kapanguhaan server:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Application programming interface (API) o serbisyo nga Kliyente gusto nga gamiton alang sa ngalan Tag-iya sa Kapanguhaan'a.

  • I-redirect ang URI:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Ang link nga Server sa pagtugot mag-redirect Tag-iya sa Kapanguhaan'ug human sa pagtugot Kliyente'sa. Usahay kini gitawag nga "Callback URL".

  • tipo sa tubag:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Ang matang sa impormasyon nga gilauman nga madawat Kliyente. Ang labing komon tipo sa tubag'ohm mao ang code, kana Kliyente nagpaabot nga makadawat Kodigo sa Pagtugot.

  • kasangkaran:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Kini usa ka detalyado nga paghulagway sa mga pagtugot nga gikinahanglan Kliyente'y, sama sa pag-access sa datos o paghimo sa pipila ka mga aksyon.

  • Pag-uyon sa:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Server sa pagtugot gikuha Mga Sakopgihangyo Kliyente'om, ug nangutana Tag-iya sa Kapanguhaan'a, andam ba siya sa paghatag Kliyente'adunay angay nga pagtugot.

  • ID sa kliyente:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Kini nga ID gigamit sa pag-ila Kliyente'sa Server sa pagtugot'e.

  • Sekreto sa kliyente:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Kini ang password nga nahibal-an ra Kliyente'u ug Server sa pagtugot'sa. Kini nagtugot kanila sa pagpakigbahin sa impormasyon nga pribado.

  • Kodigo sa Pagtugot:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Temporaryo nga code uban sa usa ka mubo nga panahon sa balido, nga Kliyente naghatag Server sa pagtugot'y baylo sa Pag-access Token.

  • Pag-access Token:

    Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

    Ang yawe nga gamiton sa kliyente aron makigkomunikar kapanguhaan server'om. Usa ka matang sa badge o key card nga naghatag Kliyente'adunay pagtugot sa paghangyo data o pagbuhat sa mga aksyon sa kapanguhaan server'e sa imong ngalan.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Usahay ang Authorization Server ug Resource Server parehas nga server. Bisan pa, sa pipila ka mga kaso, kini mahimong lainlain nga mga server, bisan kung dili sila sakop sa parehas nga organisasyon. Pananglitan, ang Authorization Server mahimong usa ka ikatulo nga partido nga serbisyo nga gisaligan sa Resource Server.

Karon nga natabunan na nato ang kinauyokan nga mga konsepto sa OAuth 2.0, balikan nato ang atong panig-ingnan ug tan-awon pag-ayo kon unsay mahitabo sa dagan sa OAuth.

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

  1. Ikaw, Tag-iya sa Kapanguhaan, gusto nimong ihatag ang Makalilisang Pun sa Adlaw nga serbisyo (Kliyentey) pag-access sa imong mga kontak aron sila makapadala og mga imbitasyon sa tanan nimong mga higala.
  2. Kliyente gi-redirect ang browser sa panid Server sa pagtugot'a ug iapil sa pangutana ID sa kliyente, I-redirect ang URI, tipo sa tubag ug usa o daghan pa Mga Sakop (mga pagtugot) gikinahanglan niini.
  3. Server sa pagtugot nagpamatuod kanimo, nangayo og username ug password kon gikinahanglan.
  4. Server sa pagtugot nagpakita ug porma Pag-uyon sa (mga kumpirmasyon) nga adunay lista sa tanan Mga Sakopgihangyo Kliyente'om. Mosugot ka o mobalibad.
  5. Server sa pagtugot nag-redirect nimo sa site Kliyente'a, gamit I-redirect ang URI kuyog ang Kodigo sa Pagtugot (kodigo sa pagtugot).
  6. Kliyente direktang nakigkomunikar sa Server sa pagtugot'ohm (pag-bypass sa browser Tag-iya sa Kapanguhaan'a) ug luwas nga nagpadala ID sa kliyente, Sekreto sa kliyente ΠΈ Kodigo sa Pagtugot.
  7. Server sa pagtugot nagsusi sa datos ug nagtubag sa Pag-access Token'om (token sa pag-access).
  8. Karon Kliyente magamit Pag-access Token sa pagpadala sa usa ka hangyo sa kapanguhaan server aron makakuha og lista sa mga kontak.

Client ID ug Sekreto

Sa wala pa nimo gitugotan ang Terrible Pun of the Day nga maka-access sa imong mga kontak, ang Client ug Authorization Server nakatukod og usa ka working relationship. Ang Authorization Server nakamugna sa Client ID ug Client Secret (usahay gitawag App ID ΠΈ Sekreto sa App) ug gipadala sila sa Kliyente para sa dugang nga interaksyon sulod sa OAuth.

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect
"- Hello! Gusto ko nga magtrabaho uban kanimo! - Sigurado, dili problema! Ania ang imong Client ID ug Sekreto!”

Ang ngalan nagpasabot nga ang Client Secret kinahanglan nga huptan nga sekreto aron ang Client ug Authorization Server lamang ang makahibalo niini. Human sa tanan, kini uban sa iyang tabang nga ang Authorization Server nagpamatuod sa kamatuoran sa Kliyente.

Apan dili lang kana... Palihog abiabi ang OpenID Connect!

Ang OAuth 2.0 gidisenyo lamang para sa pagtugot - sa paghatag og access sa data ug mga gimbuhaton gikan sa usa ka aplikasyon ngadto sa lain. Pagkonektar sa OpenID (OIDC) usa ka nipis nga layer sa ibabaw sa OAuth 2.0 nga nagdugang sa mga detalye sa pag-login ug profile sa user nga naka-sign in sa account. Ang organisasyon sa usa ka sesyon sa pag-login sagad gitawag nga panghimatuod [panghimatuud], ug impormasyon mahitungod sa user nga naka-log in sa sistema (ie mahitungod sa Tag-iya sa Kapanguhaan'e), - personal nga datos [identity]. Kung ang Authorization Server nagsuporta sa OIDC, usahay gitawag kini nga tighatag sa personal nga datos [identity provider]tungod kay naghatag kini Kliyente'adunay impormasyon mahitungod sa Tag-iya sa Kapanguhaan'e.

Gitugotan ka sa OpenID Connect nga ipatuman ang mga senaryo diin ang usa ka pag-login mahimong magamit sa daghang mga aplikasyon - kini nga pamaagi nailhan usab nga single sign-on (SSO). Pananglitan, ang usa ka aplikasyon mahimong mosuporta sa SSO integration sa mga social network sama sa Facebook o Twitter, nga magtugot sa mga tiggamit sa paggamit sa usa ka account nga naa na nila ug gusto nga gamiton.

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

Ang pag-agos (pag-agos) OpenID Connect parehas nga hitsura sa kaso sa OAuth. Ang bugtong kalainan mao nga sa panguna nga hangyo, ang piho nga sakup nga gigamit mao openid, - A Kliyente sa kadugayan maka ingon Pag-access Token, ug ID Token.

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

Sama sa dagan sa OAuth, Pag-access Token sa OpenID Connect, kini usa ka kantidad nga dili klaro Kliyente'sa. Gikan sa punto de bista Kliyenteβ€˜Π° Pag-access Token nagrepresentar sa usa ka hugpong sa mga karakter nga gipasa uban sa matag hangyo sa kapanguhaan server'y, nga nagtino kung ang token balido. ID Token nagrepresentar sa usa ka hingpit nga lahi nga butang.

Ang ID Token kay JWT

ID Token usa ka espesyal nga giporma nga hugpong sa mga karakter nga nailhan nga JSON Web Token o JWT (usahay ang JWT token gilitok sama sa "jots"). Alang sa mga tigpaniid sa gawas, ang JWT ingon og dili masabtan nga walay pulos, apan Kliyente mahimong makuha ang lainlaing impormasyon gikan sa JWT, sama sa ID, username, oras sa pag-login, petsa sa pag-expire ID Token'a, ang presensya sa mga pagsulay sa pagpanghilabot sa JWT. Data sa sulod ID Token'a gitawag mga aplikasyon [pangangkon].

Usa ka Gihulagway nga Giya sa OAuth ug OpenID Connect

Sa kaso sa OIDC, adunay usa usab ka sumbanan nga paagi diin Kliyente mahimong mangayo ug dugang nga impormasyon bahin sa indibidwal [identity] gikan sa Server sa pagtugot'a, pananglitan, usa ka email address nga naggamit Pag-access Token.

Pagkat-on og dugang mahitungod sa OAuth ug OIDC

Mao nga, among girepaso sa daklit kung giunsa ang OAuth ug OIDC nagtrabaho. Andam sa pagkalot sa mas lawom? Ania ang dugang nga mga kapanguhaan aron matabangan ka nga makakat-on pa bahin sa OAuth 2.0 ug OpenID Connect:

Sama sa kanunay, ayaw pagduhaduha sa pagkomento. Aron mapadayon ang pag-update sa among labing bag-ong balita, pag-subscribe sa Twitter ΠΈ YouTube Okta para sa mga developers!

PS gikan sa tighubad

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment