Yon Gid ilistre pou OAuth ak OpenID Connect

Remak. trad.: Gwo tèks sa a ki soti nan Okta eksplike kijan OAuth ak OIDC (OpenID Connect) travay nan yon fason ki senp epi klè. Konesans sa a pral itil devlopè, administratè sistèm, e menm "itilizatè regilye" nan aplikasyon entènèt popilè, ki gen plis chans tou echanj done konfidansyèl ak lòt sèvis.

Nan "laj wòch" entènèt la, pataje enfòmasyon ant sèvis yo te fasil. Ou senpleman te bay login ou ak modpas ou soti nan yon sèvis nan yon lòt pou li te kapab konekte nan kont ou epi resevwa nenpòt enfòmasyon li te bezwen.

Yon Gid ilistre pou OAuth ak OpenID Connect
"Tanpri bay kont labank ou." "Nou pwomèt ke tout bagay pral byen ak modpas la ak lajan. Sa vrèman onèt!" *hee hee*

Terib! Pèsonn pa ta dwe janm mande pou yon itilizatè pataje yon non itilizatè ak modpas; kalifikasyon yo, ak yon lòt sèvis. Pa gen okenn garanti ke òganizasyon an dèyè sèvis sa a pral kenbe done an sekirite epi yo pa pral kolekte plis enfòmasyon pèsonèl pase sa nesesè. Sa a ka sanble fou, men kèk aplikasyon toujou sèvi ak pratik sa a!

Jodi a gen yon sèl estanda ki pèmèt yon sèvis sèvi ak done yon lòt san danje. Malerezman, estanda sa yo sèvi ak anpil jagon ak tèm, ki fè yo difisil pou konprann. Objektif materyèl sa a se pou eksplike avèk èd ilistrasyon senp ki jan yo fonksyone (Èske w panse desen mwen yo sanble ak griyon yon timoun? Ebyen!).

Yon Gid ilistre pou OAuth ak OpenID Connect

By wout la, gid sa a disponib tou nan fòma videyo:

Medam ak mesye, akeyi: OAuth 2.0

OAuth 2.0 se yon estanda sekirite ki pèmèt yon aplikasyon jwenn pèmisyon pou jwenn enfòmasyon nan yon lòt aplikasyon. Sekans aksyon pou bay yon pèmi [pèmisyon] (Oswa konsantman [konsantman]) souvan rele otorizasyon [otorizasyon] oswa menm otorizasyon delege [otorizasyon delege]. Avèk estanda sa a, ou pèmèt yon aplikasyon li done oswa itilize fonksyon yon lòt aplikasyon pou non w san yo pa bay li modpas ou. Klas!

Kòm yon egzanp, an n di ou jwenn yon sit ki rele "Bad Pun of the Day" [Terib Pun nan jounen an] epi li deside enskri pou li resevwa jwèt jwèt chak jou atravè mesaj tèks nan telefòn ou. Ou vrèman renmen sit la epi ou deside pataje li ak tout moun ou konnen. Apre yo tout, tout moun renmen jwèt terib, dwa?

Yon Gid ilistre pou OAuth ak OpenID Connect
"Move jwèt la nan jounen an: èske ou te tande pale de nèg ki te pèdi bò gòch nan kò li? Kounye a li toujou gen rezon!" (Tradiksyon se apwoksimatif, paske orijinal la gen pwòp jwèt li sou mo - apeprè tradiksyon)

Li klè ke ekri chak moun sou lis kontak la se pa yon opsyon. Epi, si w se yon bagay tankou m, w ap fè tout sa w kapab pou w evite travay ki pa nesesè. Erezman, Terrible Pun of the Day ka envite tout zanmi ou yo! Pou fè sa, ou jis bezwen ba li aksè nan imèl kontak ou yo - sit la li menm ap voye envitasyon yo (règleman OAuth)!

Yon Gid ilistre pou OAuth ak OpenID Connect
"Tout moun renmen jwèt! — Ou deja konekte? — Èske ou vle bay sitwèb Terrible Pun of the Day aksè a lis kontak ou a? - Mèsi! Depi koulye a, nou pral voye rapèl chak jou bay tout moun ou konnen jouk nan fen tan! Ou se pi bon zanmi!"

  1. Chwazi sèvis imel ou a.
  2. Si sa nesesè, ale nan sit entènèt la lapòs epi konekte nan kont ou.
  3. Bay Terrible Pun of the Day pèmisyon pou jwenn kontak ou yo.
  4. Retounen sou sitwèb Terrible Pun of the Day la.

Nan ka ou chanje lide, aplikasyon ki sèvi ak OAuth tou bay yon fason yo anile aksè. Yon fwa ou deside ke ou pa vle pataje kontak ak Terrible Pun of the Day ankò, ou ka ale nan sit la lapòs epi retire sit la Pun nan lis aplikasyon ou otorize.

OAuth koule

Nou jis ale nan sa yo rele souvan koule [koule] OAuth. Nan egzanp nou an, koule sa a konsiste de etap vizib, osi byen ke plizyè etap envizib, kote de sèvis dakò fè echanj enfòmasyon an sekirite. Egzanp Terrible Pun of the Day anvan an itilize koule OAuth 2.0 ki pi komen an, ke yo rekonèt kòm koule "kòd otorizasyon". ["Kod otorizasyon" koule].

Anvan nou plonje nan detay ki jan OAuth travay, ann pale sou siyifikasyon kèk tèm:

  • Pwopriyetè Resous:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Se ou menm! Ou posede kalifikasyon ou, done ou, epi kontwole tout aksyon ki ka pran sou kont ou yo.

  • Kliyan:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Yon aplikasyon (tankou sèvis Terrible Pun of the Day) ki vle jwenn aksè oswa fè sèten aksyon nan non Pwopriyetè Resous'A.

  • Sèvè otorizasyon:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Aplikasyon ki konnen Pwopriyetè Resous'a ak nan ki y Pwopriyetè Resous'e deja gen yon kont.

  • Sèvè Resous:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Yon aplikasyon pwogramasyon entèfas (API) oswa sèvis sa Kliyan vle itilize pou non Pwopriyetè Resous'A.

  • Redireksyon URI:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Lyen ki kote Sèvè otorizasyon pral redireksyon Pwopriyetè Resous'ak apre yo fin bay pèmisyon Kliyan'u. Sa a pafwa yo rele yon "Callback URL".

  • Kalite Repons:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Kalite enfòmasyon yo espere resevwa Kliyan. Ki pi komen an Kalite Repons'om se kòd la, se sa ki Kliyan espere resevwa Kòd Otorizasyon.

  • Dimansyon:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Sa a se yon deskripsyon detaye sou otorizasyon ki nesesè yo Kliyan'y, tankou aksè nan done oswa fè sèten aksyon.

  • Konsantman:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Sèvè otorizasyon pran Scopes, mande Kliyan'om, epi li mande Pwopriyetè Resous'ah, èske li pare pou bay Kliyan'genyen otorizasyon ki apwopriye yo.

  • ID kliyan:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    ID sa a itilize pou idantifikasyon Kliyan'ak sou Sèvè otorizasyon'e.

  • Sekrè Kliyan:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Sa a se yon modpas ke yo konnen sèlman Kliyan'ou ak Sèvè otorizasyon'u. Li pèmèt yo fè echanj enfòmasyon konfidansyèlman.

  • Kòd Otorizasyon:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Yon kòd tanporè ak yon kout peryòd de validite, ki Kliyan bay Sèvè otorizasyon'y an echanj pou Aksè jton.

  • Aksè jton:

    Yon Gid ilistre pou OAuth ak OpenID Connect

    Kle ke kliyan an pral itilize pou kominike ak Sèvè Resous'om. Yon kalite badj oswa kat kle ki bay Kliyan'gen pèmisyon pou mande done oswa fè aksyon sou Sèvè Resous'e sou non ou.

Note: Pafwa Sèvè Otorizasyon ak Sèvè Resous yo se menm sèvè a. Sepandan, nan kèk ka sa yo ka diferan serveurs, menm sa yo ki pa fè pati menm òganizasyon an. Pa egzanp, Sèvè Otorizasyon an ka yon sèvis twazyèm pati ki fè konfyans sèvè Resous la.

Kounye a ke nou abitye ak konsèp debaz yo nan OAuth 2.0, ann tounen nan egzanp nou an epi pran yon gade pi pre nan sa k ap pase nan koule nan OAuth.

Yon Gid ilistre pou OAuth ak OpenID Connect

  1. Ou, Pwopriyetè Resous, ta renmen bay sèvis Terrible Pun of the Day (Kliyan'y) aksè nan kontak ou yo pou li ka voye envitasyon bay tout zanmi ou yo.
  2. Kliyan redireksyon navigatè a nan paj la Sèvè otorizasyon'a epi li enkli nan demann lan ID kliyan, Redireksyon URI, Kalite Repons ak youn oswa plis Scopes (pèmisyon) ke li bezwen.
  3. Sèvè otorizasyon tcheke ou, si sa nesesè, mande pou yon login ak modpas.
  4. Sèvè otorizasyon montre fòm lan Konsantman (konfimasyon) ak yon lis tout Scopesmande Kliyan'om. Ou dakò oswa refize.
  5. Sèvè otorizasyon redireksyon ou sou sit la Kliyan'a, lè l sèvi avèk Redireksyon URI ansanm ak Kòd Otorizasyon (kòd otorizasyon).
  6. Kliyan kontak dirèkteman Sèvè otorizasyon'om (yo kontoune navigatè a Pwopriyetè Resous'a) epi voye san danje ID kliyan, Sekrè Kliyan и Kòd Otorizasyon.
  7. Sèvè otorizasyon tcheke done yo epi reponn ak Aksè jton'om (siy aksè).
  8. Koulye a, Kliyan ka itilize Aksè jton pou voye yon demann bay Sèvè Resous yo nan lòd yo jwenn yon lis kontak.

ID kliyan ak sekrè

Byen anvan ou te pèmèt Terrible Pun of the Day jwenn aksè nan kontak ou yo, Kliyan an ak Sèvè Otorizasyon te etabli yon relasyon travay. Sèvè Otorizasyon an te pwodwi ID Kliyan ak Sekrè Kliyan (pafwa yo rele ID App и App sekrè) epi voye yo bay Kliyan an pou plis entèraksyon nan OAuth.

Yon Gid ilistre pou OAuth ak OpenID Connect
"- Alo! Mwen ta renmen travay avèk ou! - Asire w, pa yon pwoblèm! Isit la se ID Kliyan ou ak sekrè!"

Non an sijesyon ke Sekrè Kliyan an ta dwe kenbe sekrè pou ke sèlman Kliyan an ak Sèvè Otorizasyon konnen li. Apre yo tout, se avèk èd li yo ke Sèvè a Otorizasyon konfime otantisite nan Kliyan an.

Men, sa a se pa tout... Tanpri di bonjou OpenID Connect!

OAuth 2.0 fèt sèlman pou otorizasyon - bay aksè a done ak fonksyon soti nan yon aplikasyon nan yon lòt. OpenID konekte (OIDC) se yon kouch mens anlè OAuth 2.0 ki ajoute enfòmasyon sou koneksyon ak pwofil itilizatè a ki konekte nan kont la. Òganize yon sesyon login souvan rele otantifikasyon [otantifikasyon], ak enfòmasyon sou itilizatè a konekte nan sistèm nan (sa vle di. Pwopriyetè Resous'e), - done pèsonèl [idantite]. Si Sèvè Otorizasyon an sipòte OIDC, pafwa yo rele l founisè done pèsonèl [founisè idantite]depi li bay Kliyan'y enfòmasyon sou Pwopriyetè Resous'e.

OpenID Connect pèmèt ou aplike senaryo kote yo ka itilize yon sèl login nan plizyè aplikasyon - apwòch sa a konnen tou kòm yon sèl sign-on (SSO). Pou egzanp, yon aplikasyon ka sipòte entegrasyon SSO ak rezo sosyal tankou Facebook oswa Twitter, ki pèmèt itilizatè yo sèvi ak yon kont yo deja genyen epi yo prefere itilize.

Yon Gid ilistre pou OAuth ak OpenID Connect

Koule OpenID Connect la sanble menm jan ak OAuth. Sèl diferans lan se ke nan demann prensipal la sijè ki abòde espesifik yo itilize se openid, - A Kliyan nan fen li vin tankou Aksè jtonAk Token ID.

Yon Gid ilistre pou OAuth ak OpenID Connect

Menm jan ak nan koule OAuth la, Aksè jton nan OpenID Connect - sa a se yon valè sèten ki pa klè Kliyan'u. Soti nan pwen de vi Kliyan‘а Aksè jton reprezante yon seri karaktè ke yo voye ansanm ak chak demann Sèvè Resous'y, epi sa detèmine si siy la valab. Token ID se yon bagay konplètman diferan.

Token ID se JWT

Token ID se yon seri karaktè espesyal fòma ke yo rekonèt kòm yon JSON Web Token oswa JWT (JWT tokens yo pafwa pwononse "jots"). Pou obsèvatè deyò yo, JWT ka parèt tankou gobbledygook enkonpreyansib, men Kliyan ka ekstrè divès enfòmasyon ki soti nan JWT tankou ID, non itilizatè, tan koneksyon kont, dat ekspirasyon Token ID'ah, prezans tantativ pou entèfere ak JWT. Done andedan Token ID'Epi yo rele aplikasyon yo [reklamasyon].

Yon Gid ilistre pou OAuth ak OpenID Connect

Nan ka a nan OIDC gen tou yon metòd estanda pa ki Kliyan ka mande plis enfòmasyon pèsonèl [idantite] soti nan Sèvè otorizasyon'ak, pou egzanp, yon adrès imel lè l sèvi avèk Aksè jton.

Aprann plis sou OAuth ak OIDC

Se konsa, nou te gade yon ti tan sou fason OAuth ak OIDC travay. Pare pou fouye pi fon? Men lòt resous pou ede w aprann plis sou OAuth 2.0 ak OpenID Connect:

Kòm toujou, santi yo lib yo fè kòmantè. Pou w rete okouran ak dènye nouvèl nou yo, abònman ak Twitter и YouTube Okta pou Devlopè!

PS soti nan tradiktè

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè