Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

Cathetan. nerjemahake.: Artikel gedhe iki dening Okta nerangake carane OAuth lan OIDC (OpenID Connect) bisa ing cara prasaja lan cetha. Kawruh iki bakal migunani kanggo pangembang, administrator sistem, lan malah "pangguna reguler" aplikasi web populer, sing paling mungkin uga ngganti data rahasia karo layanan liyane.

Ing Zaman Batu Internet, nuduhake informasi antarane layanan gampang. Sampeyan mung menehi login lan sandhi saka siji layanan menyang layanan liyane, supaya dheweke mlebu akun sampeyan lan nampa informasi sing dibutuhake.

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect
"Beri aku rekening bankmu." "Kita janji yen kabeh bakal apik karo tembung sandhi lan dhuwit. Sing jujur, jujur!" *hee hee*

medeni! Ora ana sing kudu mbutuhake pangguna kanggo nuduhake jeneng pangguna lan sandhi, kredensial, karo layanan liyane. Ora ana jaminan manawa organisasi ing mburi layanan iki bakal njaga data kasebut kanthi aman lan ora bakal ngumpulake informasi pribadhi luwih akeh tinimbang sing dibutuhake. Iku bisa uga muni edan, nanging sawetara app isih nggunakake laku iki!

Dina iki ana standar siji sing ngidini siji layanan kanggo aman nggunakake data liyane. Sayange, standar kuwi nggunakake akeh jargon lan istilah, kang complicates pangerten. Tujuan saka materi iki yaiku kanggo nerangake cara kerjane nggunakake ilustrasi sing prasaja (Apa sampeyan mikir yen gambarku meh padha karo daubing bocah-bocah? Wah!).

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

Miturut cara, pandhuan iki uga kasedhiya ing format video:

Sugeng rawuh: OAuth 2.0

OAuth 2.0 minangka standar keamanan sing ngidini siji aplikasi entuk ijin kanggo ngakses informasi ing aplikasi liyane. Urutan langkah kanggo nerbitake ijin [ijin] (utawa idin [idin]) asring nelpon wewenang [wewenang] utawa malah wewenang delegasi [wewenang delegasi]. Kanthi standar iki, sampeyan ngidini aplikasi maca data utawa nggunakake fungsi aplikasi liyane kanggo sampeyan tanpa menehi sandhi. Kelas!

Contone, umpamane sampeyan nemokake situs sing diarani "Unlucky Pun of the Day" [Pun of the Day] lan mutusaké kanggo ndhaftar ing supaya nampa puns saben dina ing wangun pesen teks ing telpon. Sampeyan pancene disenengi situs, lan sampeyan mutusaké kanggo nuduhake karo kabeh kanca-kanca. Sawise kabeh, kabeh wong seneng puns serem, ta?

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect
"Punika apes ing dina iki: Krungu babagan wong lanang sing ilang sisih kiwa awak? Saiki dheweke mesthi bener!” (terjemahan kira-kira, amarga asline duwe pundi dhewe - kira-kira transl.)

Cetha yen nulis kanggo saben wong saka dhaptar kontak ora dadi pilihan. Lan, yen sampeyan rada kaya aku, mula sampeyan bakal nindakake apa wae kanggo ngindhari karya sing ora perlu. Untunge, Terrible Pun of the Day bisa ngundang kabeh kanca sampeyan dhewe! Kanggo nindakake iki, sampeyan mung kudu mbukak akses menyang email kontak - situs kasebut bakal ngirim undhangan (aturan OAuth)!

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect
"Kabeh wong seneng dolanan! - Wis mlebu? "Apa sampeyan pengin ngidini situs web Terrible Pun of the Day ngakses dhaptar kontak sampeyan? - Matur nuwun! Wiwit saiki, kita bakal ngirim pangeling saben dina kanggo kabeh wong sing sampeyan kenal, nganti pungkasan jaman! Sampeyan kanca paling apik!"

  1. Pilih layanan email sampeyan.
  2. Yen perlu, pindhah menyang situs mail lan mlebu menyang akun.
  3. Menehi ijin Terrible Pun of the Day kanggo ngakses kontak sampeyan.
  4. Bali menyang situs Pun of the Day.

Yen sampeyan ngganti pikiran, aplikasi sing nggunakake OAuth uga menehi cara kanggo mbatalake akses. Sawise sampeyan mutusake yen sampeyan ora pengin nuduhake kontak maneh karo Terrible Pun of the Day, sampeyan bisa pindhah menyang situs mail lan mbusak situs pun saka dhaptar aplikasi sing sah.

Alur OAuth

Kita wis liwat apa sing biasane disebut mili [aliran] OAuth. Ing conto kita, aliran iki kalebu langkah-langkah sing katon, uga sawetara langkah sing ora katon, ing ngendi rong layanan setuju babagan ijol-ijolan informasi sing aman. Conto Terrible Pun of the Day sadurunge nggunakake aliran OAuth 2.0 sing paling umum, sing dikenal minangka aliran "kode wewenang". [alur "kode wewenang"].

Sadurunge nyilem rincian babagan cara kerja OAuth, ayo ngomong babagan makna sawetara istilah:

  • Pamilik Sumber Daya:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Iku sampeyan! Sampeyan duwe kredensial, data, lan ngontrol kabeh aktivitas sing bisa ditindakake ing akun sampeyan.

  • Klien:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Aplikasi (contone, layanan Terrible Pun of the Day) sing pengin ngakses utawa nindakake tumindak tartamtu atas jenenge Pamilik Sumber Daya'a.

  • Server wewenang:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    App sing ngerti Pamilik Sumber Daya'a lan ing kang u Pamilik Sumber Daya'a wis duwe akun.

  • server sumber daya:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Antarmuka pemrograman aplikasi (API) utawa layanan sing Klien pengin digunakake atas jenenge Pamilik Sumber Daya'a.

  • Pangalihan URI:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Link sing Server wewenang bakal pangalihan Pamilik Sumber Daya'lan sawise menehi ijin Klien'ing. Kadhangkala diarani minangka "URL Panggilan Balik".

  • Jinis Tanggapan:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Jinis informasi sing dikarepake bakal ditampa Klien. Sing paling umum Jinis Tanggapan'ohm iku kode, iku Klien ngarepake nampa Kode Otorisasi.

  • Scope:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Iki minangka katrangan rinci babagan ijin sing dibutuhake Klien'y, kayata ngakses data utawa nindakake tumindak tartamtu.

  • Idin:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Server wewenang njupuk Scopesdijaluk Klien'Om, lan takon Pamilik Sumber Daya'a, apa dheweke siap nyedhiyakake Klien'duwe ijin sing cocog.

  • ID pelanggan:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    ID iki digunakake kanggo ngenali Klien'a ing Server wewenang'e.

  • Rahasia Klien:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Iki sandhi sing mung dikenal Klien'u lan Server wewenang'ing. Iki ngidini dheweke nuduhake informasi kanthi pribadi.

  • Kode Otorisasi:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Kode sauntara karo wektu cendhak validitas, kang Klien nyedhiyakake Server wewenang'y ing ijol-ijolan kanggo Akses Token.

  • Akses Token:

    Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

    Tombol sing bakal digunakake klien kanggo komunikasi server sumber daya'om. A Urut saka badge utawa kertu tombol sing nyedhiyani Klien'duwe ijin kanggo njaluk data utawa nindakake tumindak ing server sumber daya'e atas jenenge sampeyan.

komentar: Kadhangkala Server Otorisasi lan Server Sumber minangka server sing padha. Nanging, ing sawetara kasus, iki bisa dadi server sing beda-beda, sanajan ora ana ing organisasi sing padha. Contone, Server Wewenang bisa uga minangka layanan pihak katelu sing dipercaya dening Server Sumber Daya.

Saiki kita wis nutupi konsep inti saka OAuth 2.0, ayo bali menyang conto lan deleng kanthi luwih rinci babagan apa sing kedadeyan ing aliran OAuth.

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

  1. kowe, Pamilik Sumber Daya, sampeyan pengin nyedhiyakake layanan Terrible Pun of the Day (Klieny) akses menyang kontak sampeyan supaya bisa ngirim undhangan menyang kabeh kanca.
  2. Klien pangalihan browser menyang kaca Server wewenang'a lan kalebu ing pitakonan ID pelanggan, Pangalihan URI, Jinis Tanggapan lan siji utawa luwih Scopes (ijin) iku perlu.
  3. Server wewenang verifikasi sampeyan, takon jeneng pangguna lan sandhi yen perlu.
  4. Server wewenang nampilake formulir Idin (konfirmasi) kanthi dhaptar kabeh Scopesdijaluk Klien'om. Sampeyan setuju utawa nolak.
  5. Server wewenang pangalihan sampeyan menyang situs Klien'a, nganggo Pangalihan URI bebarengan karo Kode Otorisasi (kode wewenang).
  6. Klien komunikasi langsung karo Server wewenang'ohm (bypassing browser Pamilik Sumber Daya'a) lan dikirim kanthi aman ID pelanggan, Rahasia Klien и Kode Otorisasi.
  7. Server wewenang mriksa data lan nanggapi karo Akses Token'om (token akses).
  8. Saiki Klien bisa nggunakake Akses Token kanggo ngirim panjalukan kanggo server sumber daya kanggo njaluk dhaptar kontak.

ID klien lan Rahasia

Sadurungé sampeyan ngidini Terrible Pun of the Day ngakses kontak sampeyan, Server Klien lan Otorisasi wis nggawe hubungan kerja. Server Otorisasi ngasilake ID Klien lan Rahasia Klien (kadhangkala disebut app ID и Rahasia App) lan dikirim menyang Klien kanggo interaksi luwih lanjut ing OAuth.

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect
"- Halo! Aku pengin bisa karo sampeyan! - Mesthi, ora masalah! Iki ID lan Rahasia Klien sampeyan!”

Jeneng kasebut nuduhake manawa Rahasia Klien kudu dirahasiakake supaya mung Klien lan Server Wewenang sing ngerti. Sawise kabeh, kanthi bantuan dheweke, Server Otorisasi ngonfirmasi bebener Klien.

Nanging ora mung iku ... Mangga welcome OpenID Connect!

OAuth 2.0 mung dirancang kanggo wewenang - kanggo nyedhiyakake akses menyang data lan fungsi saka siji aplikasi menyang aplikasi liyane. Sambungake OpenID (OIDC) minangka lapisan tipis ing ndhuwur OAuth 2.0 sing nambah rincian login lan profil pangguna sing mlebu ing akun kasebut. Organisasi sesi login asring diarani minangka otentikasi [otentikasi], lan informasi babagan pangguna sing mlebu menyang sistem (yaiku babagan Pamilik Sumber Daya'e), - data pribadhi [tetenger]. Yen Server Wewenang ndhukung OIDC, kadhangkala diarani minangka panyedhiya data pribadhi [panyedhiya identitas]amarga menehi Klien'duwe informasi babagan Pamilik Sumber Daya'e.

OpenID Connect ngidini sampeyan ngetrapake skenario ing ngendi login siji bisa digunakake ing macem-macem aplikasi - pendekatan iki uga dikenal minangka mlebu siji (SSO). Contone, aplikasi bisa ndhukung integrasi SSO karo jaringan sosial kayata Facebook utawa Twitter, ngidini pangguna nggunakake akun sing wis ana lan luwih seneng nggunakake.

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

Aliran (aliran) OpenID Connect katon padha karo kasus OAuth. Bentenipun mung ing request utami, orane katrangan tartamtu digunakake openid, - A Klien akhire dadi kaya Akses Tokenlan ID Token.

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

Kaya ing aliran OAuth, Akses Token ing OpenID Connect, iki sawetara nilai sing ora cetha Klien'ing. Saka sudut pandang Klien'A Akses Token nggantosi senar saka karakter sing liwati bebarengan karo saben request kanggo server sumber daya'y, sing nemtokake manawa token kasebut sah. ID Token nggantosi bab temen beda.

ID Token minangka JWT

ID Token minangka string karakter sing diformat khusus sing dikenal minangka JSON Web Token utawa JWT (kadhangkala token JWT diucapake kaya "jots"). Kanggo pengamat njaba, JWT bisa uga katon kaya omong kosong sing ora bisa dingerteni, nanging Klien bisa ngekstrak macem-macem informasi saka JWT, kayata ID, jeneng pangguna, wektu login, tanggal kadaluwarsa ID Token'a, anané upaya kanggo ngganggu JWT. Data ing njero ID Token'a diarani aplikasi [klaim].

Pandhuan Ilustrasi kanggo OAuth lan OpenID Connect

Ing kasus OIDC, ana uga cara standar Klien bisa njaluk informasi tambahan babagan individu [tetenger] saka Server wewenang'a, contone, alamat email nggunakake Akses Token.

Sinau luwih lengkap babagan OAuth lan OIDC

Dadi, kita mriksa kanthi ringkes babagan cara kerja OAuth lan OIDC. Siap nggali luwih jero? Ing ngisor iki sumber daya tambahan kanggo mbantu sampeyan sinau babagan OAuth 2.0 lan OpenID Connect:

Minangka tansah, aran gratis kanggo komentar. Kanggo tetep gaul karo warta paling anyar, langganan Twitter и YouTube Okta kanggo pangembang!

PS saka penerjemah

Waca uga ing blog kita:

Source: www.habr.com

Add a comment