Pituduh Gambar pikeun OAuth sareng OpenID Connect

Catetan. narjamahkeun.: Artikel hébat ieu ku Okta ngécéskeun kumaha OAuth na OIDC (OpenID Connect) jalan dina cara basajan tur jelas. Pangaweruh ieu bakal mangpaat pikeun pamekar, pangurus sistem, komo "pamaké biasa" tina aplikasi wéb populér, anu paling dipikaresep ogé tukeur data rahasia sareng jasa anu sanés.

Dina Jaman Batu Internét, ngabagi inpormasi antara jasa éta gampang. Anjeun ngan saukur masihan login sareng kecap akses anjeun tina hiji layanan ka anu sanés, ku kituna anjeunna ngalebetkeun akun anjeun sareng nampi inpormasi anu diperyogikeun.

Pituduh Gambar pikeun OAuth sareng OpenID Connect
"Pasihan abdi rekening bank anjeun." "Kami janji yén sadayana bakal saé kalayan kecap konci sareng artos. Ieu jujur, jujur!" *héhéhéhé*

Kaayaan sieun! Teu aya anu kedah meryogikeun pangguna pikeun ngabagi nami pangguna sareng kecap konci, credentials, kalawan layanan sejen. Teu aya jaminan yén organisasi anu aya di tukangeun jasa ieu bakal ngajaga datana aman sareng moal ngumpulkeun inpormasi pribadi langkung ti anu diperyogikeun. Éta sigana gélo, tapi sababaraha aplikasi masih ngagunakeun prakték ieu!

Kiwari, aya standar tunggal anu ngamungkinkeun hiji jasa pikeun aman ngagunakeun data anu sanés. Hanjakal, standar sapertos ngagunakeun loba jargon jeung istilah, nu complicates pamahaman maranéhanana. Tujuan tina bahan ieu nyaéta pikeun ngajelaskeun kumaha aranjeunna damel nganggo ilustrasi anu sederhana (Naha anjeun nyangka yén gambar kuring nyarupaan daubing barudak? Oh muhun!).

Pituduh Gambar pikeun OAuth sareng OpenID Connect

Ku jalan kitu, pituduh ieu ogé sayogi dina format pidéo:

Ladies jeung gentlemen, wilujeng sumping: OAuth 2.0

OAuth 2.0 mangrupakeun standar kaamanan anu ngamungkinkeun hiji aplikasi meunang idin pikeun ngakses informasi dina aplikasi sejen. Runtuyan léngkah pikeun ngaluarkeun idin [idin] (atawa idin [idin]) mindeng nelepon otorisasina [otorisasi] atawa malah otorisasina delegated [otorisasi delegasi]. Kalayan standar ieu, anjeun ngijinkeun aplikasi pikeun maca data atanapi nganggo fungsi aplikasi anu sanés pikeun anjeun tanpa masihan kecap akses anjeun. Kelas!

Salaku conto, anggap anjeun mendakan situs anu disebut "Unlucky Pun of the Day" [Pun of the Day] sarta mutuskeun pikeun ngadaptar dinya dina urutan pikeun nampa puns poean dina bentuk pesen téks dina telepon. Anjeun leres-leres resep situs éta, sareng anjeun mutuskeun pikeun ngabagikeunana ka sadaya réréncangan anjeun. Barina ogé, dulur resep puns creepy, katuhu?

Pituduh Gambar pikeun OAuth sareng OpenID Connect
"Pun hanjakal dinten ieu: Ngadangu ngeunaan lalaki anu kaleungitan satengah kénca awakna? Ayeuna anjeunna salawasna leres! ” (perkiraan tarjamahan, sabab aslina boga punjul sorangan - approx. transl.)

Éta jelas yén nulis ka unggal jalma tina daptar kontak sanés pilihan. Sareng, upami anjeun sakedik sapertos kuring, maka anjeun bakal ngalakukeun sagala cara pikeun ngahindarkeun padamelan anu teu perlu. Untungna, Terrible Pun of the Day tiasa ngondang sadaya réréncangan anjeun nyalira! Jang ngalampahkeun ieu, anjeun ngan kudu muka aksés ka email kontak anjeun - situs sorangan bakal ngirim aranjeunna invitations (aturan OAuth)!

Pituduh Gambar pikeun OAuth sareng OpenID Connect
"Sarerea resep puns! - Geus asup? "Naha anjeun badé ngijinkeun halaman wéb Terrible Pun of the Day ngakses daptar kontak anjeun? - Hatur nuhun! Ti ayeuna, kami bakal ngirim panginget unggal dinten ka sadayana anu anjeun terang, dugi ka akhir jaman! Anjeun téh sobat pangalusna!"

  1. Pilih jasa surélék anjeun.
  2. Upami diperlukeun, buka situs surélék tur asup ka akun anjeun.
  3. Pasihan idin Pun Terrible of the Day pikeun ngaksés kontak anjeun.
  4. Balik deui ka situs dahsyat Pun of the Day.

Upami anjeun robah pikiran, aplikasi anu nganggo OAuth ogé nyayogikeun cara pikeun nyabut aksés. Sakali anjeun mutuskeun yén anjeun henteu deui hoyong ngabagi kontak sareng Terrible Pun of the Day, anjeun tiasa angkat ka situs surat sareng ngahapus situs pun tina daptar aplikasi anu otorisasi.

Aliran OAuth

Urang nembé ngaliwat naon anu biasa disebut ngalir [ngalir] OAuth. Dina conto urang, aliran ieu diwangun ku hambalan katempo, kitu ogé sababaraha hambalan halimunan, nu dua jasa satuju dina bursa aman inpormasi. The Terrible Pun of the Day conto saméméhna ngagunakeun aliran OAuth 2.0 paling umum, katelah aliran "otorisasi kode". [alur "kode otorisasi"].

Saméméh ngalenyepan detil kumaha OAuth jalan, hayu urang ngobrol ngeunaan harti sababaraha istilah:

  • Pamilik Sumberdaya:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Ieu anjeun! Anjeun gaduh kredensial anjeun, data anjeun, sareng ngontrol sadaya kagiatan anu tiasa dilakukeun dina akun anjeun.

  • langganan:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Aplikasi (contona, jasa Terrible Pun of the Day) anu hoyong ngaksés atanapi ngalakukeun tindakan anu tangtu atas nama Pamilik Sumberdaya'a.

  • Otorisasina Server:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Aplikasi anu terang Pamilik Sumberdaya'a jeung di mana u Pamilik Sumberdaya'a geus boga akun.

  • server sumberdaya:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Antarbeungeut program aplikasi (API) atanapi jasa éta langganan hoyong nganggo atas nama Pamilik Sumberdaya'a.

  • Alihan URI:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Link éta Otorisasina Server bakal alihan Pamilik Sumberdaya'sarta sanggeus méré idin langganan'di. Ieu sok disebut salaku "URL Callback".

  • Jenis Tanggapan:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Jinis inpormasi anu dipiharep bakal ditampi langganan. Paling umum Jenis Tanggapan'ohm éta kode, éta langganan ngaharepkeun narima Kode Otorisasi.

  • wengkuan:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Ieu mangrupikeun pedaran lengkep ngeunaan idin anu diperyogikeun langganan'y, sapertos ngakses data atanapi ngalakukeun tindakan anu tangtu.

  • idin:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Otorisasina Server beret Wengkuandipénta langganan'om, jeung nanya Pamilik Sumberdaya'a, anjeunna siap nyadiakeun langganan'boga idin luyu.

  • Klién KTP:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    ID ieu dipaké pikeun ngaidentipikasi langganan'a on Otorisasina Server'e.

  • Rusiah Klién:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Ieu sandi nu ngan dipikawanoh langganan'u jeung Otorisasina Server'di. Éta ngamungkinkeun aranjeunna ngabagi inpormasi sacara pribadi.

  • Kode Otorisasi:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Kode samentara kalawan periode pondok validitas, nu langganan nyayogikeun Otorisasina Server'y di tukeran pikeun Aksés Token.

  • Aksés Token:

    Pituduh Gambar pikeun OAuth sareng OpenID Connect

    Konci anu bakal dianggo ku klien pikeun komunikasi server sumberdaya'om. A nurun tina badge atawa kartu konci nu nyadiakeun langganan'boga idin pikeun ménta data atawa ngalakukeun tindakan dina server sumberdaya'e atas nama anjeun.

nyarios: Kadang Server Otorisasi sareng Server Sumberdaya mangrupikeun server anu sami. Sanajan kitu, dina sababaraha kasus, ieu bisa jadi server béda, sanajan maranéhna teu milik organisasi sarua. Salaku conto, Server Otorisasi tiasa janten jasa pihak katilu anu dipercaya ku Server Sumberdaya.

Ayeuna urang parantos nutupan konsép inti OAuth 2.0, hayu urang uih deui ka conto urang sareng tingali langkung caket kana naon anu lumangsung dina aliran OAuth.

Pituduh Gambar pikeun OAuth sareng OpenID Connect

  1. Anjeun, Pamilik Sumberdaya, anjeun hoyong nyayogikeun jasa Pun Terrible of the Day (langganany) aksés ka kontak anjeun supados aranjeunna tiasa ngirim uleman ka sadaya réréncangan anjeun.
  2. langganan alihan browser ka kaca Otorisasina Server'a sareng kalebet dina pamundut Klién KTP, Alihan URI, Jenis Tanggapan jeung hiji atawa leuwih Wengkuan (idin) eta perlu.
  3. Otorisasina Server verifies anjeun, nanyakeun keur ngaran pamaké sarta sandi lamun perlu.
  4. Otorisasina Server mintonkeun formulir idin (konfirmasi) kalayan daptar sadaya Wengkuandipénta langganan'om. Anjeun satuju atanapi nolak.
  5. Otorisasina Server alihan anjeun ka loka langganan'a, ngagunakeun Alihan URI babarengan jeung Kode Otorisasi (kode otorisasina).
  6. langganan komunikasi langsung jeung Otorisasina Server'ohm (bypassing browser Pamilik Sumberdaya'a) jeung aman ngirim Klién KTP, Rusiah Klién и Kode Otorisasi.
  7. Otorisasina Server mariksa data sarta ngabales kalawan Aksés Token'om (token aksés).
  8. ayeuna langganan tiasa nganggo Aksés Token pikeun ngirim pamundut ka server sumberdaya pikeun meunangkeun daptar kontak.

ID klien tur Rusiah

Lila sateuacan anjeun ngijinkeun Terrible Pun of the Day pikeun ngaksés kontak anjeun, Klién sareng Otorisasi Server parantos ngadegkeun hubungan kerja. Server Otorisasi ngahasilkeun ID Klién sareng Rahasia Klién (sok disebut ID App и App Rusiah) sareng dikirim ka Klién pikeun interaksi salajengna dina OAuth.

Pituduh Gambar pikeun OAuth sareng OpenID Connect
"- Halo! Abdi hoyong damel sareng anjeun! - Yakin, teu masalah! Ieu mangrupikeun ID Klién sareng Rahasia anjeun! ”

Ngaranna nunjukkeun yén Rahasia Klién kedah dijaga rusiah supados ngan ukur Klién sareng Server Otorisasi anu terang. Barina ogé, éta kalayan pitulungna yén Server Otorisasi mastikeun kabeneran Klién.

Tapi éta henteu sadayana ... Mangga wilujeng sumping OpenID Connect!

OAuth 2.0 ngan dirancang pikeun otorisasi - nyadiakeun aksés ka data jeung fungsi ti hiji aplikasi ka nu sejen. OpenID Sambungkeun (OIDC) nyaéta lapisan ipis dina luhureun OAuth 2.0 anu nambihan inpormasi login sareng profil pangguna anu asup kana akun éta. Organisasi sési login sering disebut salaku auténtikasi [auténtikasi], sareng inpormasi ngeunaan pangguna anu asup kana sistem (nyaéta ngeunaan Pamilik Sumberdaya'e), - data pribadi [idéntitas]. Lamun Otorisasina Server ngarojong OIDC, sok disebut salaku panyadia data pribadi [panyadia identitas]sabab nyadiakeun langganan'gaduh inpormasi ngeunaan Pamilik Sumberdaya'e.

OpenID Connect ngamungkinkeun anjeun pikeun nerapkeun skénario dimana hiji login tiasa dianggo dina sababaraha aplikasi - pendekatan ieu ogé katelah tunggal asup-on (SSO). Salaku conto, hiji aplikasi tiasa ngadukung integrasi SSO sareng jaringan sosial sapertos Facebook atanapi Twitter, anu ngamungkinkeun para pangguna nganggo akun anu tos aya sareng langkung resep dianggo.

Pituduh Gambar pikeun OAuth sareng OpenID Connect

Aliran (aliran) OpenID Connect katingalina sami sareng dina kasus OAuth. Hijina bédana nyaéta yén dina pamundut primér, wengkuan husus dipaké nyaéta openid, - A langganan ahirna meunang kawas Aksés Tokenjeung ID Token.

Pituduh Gambar pikeun OAuth sareng OpenID Connect

Kawas dina aliran OAuth, Aksés Token di OpenID Connect, ieu sababaraha nilai nu teu jelas langganan'di. Tina sudut pandang langganan'a Aksés Token ngagambarkeun string of karakter nu diliwatan sapanjang kalawan unggal pamundut ka server sumberdaya'y, nu nangtukeun mun token sah. ID Token ngagambarkeun hal lengkep beda.

ID Token mangrupikeun JWT

ID Token mangrupikeun senar karakter anu diformat khusus anu katelah JSON Web Token atanapi JWT (kadangkala token JWT diucapkeun kawas "jots"). Pikeun pengamat luar, JWT sigana sapertos omong kosong anu teu kaharti, tapi langganan tiasa nimba sababaraha inpormasi tina JWT, sapertos ID, nami pangguna, waktos login, tanggal kadaluwarsa ID Token'a, ayana usaha pikeun ngaganggu JWT. Data jero ID Token'a disebut aplikasi [klaim].

Pituduh Gambar pikeun OAuth sareng OpenID Connect

Dina kasus OIDC, aya ogé cara standar langganan bisa ménta inpo tambahan ngeunaan individu [idéntitas] от Otorisasina Server'a, contona, alamat surélék maké Aksés Token.

Diajar langkung seueur ngeunaan OAuth sareng OIDC

Janten, urang marios sakedap kumaha OAuth sareng OIDC jalan. Siap ngagali langkung jero? Ieu sumber tambahan pikeun ngabantosan anjeun langkung seueur ngeunaan OAuth 2.0 sareng OpenID Connect:

Salaku salawasna, ngarasa Luncat ka mairan. Pikeun tetep up to date sareng beja panganyarna kami, ngalanggan Twitter и YouTube Okta pikeun pamekar!

PS ti penerjemah

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar