نوټ. ژباړه: د Okta لخوا دا عالي مقاله تشریح کوي چې څنګه OAuth او OIDC (OpenID Connect) په ساده او روښانه ډول کار کوي. دا پوهه به د پراختیا کونکو، سیسټم مدیرانو، او حتی د مشهور ویب غوښتنلیکونو "منظم کاروونکو" لپاره ګټور وي، کوم چې ډیری احتمال د نورو خدماتو سره محرم معلومات هم تبادله کوي.
د انټرنیټ د ډبرې په دور کې، د خدماتو ترمنځ د معلوماتو شریکول اسانه وو. تاسو په ساده ډول خپل ننوتل او پاسورډ له یو خدمت څخه بل ته ورکړئ، ترڅو هغه ستاسو حساب ته ننوځي او کوم معلومات چې ورته اړتیا وي ترلاسه کړي.
"ما ته خپل بانکي حساب راکړه." "موږ ژمنه کوو چې هر څه به د پاسورډ او پیسو سره سم شي. دا صادق دی، صادق دی!" *هي هي*
وحشت! هیڅوک باید هیڅکله د کارونکي اړتیا ونه لري چې د کارن نوم او پټنوم شریک کړي، اسنادد بل خدمت سره. هیڅ تضمین شتون نلري چې د دې خدماتو ترشا اداره به ډاټا خوندي وساتي او د اړتیا په پرتله به ډیر شخصي معلومات راټول نکړي. دا ممکن لیونۍ ښکاري ، مګر ځینې ایپس لاهم دا تمرین کاروي!
نن ورځ یو واحد معیار شتون لري چې یو خدمت ته اجازه ورکوي په خوندي ډول د بل ډیټا وکاروي. له بده مرغه، دا ډول معیارونه ډیری اصطلاحات او اصطلاحات کاروي، کوم چې د دوی پوهه پیچلې کوي. د دې موادو هدف دا دی چې تشریح کړي چې دوی څنګه د ساده انځورونو په کارولو سره کار کوي (ایا تاسو فکر کوئ چې زما انځورونه د ماشومانو د ډوب کولو سره ورته دي؟ او ښه!).
په هرصورت، دا لارښود د ویډیو په بڼه هم شتون لري:
میرمنو او ښاغلو ، ښه راغلاست: OAuth 2.0
د مثال په توګه، راځئ چې ووایو تاسو یو سایټ ومومئ چې نوم یې "د ورځې بدبختانه" دی. [د ورځې سخت عذاب] او پریکړه یې وکړه چې په تلیفون کې د متن پیغامونو په بڼه د ورځني ټکي ترلاسه کولو لپاره پدې کې راجستر کړئ. تاسو واقعیا سایټ خوښ کړ، او تاسو پریکړه وکړه چې دا د خپلو ټولو ملګرو سره شریک کړئ. په هرصورت، هرڅوک ډارونکي ټکان خوښوي، سمه ده؟
"د ورځې بدبختانه سزا: د هغه سړي په اړه اوریدلي چې د خپل بدن نیم نیم یې له لاسه ورکړی؟ اوس هغه تل سمه ده! (تقریبا ژباړه، ځکه چې اصلي خپل قلم لري - نږدې ژباړه.)
دا روښانه ده چې د اړیکو لیست څخه هر کس ته لیکل یو اختیار ندی. او، که تاسو زما په څیر لږ څه هم یاست، نو تاسو به د غیر ضروري کار څخه د مخنیوي لپاره هر حد ته لاړ شئ. خوشبختانه، د ورځې ډاریبل پن کولی شي خپل ټول ملګري پخپله بلنه ورکړي! د دې کولو لپاره ، تاسو اړتیا لرئ د خپلو اړیکو بریښنالیک ته لاسرسی خلاص کړئ - سایټ به پخپله دوی ته بلنه واستوي (OAuth قواعد)!
"هرڅوک د ټوکو سره مینه لري! - لا دمخه ننوتل؟ "ایا تاسو غواړئ چې د ورځې تریریبل پن ویب پاڼې ته اجازه ورکړئ چې ستاسو د اړیکو لیست ته لاسرسی ومومي؟ - له تاسو مننه! له اوس څخه، موږ به هره ورځ د وخت تر پایه پورې هر هغه چا ته چې تاسو یې پیژنئ یادونه لیږو! ته تر ټولو ښه ملګری یې!”
- خپل بریښنالیک خدمت غوره کړئ.
- که اړتیا وي، د میل سایټ ته لاړ شئ او خپل حساب ته ننوځئ.
- خپلو تماسونو ته د لاسرسي لپاره د ورځې ډاریبل پن اجازه ورکړئ.
- د ورځې د سخت عذاب سایټ ته بیرته راشئ.
په هغه صورت کې چې تاسو خپل فکر بدل کړئ، د OAuth کارولو غوښتنلیکونه د لاسرسي لغوه کولو لاره هم چمتو کوي. یوځل چې تاسو پریکړه وکړئ چې تاسو نور نه غواړئ د ورځې له ډاریبل پن سره اړیکې شریک کړئ ، تاسو کولی شئ د بریښنالیک سایټ ته لاړ شئ او د مجاز غوښتنلیکونو لیست څخه د پن سایټ لرې کړئ.
د OAuth جریان
موږ یوازې د هغه څه له لارې تللي یو چې معمولا ورته ویل کیږي جریان [بهیر] OAuth. زموږ په مثال کې، دا جریان د لیدلو ګامونو، او همدارنګه د څو ناڅرګندو مرحلو څخه جوړ دی، په کوم کې چې دوه خدمتونه د معلوماتو په خوندي تبادله موافق دي. د ورځې پخوانۍ ویره لرونکي سزا مثال خورا عام OAuth 2.0 جریان کاروي ، چې د "اجازت کوډ" جریان په نوم پیژندل کیږي. ["اجازت کوډ" جریان].
مخکې لدې چې د OAuth کار کولو څرنګوالي په اړه توضیحاتو ته لاړشئ ، راځئ چې د ځینې شرایطو معنی په اړه وغږیږو:
- د سرچینې مالک:
دا تاسو یاست! تاسو خپل اسناد، ستاسو ډاټا، او ټول هغه فعالیتونه کنټرول کړئ چې ستاسو په حسابونو کې ترسره کیدی شي. - د مراجع:
یو غوښتنلیک (د مثال په توګه، د ورځې د خدمت ناوړه سزا) چې غواړي د دې په استازیتوب ځینې کړنې ته لاسرسی ولري یا ترسره کړي د سرچینې مالک'ا. - د واک ورکولو سرور:
هغه اپلیکیشن چې پوهیږي د سرچینې مالک'a او په کوم کې u د سرچینې مالکیو لا دمخه یو حساب لري. - د سرچینې سرور:
د غوښتنلیک پروګرام کولو انٹرفیس (API) یا خدمت چې د مراجع غواړي په استازیتوب وکاروي د سرچینې مالک'ا. - د URI بیا راستنول:
هغه لینک چې د واک ورکولو سرور به وګرځوي د سرچینې مالکاو د اجازې ورکولو وروسته د مراجعپه دا ځینې وختونه د "کال بیک URL" په نوم یادیږي. - د غبرګون ډول:
د معلوماتو ډول چې تمه کیږي ترلاسه شي د مراجع. ډیرمعمولی د غبرګون ډول'ohm کوډ دی، دا دی د مراجع د ترلاسه کولو تمه لري د واک کوډ. - حدود:
دا د اجازې تفصيلي توضیحات دي چې اړین دي د مراجعy، لکه ډیټا ته لاسرسۍ یا ځینې کړنې ترسره کول. - رضايت:
د واک ورکولو سرور اخلي سکپونهغوښتنه شوې د مراجعاوم، او پوښتنه کوي د سرچینې مالکa، ایا هغه چمتو کولو ته چمتو دی د مراجع'مناسب اجازې لري. - د پیرودونکي پیژند:
دا ID د پیژندلو لپاره کارول کیږي د مراجعیو پر د واک ورکولو سرور'e. - د پیرودونکي محرم:
دا یو پټنوم دی چې یوازې پیژندل کیږي د مراجعu او د واک ورکولو سرورپه دا دوی ته اجازه ورکوي چې په شخصي توګه معلومات شریک کړي. - د واک کوډ:
لنډمهاله کوډ د لنډې مودې اعتبار سره، کوم چې د مراجع چمتو کوي د واک ورکولو سرورپه بدل کې توکۍ لاسرسی. - توکۍ لاسرسی:
هغه کلیدي چې پیرودونکي به ورسره د خبرو اترو لپاره وکاروي د سرچینې سروراوم یو ډول بیج یا کلیدي کارت چې چمتو کوي د مراجعد معلوماتو غوښتنه کولو یا د عملونو ترسره کولو اجازه لري د سرچینې سرورستاسو په استازیتوب.
تبصره: ځینې وختونه د اختیار ورکولو سرور او د سرچینې سرور ورته سرور وي. په هرصورت، په ځینو مواردو کې، دا ممکن مختلف سرورونه وي، حتی که دوی د ورته سازمان سره تړاو نلري. د مثال په توګه، د اختیار ورکولو سرور ممکن د دریمې ډلې خدمت وي چې د سرچینې سرور لخوا باوري وي.
اوس چې موږ د OAuth 2.0 اصلي مفکورې پوښلې دي، راځئ چې بیرته خپل مثال ته لاړ شو او نږدې وګورو چې د OAuth جریان کې څه پیښیږي.
- ته، د سرچینې مالک، تاسو غواړئ د ورځې خورا خطرناکه خدمت چمتو کړئ (د مراجعy) ستاسو اړیکو ته لاسرسی ترڅو دوی وکولی شي ستاسو ټولو ملګرو ته بلنه واستوي.
- د مراجع براوزر پاڼې ته لیږل کیږي د واک ورکولو سرور'a او په پوښتنه کې شامل دي د پیرودونکي پیژند, د URI بیا راستنول, د غبرګون ډول او یو یا ډیر سکپونه (اجازې) ته اړتیا لري.
- د واک ورکولو سرور تاسو تاییدوي، د اړتیا په صورت کې د کارن نوم او پټنوم غوښتنه کوي.
- د واک ورکولو سرور بڼه ښکاره کوي رضايت (تاییدونه) د ټولو لیست سره سکپونهغوښتنه شوې د مراجعاوم تاسو موافق یاست یا رد کړئ.
- د واک ورکولو سرور تاسو سایټ ته لیږل کیږي د مراجعa، په کارولو سره د URI بیا راستنول سره یوځای د واک کوډ (د اجازې کوډ).
- د مراجع سره مستقیم اړیکه لري د واک ورکولو سرور'ohm (د براوزر څخه تیریدل د سرچینې مالک'a) او په خوندي توګه لیږل کیږي د پیرودونکي پیژند, د پیرودونکي محرم и د واک کوډ.
- د واک ورکولو سرور ډاټا چک کوي او ځواب ورکوي توکۍ لاسرسیاوم (د لاسرسي نښه).
- اوس د مراجع کارولی شي توکۍ لاسرسی د غوښتنې لیږلو لپاره د سرچینې سرور د اړیکو لیست ترلاسه کولو لپاره.
د پیرودونکي ID او راز
مخکې لدې چې تاسو خپلو اړیکو ته د لاسرسي لپاره د ورځې ډاریبل پن ته اجازه ورکړئ ، د پیرودونکي او اختیار ورکولو سرور کاري اړیکه رامینځته کړې وه. د اختیار ورکولو سرور د پیرودونکي ID او د پیرودونکي راز رامینځته کړی (کله ناکله ورته ویل کیږي د اپارتمان ID и د اپلیکیشن راز) او په OAuth کې د نورو متقابل عمل لپاره یې پیرودونکي ته واستول.
"- سلام! زه غواړم له تاسو سره کار وکړم! - البته، کومه ستونزه نه ده! دلته ستاسو د پیرودونکي ID او راز دی!
نوم پدې معنی دی چې د پیرودونکي راز باید پټ وساتل شي ترڅو یوازې پیرودونکي او د اختیار ورکولو سرور پدې پوه شي. په هرصورت، دا د هغه په مرسته ده چې د واک ورکولو سرور د پیرودونکي حقیقت تاییدوي.
مګر دا ټول نه دي ... مهرباني وکړئ د OpenID Connect ته ښه راغلاست!
OAuth 2.0 یوازې د دې لپاره ډیزاین شوی جواز - د یو غوښتنلیک څخه بل ته ډیټا او افعال ته لاسرسی چمتو کول.
د OpenID Connect تاسو ته اجازه درکوي سناریوګانې پلي کړئ چیرې چې یو واحد ننوتل په ډیری غوښتنلیکونو کې کارول کیدی شي - دا طریقه هم پیژندل کیږي یوځل لاسلیک کول (SSO). د مثال په توګه، یو اپلیکیشن ممکن د ټولنیزو شبکو لکه فیسبوک یا ټویټر سره د SSO ادغام ملاتړ وکړي، کاروونکو ته اجازه ورکوي چې یو حساب وکاروي چې دوی یې مخکې لري او کارول یې غوره کوي.
جریان (بهی) OpenID Connect د OAuth په قضیه کې ورته ښکاري. یوازینی توپیر دا دی چې په ابتدايي غوښتنه کې، کارول شوی ځانګړی سکوپ دی openid
، - الف د مراجع په پای کې ورته کیږي توکۍ لاسرسی، او د ID نښه.
لکه څنګه چې د OAuth جریان کې، توکۍ لاسرسی په OpenID Connect کې، دا یو څه ارزښت دی چې روښانه ندی د مراجعپه له نظره د مراجع'ا توکۍ لاسرسی د حروفونو یو تار استازیتوب کوي چې د هرې غوښتنې سره لیږدول کیږي د سرچینې سرور'y، کوم چې ټاکي که نښه د اعتبار وړ وي. د ID نښه په بشپړ ډول مختلف شیان استازیتوب کوي.
د ID نښه یو JWT دی
د ID نښه د کرکټرونو یو ځانګړی شکل شوی تار دی چې د JSON ویب ټوکن یا JWT په نوم پیژندل کیږي (ځینې وختونه د JWT ټوکن د "جوټس" په څیر تلفظ کیږي). د بهرنی څارونکو لپاره، JWT ممکن د نه پوهیدو وړ ګبرش په څیر ښکاري، مګر د مراجع کولی شي د JWT څخه مختلف معلومات راوباسي، لکه ID، کارن نوم، د ننوتلو وخت، د ختمیدو نیټه د ID نښهa، د JWT سره د مداخلې لپاره د هڅو شتون. دننه ډاټا د ID نښهa بلل کیږي غوښتنلیکونه [دعوې].
د OIDC په قضیه کې، یو معیاري لاره هم شتون لري چې له مخې یې د مراجع کیدای شي د فرد په اړه د اضافي معلوماتو غوښتنه وکړي [پیژندنه] от د واک ورکولو سرور'a، د مثال په توګه، د بریښنالیک پته کارول توکۍ لاسرسی.
د OAuth او OIDC په اړه نور معلومات ترلاسه کړئ
نو، موږ په لنډه توګه بیاکتنه وکړه چې څنګه OAuth او OIDC کار کوي. د ژور کیندلو لپاره چمتو یاست؟ دلته اضافي سرچینې دي چې تاسو سره د OAuth 2.0 او OpenID Connect په اړه نور معلومات زده کولو کې مرسته کوي:
-
هیک OAuth څه شی دی؟ -
هیڅوک د OAuth یا OpenID Connect په اړه پروا نه کوي -
د PKCE فلو سره د OAuth 2.0 اختیار ورکولو کوډ پلي کړئ -
د OAuth 2.0 گرانټ ډول څه دی؟ -
OAuth 2.0 د کمانډ لاین څخه -
د SQL سرور سره یو خوندي Node.js اپلیکیشن جوړ کړئ
د تل په څیر، د نظر ورکولو لپاره وړیا احساس وکړئ. زموږ د وروستي خبرونو سره تازه ساتلو لپاره، ګډون وکړئ
PS د ژباړونکي څخه
زموږ په بلاګ کې هم ولولئ:
- «
په Kubernetes کې د امنیت ABC: تصدیق، واک ورکول، پلټنه » - «
په Kubernetes کې RBAC کاروونکي او واک ورکول » - «
33+ د Kubernetes امنیتي وسیلې » - «
د ډاکر کانټینرونو لپاره امنیت ".
سرچینه: www.habr.com