OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

Qeyd. tərcümə.: Oktanın bu möhtəşəm məqaləsi OAuth və OIDC (OpenID Connect) sadə və aydın şəkildə necə işlədiyini izah edir. Bu bilik tərtibatçılar, sistem administratorları və hətta çox güman ki, məxfi məlumatları digər xidmətlərlə mübadilə edən məşhur veb proqramların "adi istifadəçiləri" üçün faydalı olacaq.

İnternetin daş dövründə xidmətlər arasında məlumat mübadiləsi asan idi. Siz sadəcə olaraq login və şifrənizi bir xidmətdən digərinə verdiniz ki, o, hesabınıza daxil oldu və lazım olan hər hansı məlumatı aldı.

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi
"Mənə bank hesabınızı verin." “Şifrə və pulla hər şeyin yaxşı olacağına söz veririk. Bu dürüst, dürüst!" *hee hee*

Dəhşət! Heç kim istifadəçidən istifadəçi adı və parol paylaşmasını tələb etməməlidir, etimadnamələr, başqa bir xidmətlə. Bu xidmətin arxasında duran təşkilatın məlumatları təhlükəsiz saxlayacağına və lazım olduğundan daha çox şəxsi məlumat toplamayacağına zəmanət yoxdur. Dəli səslənə bilər, lakin bəzi proqramlar hələ də bu təcrübədən istifadə edir!

Bu gün bir xidmətin digərinin məlumatlarından təhlükəsiz istifadə etməyə imkan verən vahid standart mövcuddur. Təəssüf ki, bu cür standartlarda çoxlu jarqon və terminlərdən istifadə olunur ki, bu da onların başa düşülməsini çətinləşdirir. Bu materialın məqsədi onların sadə illüstrasiyalardan istifadə edərək necə işlədiyini izah etməkdir (Sizcə, mənim rəsmlərim uşaqların çəkdiyi rəsmlərə bənzəyir? Oh, yaxşı!).

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

Yeri gəlmişkən, bu təlimat video formatında da mövcuddur:

Xanımlar və cənablar, xoş gəlmisiniz: OAuth 2.0

OAuth 2.0 bir proqrama digər proqramda məlumat əldə etmək icazəsi əldə etməyə imkan verən təhlükəsizlik standartıdır. İcazənin verilməsi üçün addımların ardıcıllığı [icazə] (Və ya razılıq [razılıq]) tez-tez zəng edin icazə [səlahiyyət] ya da hətta həvalə edilmiş icazə [təqdim edilmiş icazə]. Bu standartla siz proqrama parolunuzu vermədən məlumatları oxumağa və ya sizin adınıza başqa proqramın funksiyalarından istifadə etməyə icazə verirsiniz. Sinif!

Məsələn, tutaq ki, siz "Günün uğursuz oyunu" adlı bir sayt kəşf etdiniz. [Günün Dəhşətli Oyunu] və telefonda mətn mesajları şəklində gündəlik oyuncaqlar almaq üçün qeydiyyatdan keçməyə qərar verdi. Saytı çox bəyəndiniz və onu bütün dostlarınızla paylaşmağa qərar verdiniz. Axı, hamı ürpertici söz oyunu xoşlayır, elə deyilmi?

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi
“Günün uğursuz oyunu: Bədəninin sol yarısını itirən oğlan haqqında eşitmisiniz? İndi o, həmişə haqlıdır!” (təxmini tərcümə, çünki orijinalın öz söz oyunu var - təqribən tərcümə.)

Aydındır ki, əlaqə siyahısından hər bir şəxsə yazmaq bir seçim deyil. Bir az da mənim kimi olsanız, lazımsız işlərdən qaçmaq üçün hər cür yola gedəcəksiniz. Xoşbəxtlikdən, Günün Dəhşətli Punası bütün dostlarınızı özü dəvət edə bilər! Bunun üçün sadəcə olaraq kontaktlarınızın e-poçtuna girişi açmaq lazımdır - saytın özü onlara dəvət göndərəcək (OAuth qaydaları)!

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi
“Hər kəs söz oyunu sevir! - Artıq daxil olmusunuz? “Günün Dəhşətli Pun vebsaytının əlaqə siyahınıza daxil olmasına icazə vermək istərdinizmi? - Çox sağ ol! Bundan sonra biz hər gün tanıdığınız hər kəsə, zamanın sonuna qədər xatırlatmalar göndərəcəyik! Sən ən yaxşı dostsan!"

  1. E-poçt xidmətinizi seçin.
  2. Lazım gələrsə, poçt saytına gedin və hesabınıza daxil olun.
  3. Günün Dəhşətli Pun-a kontaktlarınıza daxil olmaq üçün icazə verin.
  4. Günün Dəhşətli Oyunu saytına qayıdın.

Fikrinizi dəyişdirdiyiniz halda, OAuth-dan istifadə edən tətbiqlər də girişi ləğv etmək üçün bir yol təqdim edir. Artıq Günün Dəhşətli Pun ilə əlaqə paylaşmaq istəmədiyinizə qərar verdikdən sonra, poçt saytına daxil ola və oyun saytını səlahiyyətli tətbiqlər siyahısından silə bilərsiniz.

OAuth axını

Biz adətən adlanan şeydən keçdik axın [axın] OAuth. Bizim nümunəmizdə bu axın görünən addımlardan, eləcə də iki xidmətin təhlükəsiz məlumat mübadiləsinə razılaşdığı bir neçə görünməz addımdan ibarətdir. Əvvəlki Dəhşətli Pun of the Day nümunəsi "avtorizasiya kodu" axını kimi tanınan ən çox yayılmış OAuth 2.0 axınından istifadə edir. ["avtorizasiya kodu" axını].

OAuth-un necə işlədiyinin təfərrüatlarına keçməzdən əvvəl bəzi terminlərin mənası haqqında danışaq:

  • Resurs Sahibi:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Bu sənsən! Siz etimadnamələrinizə, məlumatlarınıza sahibsiniz və hesablarınızda yerinə yetirilə biləcək bütün fəaliyyətlərə nəzarət edirsiniz.

  • Müştəri:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    adına daxil olmaq və ya müəyyən hərəkətləri yerinə yetirmək istəyən proqram (məsələn, Günün Dəhşətli Pun xidməti) Resurs Sahibi'a.

  • Avtorizasiya serveri:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Bilən proqram Resurs Sahibi'a və hansı u Resurs Sahibi'Artıq bir hesabım var.

  • resurs serveri:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Tətbiq proqramlaşdırma interfeysi (API) və ya xidmət Müştəri adından istifadə etmək istəyir Resurs Sahibi'a.

  • URI-ni yönləndirin:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Link ki Avtorizasiya serveri yönləndirəcək Resurs Sahibi'və icazə verdikdən sonra Müştəri'da. O, bəzən "geri zəng URL" kimi istinad edilir.

  • Cavab növü:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Qəbul edilməsi gözlənilən məlumat növü Müştəri. Ən ümumi Cavab növü'ohm koddur, yəni Müştəri alacağını gözləyir İcazə kodu.

  • Vüsət:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Bu, tələb olunan icazələrin ətraflı təsviridir Müştəri'y, verilənlərə daxil olmaq və ya müəyyən hərəkətləri yerinə yetirmək kimi.

  • Razılıq:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Avtorizasiya serveri alır Scopesxahiş etdi Müştəri'om və soruşur Resurs Sahibi'a, təmin etməyə hazırdır Müştəri'müvafiq icazələrə sahib olun.

  • Müştəri şəxsiyyəti:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Bu ID müəyyən etmək üçün istifadə olunur Müştəri'a Avtorizasiya serveri'e.

  • Müştəri sirri:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Bu yalnız məlum olan paroldur Müştəri'u və Avtorizasiya serveri'da. Bu, onlara şəxsi məlumat paylaşmağa imkan verir.

  • İcazə kodu:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Qısa etibarlılıq müddəti olan müvəqqəti kod Müştəri təmin edir Avtorizasiya serveri'nin qarşılığında Tokenə daxil olun.

  • Tokenə daxil olun:

    OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

    Müştərinin əlaqə saxlamaq üçün istifadə edəcəyi açar resurs serveri'om. təmin edən bir növ nişan və ya açar kartı Müştəri'məlumat tələb etmək və ya hərəkət etmək icazəsi var resurs serverisizin adınıza.

Qeyd: Bəzən Authorization Server və Resource Server eyni serverdir. Bununla belə, bəzi hallarda, eyni təşkilata aid olmasalar belə, bunlar fərqli serverlər ola bilər. Məsələn, Avtorizasiya Serveri Resurs Serverinin etibar etdiyi üçüncü tərəf xidməti ola bilər.

İndi OAuth 2.0-ın əsas konsepsiyalarını əhatə etdikdən sonra, gəlin nümunəmizə qayıdaq və OAuth axınında baş verənlərə daha yaxından nəzər salaq.

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

  1. Sən, Resurs Sahibi, Günün Dəhşətli Pun xidmətini təmin etmək istəyirsiniz (Müştəriy) bütün dostlarınıza dəvət göndərə bilmələri üçün kontaktlarınıza daxil olmaq.
  2. Müştəri brauzeri səhifəyə yönləndirir Avtorizasiya serveri'a və sorğuya daxil edin Müştəri şəxsiyyəti, URI-ni yönləndirin, Cavab növü və bir və ya daha çox Scopes (icazələr) lazımdır.
  3. Avtorizasiya serveri Sizi yoxlayır, lazım olduqda istifadəçi adı və parol tələb edir.
  4. Avtorizasiya serveri forma göstərir Razılıq (təsdiqlər) hamısının siyahısı ilə Scopesxahiş etdi Müştəri'om. Razılaşırsınız və ya imtina edirsiniz.
  5. Avtorizasiya serveri sizi sayta yönləndirir Müştəri'a, istifadə edir URI-ni yönləndirin ilə birlikdə İcazə kodu (səlahiyyət kodu).
  6. Müştəri ilə birbaşa əlaqə saxlayır Avtorizasiya serveri'ohm (brauzerdən yan keçməklə Resurs Sahibi'a) və təhlükəsiz şəkildə göndərir Müştəri şəxsiyyəti, Müştəri sirri и İcazə kodu.
  7. Avtorizasiya serveri məlumatları yoxlayır və cavab verir Tokenə daxil olun'om (giriş nişanı).
  8. indi Müştəri istifadə edə bilər Tokenə daxil olun sorğu göndərmək resurs serveri əlaqə siyahısını əldə etmək üçün.

Müştəri ID və sirri

Dəhşətli Pun of Günün kontaktlarınıza daxil olmasına icazə verməzdən çox əvvəl Müştəri və Avtorizasiya Serveri iş əlaqəsi yaratmışdı. Avtorizasiya Serveri Müştəri ID-sini və Müştəri Sirrini (bəzən adlanır App ID и Proqram sirri) və OAuth daxilində sonrakı qarşılıqlı əlaqə üçün onları Müştəriyə göndərdi.

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi
"- Salam! Mən sizinlə işləmək istərdim! - Əlbəttə, problem deyil! Budur sizin Müştəri ID və Sirriniz!”

Ad, Müştəri Sirrinin məxfi saxlanmasını nəzərdə tutur ki, bunu yalnız Müştəri və Avtorizasiya Serveri bilsin. Axı, onun köməyi ilə Avtorizasiya Serveri Müştərinin həqiqətini təsdiqləyir.

Lakin bu, hamısı deyil... Zəhmət olmasa, OpenID Connect-ə xoş gəlmisiniz!

OAuth 2.0 yalnız üçün nəzərdə tutulmuşdur icazə - bir proqramdan digərinə verilənlərə və funksiyalara çıxışı təmin etmək. OpenID qoşun (OIDC) OAuth 2.0-ın üstündə, hesaba daxil olan istifadəçinin giriş və profil təfərrüatlarını əlavə edən nazik təbəqədir. Giriş sessiyasının təşkili çox vaxt belə adlanır identifikasiyası [identifikasiyası], və sistemə daxil olan istifadəçi haqqında məlumat (yəni haqqında Resurs Sahibi'e), - Şəxsi məlumat [şəxsiyyət]. Əgər Authorization Server OIDC-ni dəstəkləyirsə, ona bəzən belə istinad edilir şəxsi məlumatların provayderi [şəxsiyyət təminatçısı]təmin etdiyi üçün Müştəri'haqqında məlumat var Resurs Sahibi'e.

OpenID Connect sizə tək girişin birdən çox proqramda istifadə oluna biləcəyi ssenariləri həyata keçirməyə imkan verir - bu yanaşma həm də aşağıdakı kimi tanınır. tək giriş (SSO). Məsələn, bir proqram Facebook və ya Twitter kimi sosial şəbəkələrlə SSO inteqrasiyasını dəstəkləyə bilər ki, bu da istifadəçilərə artıq sahib olduqları və istifadə etməyi üstün tutan hesabdan istifadə etməyə imkan verir.

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

OpenID Connect axını (axın) OAuth vəziyyətində olduğu kimi görünür. Yeganə fərq odur ki, ilkin sorğuda istifadə olunan xüsusi əhatə dairəsi olur openid, - Ə Müştəri kimi olur axırda Tokenə daxil olunID Token.

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

OAuth axınında olduğu kimi, Tokenə daxil olun OpenID Connect-də bu aydın olmayan bəzi dəyərdir Müştəri'da. Bu baxımdan Müştəri'a Tokenə daxil olun hər sorğu ilə birlikdə ötürülən simvollar silsiləsi təmsil edir resurs serveri'y, işarənin etibarlı olub olmadığını müəyyən edir. ID Token tamam başqa bir şeyi ifadə edir.

ID Token bir JWT-dir

ID Token JSON Web Token və ya JWT kimi tanınan xüsusi formatlaşdırılmış simvol sətridir (bəzən JWT tokenləri "jots" kimi tələffüz olunur). Kənar müşahidəçilər üçün JWT anlaşılmaz cəfəngiyat kimi görünə bilər, lakin Müştəri JWT-dən ID, istifadəçi adı, giriş vaxtı, son istifadə tarixi kimi müxtəlif məlumatları çıxara bilər ID Token'a, JWT-yə müdaxilə cəhdlərinin olması. Daxili məlumatlar ID Token'a deyilir tətbiqlər [iddiaları].

OAuth və OpenID Connect üçün təsvir edilmiş bələdçi

OIDC vəziyyətində standart bir yol da var Müştəri şəxs haqqında əlavə məlumat tələb edə bilər [şəxsiyyət] etibarən Avtorizasiya serveri'a, məsələn, bir e-poçt ünvanı istifadə Tokenə daxil olun.

OAuth və OIDC haqqında ətraflı məlumat əldə edin

Beləliklə, biz OAuth və OIDC-nin necə işlədiyini qısaca nəzərdən keçirdik. Daha dərin qazmağa hazırsınız? OAuth 2.0 və OpenID Connect haqqında daha çox məlumat əldə etməyə kömək edəcək əlavə resurslar buradadır:

Həmişə olduğu kimi, şərh verməkdən çekinmeyin. Ən son xəbərlərimizdən xəbərdar olmaq üçün abunə olun Twitter и YouTube Tərtibatçılar üçün Okta!

Tərcüməçidən PS

Bloqumuzda da oxuyun:

Mənbə: www.habr.com

Добавить комментарий