OAuth va OpenID Connect uchun tasvirlangan qo'llanma
Eslatma. tarjima.: Oktaning ushbu ajoyib maqolasi OAuth va OIDC (OpenID Connect) qanday ishlashini sodda va tushunarli tarzda tushuntiradi. Ushbu bilim ishlab chiquvchilar, tizim ma'murlari va hatto boshqa xizmatlar bilan maxfiy ma'lumotlarni almashadigan mashhur veb-ilovalarning "muntazam foydalanuvchilari" uchun foydali bo'ladi.
Internetning tosh asrida xizmatlar o'rtasida ma'lumot almashish oson edi. Siz shunchaki login va parolingizni bir xizmatdan boshqasiga berdingiz, shunda u sizning hisobingizga kirdi va kerakli ma'lumotlarni oldi.
"Menga bank hisobingizni bering." “Parol va pul bilan hammasi yaxshi bo'lishiga va'da beramiz. Bu halol, halol!" *he-he*
Dahshat! Hech kim foydalanuvchidan foydalanuvchi nomi va parolni almashishni talab qilmasligi kerak, hisobga olish ma'lumotlari, boshqa xizmat bilan. Ushbu xizmat ortidagi tashkilot ma'lumotlarni xavfsiz saqlashiga va kerak bo'lgandan ko'ra ko'proq shaxsiy ma'lumotlarni to'plamasligiga kafolat yo'q. Bu aqldan ozishi mumkin, lekin ba'zi ilovalar hali ham bu amaliyotdan foydalanadi!
Bugungi kunda bitta xizmat boshqasining ma'lumotlaridan xavfsiz foydalanish imkonini beruvchi yagona standart mavjud. Afsuski, bunday standartlarda juda ko'p jargon va atamalar qo'llaniladi, bu ularni tushunishni qiyinlashtiradi. Ushbu materialning maqsadi oddiy illyustratsiyalar yordamida qanday ishlashini tushuntirishdir (Sizningcha, mening chizgan rasmlarim bolalarning dabdabalariga o'xshaydimi? Xo'sh!).
Aytgancha, ushbu qo'llanma video formatida ham mavjud:
Xonimlar va janoblar, xush kelibsiz: OAuth 2.0
OAuth 2.0 bir ilovaga boshqa ilovadagi maʼlumotlarga kirish uchun ruxsat olish imkonini beruvchi xavfsizlik standarti. Ruxsatnoma berish bosqichlari ketma-ketligi [ruxsat] (yoki rozilik[rozilik]) tez-tez qo'ng'iroq qiling ruxsat[ruxsat] yoki hatto berilgan vakolat[vakolatli ruxsat]. Ushbu standart yordamida siz ilovaga parolingizni bermasdan maʼlumotlarni oʻqish yoki sizning nomingizdan boshqa ilova funksiyalaridan foydalanishga ruxsat berasiz. Sinf!
Misol tariqasida, siz "Kunning omadsiz o'yini" deb nomlangan saytni topdingiz deylik. [Kunning dahshatli so'zi] va har kuni telefonda matnli xabarlar ko'rinishidagi so'z o'yinlarini olish uchun ro'yxatdan o'tishga qaror qildi. Sizga sayt juda yoqdi va siz uni barcha do'stlaringiz bilan baham ko'rishga qaror qildingiz. Axir, hamma dahshatli so'zlarni yaxshi ko'radi, shunday emasmi?
"Kunning baxtsiz so'zi: tanasining chap yarmini yo'qotgan yigit haqida eshitganmisiz? Endi u har doim haqdir! ” (taxminan tarjima, chunki asl nusxada o'z so'z birikmasi bor - taxminan tarjima).
Kontaktlar ro'yxatidan har bir kishiga yozish variant emasligi aniq. Va agar siz menga ozgina o'xshagan bo'lsangiz, keraksiz ishlardan qochish uchun hamma narsani qilasiz. Yaxshiyamki, Kunning Dahshatli Pun o'zi barcha do'stlaringizni taklif qilishi mumkin! Buning uchun kontaktlaringizning elektron pochtasiga kirishni ochish kifoya - saytning o'zi ularga taklifnomalar yuboradi (OAuth qoidalari)!
"Hamma so'z birikmalarini yaxshi ko'radi! - Allaqachon tizimga kirganmisiz? “Kunning dahshatli so‘zlashuvi veb-saytiga kontaktlar ro‘yxatiga kirishga ruxsat bermoqchimisiz? - Rahmat! Bundan buyon biz har kuni siz bilgan har bir kishiga, oxirigacha eslatmalar yuboramiz! Siz eng yaxshi do'stsiz! ”
Elektron pochta xizmatini tanlang.
Agar kerak bo'lsa, pochta saytiga o'ting va hisobingizga kiring.
Kunning dahshatli so'zlashuviga kontaktlaringizga kirishga ruxsat bering.
"Kunning dahshatli so'zi" saytiga qaytish.
Agar fikringizni o'zgartirsangiz, OAuth-dan foydalanadigan ilovalar kirishni bekor qilish usulini ham taqdim etadi. Kunning dahshatli o'yinchisi bilan aloqalarni endi baham ko'rishni xohlamasligingizga qaror qilganingizdan so'ng, pochta saytiga o'tishingiz va so'zlashuv saytini ruxsat etilgan ilovalar ro'yxatidan olib tashlashingiz mumkin.
OAuth oqimi
Biz hozirgina odatda deb ataladigan narsadan o'tdik oqim[oqim] OAuth. Bizning misolimizda, bu oqim ko'rinadigan bosqichlardan, shuningdek, bir nechta ko'rinmas bosqichlardan iborat bo'lib, ularda ikkita xizmat xavfsiz ma'lumot almashinuviga rozi bo'ladi. Oldingi “Kunning dahshatli so‘zi” misolida “avtorizatsiya kodi” oqimi sifatida tanilgan eng keng tarqalgan OAuth 2.0 oqimidan foydalaniladi. ["avtorizatsiya kodi" oqimi].
OAuth qanday ishlashini batafsil ko'rib chiqishdan oldin, keling, ba'zi atamalarning ma'nosi haqida gapiraylik:
Resurs egasi:
Bu sizsiz! Siz hisob ma'lumotlaringiz, ma'lumotlaringizga egalik qilasiz va hisob qaydnomangizda bajarilishi mumkin bo'lgan barcha harakatlarni nazorat qilasiz.
mijoz:
nomidan ma'lum harakatlarga kirishni yoki amalga oshirishni xohlaydigan ilova (masalan, Kunning dahshatli Pun xizmati) Resurs egasi'A.
Avtorizatsiya serveri:
Biladigan dastur Resurs egasi'a va qaysi u Resurs egasi"Allaqachon hisobi bor.
resurs serveri:
Ilova dasturlash interfeysi (API) yoki unga xizmat ko'rsatish mijoz nomidan foydalanmoqchi Resurs egasi'A.
URI-ni qayta yo'naltirish:
Bu havola Avtorizatsiya serveri yo'naltiradi Resurs egasiva ruxsat berilgandan keyin mijoz'da. U ba'zan "qayta qo'ng'iroq URL" deb ataladi.
javob turi:
Qabul qilinishi kutilayotgan ma'lumotlar turi mijoz. Eng keng tarqalgan javob turi"ohm - bu kod, ya'ni mijoz olishni kutadi Avtorizatsiya kodi.
Tortib:
Bu talab qilinadigan ruxsatlarning batafsil tavsifi mijoz'y, masalan, ma'lumotlarga kirish yoki muayyan harakatlarni bajarish.
Rozilik:
Avtorizatsiya serveri oladi Maydonlarso'ralgan mijoz— deb soʻradi Resurs egasi'a, u ta'minlashga tayyormi? mijoz'tegishli ruxsatlarga ega bo'ling.
mijoz ID:
Ushbu ID identifikatsiya qilish uchun ishlatiladi mijoza on Avtorizatsiya serveri'e.
Mijoz sirlari:
Bu faqat ma'lum bo'lgan parol mijoz'u va Avtorizatsiya serveri'da. Bu ularga shaxsiy ma'lumotlarni almashish imkonini beradi.
Avtorizatsiya kodi:
Qisqa muddatga ega bo'lgan vaqtinchalik kod mijoz beradi Avtorizatsiya serverining evaziga Kirish Token.
Kirish Token:
Mijoz muloqot qilish uchun foydalanadigan kalit resurs serveri'om. Ta'minlovchi bir turdagi nishon yoki kalit karta mijoz'ma'lumot so'rash yoki amallarni bajarish uchun ruxsatga ega resurs serverisizning nomingizdan.
nota: Ba'zida avtorizatsiya serveri va resurs serveri bir xil serverdir. Biroq, ba'zi hollarda, ular bir tashkilotga tegishli bo'lmasa ham, turli xil serverlar bo'lishi mumkin. Masalan, avtorizatsiya serveri Resurs serveri ishonchli uchinchi tomon xizmati bo'lishi mumkin.
Endi biz OAuth 2.0 ning asosiy tushunchalarini ko‘rib chiqdik, keling, misolimizga qaytaylik va OAuth oqimida nima sodir bo‘lishini batafsil ko‘rib chiqaylik.
Siz, Resurs egasi, siz "Kunning dahshatli so'zi" xizmatini taqdim qilmoqchisiz (mijozy) barcha do'stlaringizga taklifnoma yuborishlari uchun kontaktlaringizga kirish.
mijoz brauzerni sahifaga yo'naltiradi Avtorizatsiya serveri'a va so'rovga kiriting mijoz ID, URI-ni qayta yo'naltirish, javob turi va bir yoki bir nechta Maydonlar (ruxsatnomalar) kerak.
Avtorizatsiya serveri sizni tekshiradi, agar kerak bo'lsa, foydalanuvchi nomi va parolni so'raydi.
Avtorizatsiya serveri shaklni ko'rsatadi Rozilik (tasdiqlashlar) hammasi ro'yxati bilan Maydonlarso'ragan mijoz'om. Siz rozi bo'lasiz yoki rad etasiz.
Avtorizatsiya serveri sizni saytga yo'naltiradi mijoz'a, foydalanish URI-ni qayta yo'naltirish bilan birga Avtorizatsiya kodi (avtorizatsiya kodi).
mijoz bilan bevosita muloqot qiladi Avtorizatsiya serveri'ohm (brauzerni chetlab o'tish Resurs egasia) va xavfsiz yuboradi mijoz ID, Mijoz sirlari и Avtorizatsiya kodi.
Avtorizatsiya serveri ma'lumotlarni tekshiradi va javob beradi Kirish Token'om (kirish belgisi).
Endi mijoz foydalanishi mumkin Kirish Token ga so'rov yuborish resurs serveri kontaktlar ro'yxatini olish uchun.
Mijoz identifikatori va siri
Kunning dahshatli o'yiniga kontaktlaringizga kirishga ruxsat berishingizdan ancha oldin, mijoz va avtorizatsiya serveri ish munosabatlarini o'rnatgan edi. Avtorizatsiya serveri mijoz identifikatori va mijoz sirini yaratdi (ba'zan App ID и Ilova siri) va ularni OAuth doirasida keyingi o'zaro hamkorlik qilish uchun Mijozga yubordi.
"- Salom! Men siz bilan ishlashni xohlayman! - Albatta, muammo emas! Mana sizning mijoz identifikatoringiz va siringiz!”
Ism mijoz sirini faqat mijoz va avtorizatsiya serveri bilishi uchun maxfiy saqlanishi kerakligini bildiradi. Axir, uning yordami bilan avtorizatsiya serveri Mijozning haqiqatini tasdiqlaydi.
Lekin bu hammasi emas... Iltimos, OpenID Connect-ga xush kelibsiz!
OAuth 2.0 faqat uchun mo'ljallangan ruxsat - bir ilovadan boshqasiga ma'lumotlar va funksiyalarga kirishni ta'minlash. OpenID ulanish (OIDC) OAuth 2.0 ning yuqori qismidagi yupqa qatlam bo'lib, hisob qaydnomasiga kirgan foydalanuvchining login va profil ma'lumotlarini qo'shadi. Kirish seansini tashkil qilish ko'pincha deb ataladi autentifikatsiya[autentifikatsiya], va tizimga kirgan foydalanuvchi haqidagi ma'lumotlar (ya'ni Resurs egasi'e), - Shaxsiy malumot[shaxslik]. Agar avtorizatsiya serveri OIDC ni qo'llab-quvvatlasa, u ba'zan shunday deb ataladi shaxsiy ma'lumotlar provayderi[identifikatsiya provayderi]chunki u beradi mijozhaqida ma'lumotga ega Resurs egasi'e.
OpenID Connect bir nechta ilovalarda bitta logindan foydalanish mumkin bo'lgan stsenariylarni amalga oshirish imkonini beradi - bu yondashuv sifatida ham tanilgan. yagona kirish (SSO). Masalan, ilova Facebook yoki Twitter kabi ijtimoiy tarmoqlar bilan SSO integratsiyasini qo‘llab-quvvatlashi mumkin, bu esa foydalanuvchilarga o‘zlarida mavjud bo‘lgan va foydalanishni afzal ko‘rgan akkauntdan foydalanish imkonini beradi.
OpenID Connect oqimi (oqimi) OAuth holatidagi kabi ko'rinadi. Yagona farq shundaki, birlamchi so'rovda ishlatiladigan o'ziga xos qamrov openid, - A mijoz oxir-oqibat shunday bo'ladi Kirish Token, va ID tokeni.
Xuddi OAuth oqimidagi kabi, Kirish Token OpenID Connect-da bu aniq bo'lmagan qiymatdir mijoz'da. Nuqtai nazaridan mijoz‘а Kirish Token har bir soʻrov bilan birga uzatiladigan belgilar qatorini ifodalaydi resurs serveri'y, bu tokenning haqiqiyligini aniqlaydi. ID tokeni butunlay boshqacha narsani ifodalaydi.
ID Token - bu JWT
ID tokeni JSON Web Token yoki JWT deb nomlanuvchi maxsus formatlangan belgilar qatori (ba'zan JWT tokenlari "jots" kabi talaffuz qilinadi). Tashqi kuzatuvchilar uchun JWT tushunarsiz ma'nosiz tuyulishi mumkin, ammo mijoz JWT dan identifikator, foydalanuvchi nomi, kirish vaqti, amal qilish muddati kabi turli xil ma'lumotlarni olishi mumkin ID tokeni'a, JWTga aralashishga urinishlar mavjudligi. Ichki ma'lumotlar ID tokenia deb ataladi ilovalar[da'volar].
OIDC holatida standart usul ham mavjud mijoz shaxs toʻgʻrisida qoʻshimcha maʼlumot soʻrashi mumkin [shaxslik] от Avtorizatsiya serveri'a, masalan, elektron pochta manzilidan foydalanish Kirish Token.
OAuth va OIDC haqida ko'proq bilib oling
Shunday qilib, biz OAuth va OIDC qanday ishlashini qisqacha ko'rib chiqdik. Chuqurroq qazishga tayyormisiz? OAuth 2.0 va OpenID Connect haqida koʻproq maʼlumot olishga yordam beradigan qoʻshimcha manbalar:
Har doimgidek, sharhlaringizni qoldiring. Bizning eng so'nggi yangiliklarimizdan xabardor bo'lish uchun obuna bo'ling Twitter и YouTube Ishlab chiquvchilar uchun Okta!