Notu. transl.Ĉi tiu bonega artikolo de Okta klarigas kiel OAuth kaj OIDC (OpenID Connect) funkcias laŭ simpla kaj klara maniero. Ĉi tiu scio estos utila por programistoj, sistemadministrantoj, kaj eĉ "regulaj uzantoj" de popularaj TTT-aplikaĵoj, kiuj plej verŝajne ankaŭ interŝanĝas sentemajn datumojn kun aliaj servoj.
En la ŝtonepoko de la interreto, la interŝanĝo de informoj inter servoj estis facila. Vi simple donis vian salutnomon kaj pasvorton de unu servo al alia, por ke ili povu ensaluti en vian konton kaj ricevi kiajn ajn informojn, kiujn ili bezonis.

"Donu al mi vian bankkonton." - "Ni promesas, ke ĉio estos bone kun la pasvorto kaj la mono. Tio estas tiel honesta!" *hi-hi*
Hororo! Neniu iam ajn postulu, ke uzanto kunhavigu sian ensaluton kaj pasvorton, akreditaĵoj, kun alia servo. Ne estas garantio, ke la organizaĵo malantaŭ ĉi tiu servo gardos la datumojn sekuraj kaj ne kolektos pli da personaj informoj ol necese. Eble ŝajnas freneze, sed iuj aplikaĵoj ankoraŭ uzas ĉi tiun praktikon!
Hodiaŭ, ekzistas ununura normo kiu permesas al unu servo sekure uzi la datumojn de alia. Bedaŭrinde, tiaj normoj uzas multan ĵargonon kaj terminologion, kio malfaciligas ilian komprenon. La celo de ĉi tiu artikolo estas klarigi kiel ili funkcias uzante simplajn ilustraĵojn (Ĉu vi pensas, ke miaj desegnaĵoj aspektas kiel infanaj skribaĉoj? Nu, nu!).

Cetere, ĉi tiu gvidilo ankaŭ haveblas en videoformato:

Sinjorinoj kaj sinjoroj, jen OAuth 2.0
— estas sekureca normo, kiu permesas al unu aplikaĵo akiri permeson aliri informojn en alia aplikaĵo. La sinsekvo de agoj por doni permeson [permeso] (aŭ konsento [konsento]) ofte nomiĝas rajtigo [rajtigo] aŭ eĉ delegita rajtigo [delegita rajtigo]Per ĉi tiu normo, vi permesas al aplikaĵo legi datumojn aŭ uzi funkciojn de alia aplikaĵo por vi sen diri al ĝi vian pasvorton. Bonege!
Ekzemple, ni supozu, ke vi trovis retejon nomatan "Malbona Vortludo de la Tago" [Terura Vortludo de la Tago] kaj decidis registriĝi por ricevi vortludojn kiel tekstmesaĝojn al via telefono ĉiutage. La retejo tiom plaĉis al vi, ke vi decidis dividi ĝin kun ĉiuj, kiujn vi konas. Fine, ĉiuj ŝatas timigajn vortludojn, ĉu ne?

"Malbona vortludo de la tago: Ĉu vi aŭdis pri la ulo, kiu perdis la maldekstran flankon de sia korpo? Nun li ĉiam pravas!" (la traduko estas proksimuma, ĉar la originalo havas sian propran vortludon - noto de la tradukisto)
Estas klare, ke skribi al ĉiu persono el la kontaktlisto ne estas eblo. Kaj se vi estas eĉ iomete kiel mi, vi faros ĉion por eviti superfluan laboron. Feliĉe, Terura Vortludo de la Tago povas mem inviti ĉiujn viajn amikojn! Por fari tion, vi nur bezonas doni al ĝi aliron al la retpoŝtadreso de viaj kontaktoj - la retejo mem sendos al ili invitojn (OAuth-reguloj)!

"Ĉiu amas vortludojn! - Ĉu vi jam ensalutinta? - Ĉu vi volas doni al Terura Vortludo de la Tago aliron al viaj kontaktoj? - Dankon! Nun ni sendos memorigilojn al ĉiuj, kiujn vi konas, ĉiutage, por ĉiam kaj eterne! Vi estas la plej bona amiko iam ajn!"
- Elektu vian retpoŝtan servon.
- Se necese, iru al la retpoŝta retejo kaj ensalutu en vian konton.
- Bonvolu permesi al Terura Vortludo de la Tago aliri viajn kontaktojn.
- Reiru al la retejo de la Terura Vortludo de la Tago.
Se vi ŝanĝas vian opinion, aplikaĵoj kiuj uzas OAuth ankaŭ provizas manieron revoki aliron. Se vi decidas, ke vi jam ne volas dividi kontaktojn kun Terrible Pun of the Day, vi povas iri al la retpoŝta retejo kaj forigi la vortludan retejon de via listo de rajtigitaj aplikaĵoj.
OAuth-fluo
Ni ĵus trairis tion, kio estas kutime nomata rivereto [fluo] OAuth. En nia ekzemplo, ĉi tiu fluo konsistas el videblaj paŝoj, kaj ankaŭ pluraj nevideblaj paŝoj, en kiuj la du servoj konsentas interŝanĝi informojn sekure. La antaŭa ekzemplo "Terura Vortludo de la Tago" uzas la plej oftan fluon de OAuth 2.0, konatan kiel la fluo de "rajtiga kodo". [fluo de «rajtiga kodo»].
Antaŭ ol ni plonĝos en la detalojn pri kiel OAuth funkcias, ni parolu pri la signifo de kelkaj terminoj:
- Rimeda Posedanto:

Estas vi! Vi posedas viajn akreditaĵojn, viajn datumojn, kaj kontrolas ĉiujn agojn, kiujn oni povas fari en viaj kontoj. - Kliento:

Aplikaĵo (kiel ekzemple la servo Terura Vortludo de la Tago) kiu volas aliri aŭ plenumi certajn agojn nome de Rimeda Posedanto'A. - Rajtiga Servilo:

La aplikaĵo kiu scias Rimeda Posedantokaj en kiu Rimeda Posedanto'kaj jam havas konton.' - Rimeda Servilo:

Aplikaĵa programada interfaco (API) aŭ servo kiu Kliento volas uzi nome de Rimeda Posedanto'A. - Alidirekta URI:

Ligilo al kiu Rajtiga Servilo redirektos Rimeda Posedantokaj post kiam permeso estas donita KlientoĜi estas kelkfoje nomata la "Revoka URL". - tipo de respondo:

La speco de informoj atendataj esti ricevitaj KlientoLa plej ofta tipo de respondo'Om estas la kodo, tio estas, Kliento atendas ricevi Rajtiga Kodo. - amplekso:

Jen detala priskribo de la necesaj permesoj. Kliento'y, kiel ekzemple aliro al datumoj aŭ plenumado de certaj agoj. - konsento:

Rajtiga Servilo prenas Medioj, petis Kliento'om, kaj demandas Rimeda Posedanto"Ha, ĉu li pretas provizi Kliento'havi la taŭgajn permesojn.' - Klienta ID:

Ĉi tiu identigilo estas uzata por identigo. Klientokaj plu Rajtiga Servilo'e. - Klienta Sekreto:

Ĉi tiu estas pasvorto konata nur al Kliento'vi kaj Rajtiga Servilo'u. Ĝi permesas al ili interŝanĝi informojn konfidence. - Rajtiga Kodo:

Provizora kodo kun mallonga validperiodo, kiu Kliento provizas Rajtiga Servilo'u kontraŭ Alira tokeno. - Alira tokeno:

La ŝlosilo, kiun la kliento uzos por komuniki kun Rimeda Servilo'Om. Speco de insigno aŭ ŝlosilkarto, kiu provizas Kliento'havas permeson peti datumojn aŭ plenumi agojn sur Rimeda ServiloLi estas por vi.
ПримечаниеIafoje la Rajtiga Servilo kaj la Rimeda Servilo estas la sama servilo. Tamen, en iuj kazoj ili povas esti malsamaj serviloj, eĉ ne apartenantaj al la sama organizo. Ekzemple, la Rajtiga Servilo povas esti triaparta servo fidinda de la Rimeda Servilo.
Nun kiam ni jam traktis la bazajn konceptojn de OAuth 2.0, ni revenu al nia ekzemplo kaj rigardu pli detale kio okazas en la OAuth-fluo.

- Vi, Rimeda Posedanto, ĉu vi ŝatus provizi la servon Terura Vortludo de la Tago (Kliento'u) aliron al viaj kontaktoj por ke li povu sendi invitojn al ĉiuj viaj amikoj.
- Kliento redirektas la retumilon al la paĝo Rajtiga Servilo'a kaj inkluzivas en la peto Klienta ID, Alidirekta URI, tipo de respondo kaj unu aŭ pluraj Medioj (permesojn), kiujn li bezonas.
- Rajtiga Servilo konfirmas vin, petante vian ensaluton kaj pasvorton se necese.
- Rajtiga Servilo eligas la formularon konsento (konfirmo) kun listo de ĉiuj Medioj, petis Kliento'Om. Vi konsentas aŭ rifuzas.
- Rajtiga Servilo redirektas vin al la retejo Kliento'a, uzante Alidirekta URI kune kun Rajtiga Kodo (rajtiga kodo).
- Kliento rekte komunikas kun Rajtiga Servilo'om (preterpasante la retumilon Rimeda Posedanto'a) kaj sendas sekure Klienta ID, Klienta Sekreto и Rajtiga Kodo.
- Rajtiga Servilo kontrolas la datumojn kaj respondas per Alira tokeno'om (alirĵetono).
- Nun Kliento povas uzi Alira tokeno sendi peton al Rimeda Servilo por akiri liston de kontaktoj.
Klienta ID kaj Sekreto
Longe antaŭ ol vi permesis al Terura Vortludo de la Tago aliri viajn kontaktojn, la Kliento kaj Rajtiga Servilo establis funkcian rilaton. La Rajtiga Servilo generis Klientan ID-on kaj Klientan Sekreton (foje nomatan App-ID и Aplikaĵa Sekreto) kaj sendis ilin al la Kliento por plia interagado ene de OAuth.

"— Saluton! Mi ŝatus kunlabori kun vi! — Neniu problemo! Jen via Klienta ID kaj Sekreta Kodo!"
La nomo sugestas, ke la Klienta Sekreto estu tenata sekreta, por ke nur la Kliento kaj la Rajtiga Servilo sciu ĝin. Fine, per ĝia helpo la Rajtiga Servilo konfirmas la aŭtentecon de la Kliento.
Sed tio ne estas ĉio... Bonvolu saluti OpenID Connect!
OAuth 2.0 estas destinita por rajtigo — provizi aliron al datumoj kaj funkcioj de unu aplikaĵo al alia. (OIDC) estas maldika tavolo super OAuth 2.0 kiu aldonas ensalutajn kaj profilajn informojn pri la uzanto ensalutinta en la konton. La organizado de ensaluta sesio ofte nomiĝas aŭtentigo [aŭtentigo], kaj informoj pri la uzanto ensalutinta en la sistemon (t.e. pri Rimeda Posedanto'e), — personaj datumoj [identeco]Se la Rajtiga Servilo subtenas OIDC, ĝi estas kelkfoje nomata provizanto de personaj datumoj [identigprovizanto], ĉar ĝi provizas Klientopor informoj pri Rimeda Posedanto'e.
OpenID Connect ebligas scenarojn kie ununura ensaluto povas esti uzata tra pluraj aplikaĵoj, aliro ankaŭ konata kiel ununura ensaluto (SSO) Ekzemple, aplikaĵo povas subteni SSO-integriĝon kun sociaj retoj kiel Facebook aŭ Twitter, permesante al uzantoj uzi konton, kiun ili jam havas kaj preferas uzi.

La fluo de OpenID Connect aspektas same kiel la fluo de OAuth. La sola diferenco estas, ke en la komenca peto la specifa amplekso uzata estas openid, - A Kliento fine li fariĝas kvazaŭ Alira tokeno, kaj ID-Ĵetono.

Same kiel en la OAuth-fluo, Alira tokeno en OpenID Connect ĝi estas ia valoro, ne klara Kliento'u. El la vidpunkto Kliento'A Alira tokeno reprezentas ĉenon de signoj, kiu estas transdonita kune kun ĉiu peto al Rimeda Servilo'u, kaj tio determinas ĉu la ĵetono estas valida. ID-Ĵetono estas io tute alia.
ID-Ĵetono estas JWT
ID-Ĵetono — estas speciale formatita ĉeno de signoj konata kiel JSON Web Token aŭ JWT. (JWT-ĵetonoj estas kelkfoje prononcataj kiel "jotoj")Al eksteraj observantoj, JWT povas ŝajni konfuza sensencaĵo, sed Kliento povas ĉerpi diversajn informojn el JWT kiel ekzemple identigilon, uzantnomon, ensalutan tempon kaj eksvalidiĝan daton ID-Ĵetono'a, la ĉeesto de provoj mistrakti la JWT. Datumoj interne ID-Ĵetonokaj ili estas nomataj aplikoj [asertoj].

En la kazo de OIDC, ekzistas ankaŭ norma maniero per kiu Kliento povas peti pliajn informojn pri la individuo [identeco] el Rajtiga Servilokaj, ekzemple, retpoŝtadreso, uzante Alira tokeno.
Lernu pli pri OAuth kaj OIDC
Do, ni jam rapide priskribis kiel OAuth kaj OIDC funkcias. Ĉu vi pretas esplori pli profunde? Jen kelkaj pliaj rimedoj por helpi vin lerni pli pri OAuth 2.0 kaj OpenID Connect:
Kiel ĉiam, bonvolu komenti. Por resti ĝisdata pri niaj plej novaj novaĵoj, abonu и Okta por programistoj!
PS de tradukisto
Legu ankaŭ en nia blogo:
- «»;
- «»;
- «»;
- «".
fonto: www.habr.com











