සටහන. පරිවර්තනය.: Okta හි මෙම විශිෂ්ට ලිපිය OAuth සහ OIDC (OpenID Connect) ක්රියා කරන ආකාරය සරල සහ පැහැදිලි ලෙස පැහැදිලි කරයි. මෙම දැනුම සංවර්ධකයින්ට, පද්ධති පරිපාලකයින්ට සහ ජනප්රිය වෙබ් යෙදුම්වල "සාමාන්ය පරිශීලකයින්ට" පවා ප්රයෝජනවත් වනු ඇත, ඒවා වෙනත් සේවාවන් සමඟ සංවේදී දත්ත හුවමාරු කර ගැනීමටද ඉඩ ඇත.
අන්තර්ජාලයේ ගල් යුගයේ සේවා අතර තොරතුරු හුවමාරු කර ගැනීම පහසු විය. ඔබ හුදෙක් ඔබගේ පිවිසුම සහ මුරපදය එක් සේවාවකින් තවත් සේවාවකට ලබා දී ඇත, එවිට ඔහු ඔබගේ ගිණුමට ඇතුළු වී ඔහුට අවශ්ය ඕනෑම තොරතුරක් ලබා ගත්තේය.
"මට ඔබේ බැංකු ගිණුම දෙන්න." “මුරපද සහ මුදල් සමඟ සියල්ල හොඳින් සිදුවන බවට අපි පොරොන්දු වෙමු. එය අවංක, අවංක!" *හී හී*
භීෂණය! පරිශීලක නාමයක් සහ මුරපදයක් බෙදා ගැනීමට කිසිවකුට පරිශීලකයෙකුගෙන් අවශ්ය නොවිය යුතුය. අක්තපත්ර, වෙනත් සේවාවක් සමඟ. මෙම සේවාව පිටුපස සිටින සංවිධානය දත්ත සුරක්ෂිතව තබා ගන්නා අතර අවශ්ය ප්රමාණයට වඩා පුද්ගලික තොරතුරු රැස් නොකරන බවට සහතිකයක් නොමැත. එය පිස්සුවක් සේ පෙනෙන නමුත් සමහර යෙදුම් තවමත් මෙම භාවිතය භාවිතා කරයි!
එක් සේවාවක් තවත් සේවාවක දත්ත ආරක්ෂිතව භාවිතා කිරීමට ඉඩ සලසන තනි ප්රමිතියක් අද පවතී. අවාසනාවකට මෙන්, එවැනි ප්රමිතීන් ඔවුන්ගේ අවබෝධය අවුල් කරන බොහෝ වචන සහ නියමයන් භාවිතා කරයි. මෙම ද්රව්යයේ පරමාර්ථය වන්නේ සරල රූප සටහන් භාවිතයෙන් ඒවා ක්රියා කරන ආකාරය පැහැදිලි කිරීමයි (ඔබ සිතන්නේ මගේ චිත්ර ළමයින්ගේ ඩබ්බිං වලට සමාන යැයි ඔබ සිතනවාද? හොඳයි!).
මාර්ගය වන විට, මෙම මාර්ගෝපදේශය වීඩියෝ ආකෘතියෙන් ද ලබා ගත හැකිය:
නෝනාවරුනි, මහත්වරුනි, සාදරයෙන් පිළිගනිමු: OAuth 2.0
උදාහරණයක් ලෙස, ඔබ "දවසේ අවාසනාවන්ත Pun" නම් වෙබ් අඩවියක් සොයා ගත්තා යැයි සිතමු. [දවසේ බිහිසුණු වදන්] සහ දුරකථනයෙන් කෙටි පණිවුඩ ආකාරයෙන් දෛනික වදන් ලබා ගැනීම සඳහා එය ලියාපදිංචි කිරීමට තීරණය කළේය. ඔබ ඇත්තටම වෙබ් අඩවියට කැමති වූ අතර, ඔබ එය ඔබගේ සියලු මිතුරන් සමඟ බෙදා ගැනීමට තීරණය කළා. කොහොමත් හැමෝම ආසයි බය හිතෙන වදන් වලට නේද?
“දවසේ අවාසනාවන්ත ප්රකාශය: ශරීරයේ වම් භාගය අහිමි වූ පුද්ගලයා ගැන අසා තිබේද? දැන් ඔහු සැමවිටම නිවැරදියි! ” (ආසන්න පරිවර්තනය, මුල් පිටපතට ස්වකීය පදයක් ඇති නිසා - දළ වශයෙන් පරිවර්තනය.)
සම්බන්ධතා ලැයිස්තුවෙන් එක් එක් පුද්ගලයාට ලිවීම විකල්පයක් නොවන බව පැහැදිලිය. තවද, ඔබ මා හා සමාන නම්, අනවශ්ය වැඩවලින් වැළකී සිටීමට ඔබ ඕනෑම දුරකට යනු ඇත. වාසනාවකට මෙන්, දවසේ බිහිසුණු ප්රහේලිකාවට ඔබේ සියලු මිතුරන්ට තනිවම ආරාධනා කළ හැකිය! මෙය සිදු කිරීම සඳහා, ඔබට ඔබගේ සම්බන්ධතා ඊමේල් වෙත ප්රවේශය විවෘත කිරීමට අවශ්ය වේ - වෙබ් අඩවිය විසින්ම ඔවුන්ට ආරාධනා (OAuth නීති) යවනු ඇත!
“හැමෝම වදන්වලට කැමතියි! - දැනටමත් ලොගින් වී? “ඔබගේ සම්බන්ධතා ලැයිස්තුවට ප්රවේශ වීමට Terrible Pun of the Day වෙබ් අඩවියට ඉඩ දීමට ඔබ කැමතිද? - ඔයාට ස්තූතියි! මෙතැන් සිට, අපි ඔබ දන්නා සෑම කෙනෙකුටම, කාලය අවසන් වන තෙක් සෑම දිනකම මතක් කිරීම් යවන්නෙමු! ඔබ හොඳම මිතුරා!"
- ඔබගේ විද්යුත් තැපැල් සේවාව තෝරන්න.
- අවශ්ය නම්, තැපැල් අඩවියට ගොස් ඔබගේ ගිණුමට පුරනය වන්න.
- ඔබගේ සම්බන්ධතා වෙත ප්රවේශ වීමට Trible Pun of the Day අවසරය ලබා දෙන්න.
- Trible Pun of the Day අඩවිය වෙත ආපසු යන්න.
ඔබ ඔබේ අදහස වෙනස් කළහොත්, OAuth භාවිතා කරන යෙදුම් ප්රවේශය අවලංගු කිරීමට ක්රමයක් ද සපයයි. ඔබ තවදුරටත් දවසේ භයානක ප්රකාශය සමඟ සම්බන්ධතා බෙදා ගැනීමට අවශ්ය නැති බව ඔබ තීරණය කළ පසු, ඔබට තැපැල් අඩවියට ගොස් බලයලත් යෙදුම් ලැයිස්තුවෙන් pun අඩවිය ඉවත් කළ හැකිය.
OAuth ප්රවාහය
අපි සාමාන්යයෙන් හඳුන්වන දේ හරහා ගියා ගලනවා [ගලනවා] OAuth. අපගේ උදාහරණයේ දී, මෙම ප්රවාහය දෘශ්ය පියවර මෙන්ම නොපෙනෙන පියවර කිහිපයකින් සමන්විත වන අතර, සේවා දෙකක් ආරක්ෂිත තොරතුරු හුවමාරුවකට එකඟ වේ. පෙර දින දරුණු ප්රශ්න උදාහරණය "අවසර දීමේ කේතය" ප්රවාහය ලෙස හඳුන්වන වඩාත් පොදු OAuth 2.0 ප්රවාහය භාවිතා කරයි. ["අධිපත්ය කේතය" ප්රවාහය].
OAuth ක්රියා කරන ආකාරය පිළිබඳ විස්තර වෙත කිමිදීමට පෙර, අපි සමහර පදවල තේරුම ගැන කතා කරමු:
- සම්පත් හිමිකරු:
ඒ ඔබයි! ඔබට ඔබේ අක්තපත්ර, ඔබේ දත්ත, සහ ඔබේ ගිණුම්වල සිදු කළ හැකි සියලුම ක්රියාකාරකම් පාලනය කරන්න. - සේවාලාභියා:
ප්රවේශ වීමට හෝ ඒ වෙනුවෙන් යම් ක්රියා සිදු කිරීමට අවශ්ය යෙදුමක් (උදාහරණයක් ලෙස, දවසේ බිහිසුණු ප්රශ්නය) සම්පත් හිමිකරු'ඒ. - බලය පැවරීමේ සේවාදායකය:
දන්න ඇප් එක සම්පත් හිමිකරු'a සහ එහි ඔබ සම්පත් හිමිකරු'දැනටමත් ගිණුමක් තියෙනවා. - සම්පත් සේවාදායකය:
යෙදුම් ක්රමලේඛන අතුරුමුහුණත (API) හෝ සේවාව සේවාලාභියා වෙනුවෙන් භාවිතා කිරීමට අවශ්යයි සම්පත් හිමිකරු'ඒ. - URI යළි-යොමු කරන්න:
ඒ ලින්ක් එක බලය පැවරීමේ සේවාදායකය හරවා යවනු ඇත සම්පත් හිමිකරුසහ අවසර ලබා දීමෙන් පසුව සේවාලාභියා'හිදී. එය සමහර විට "ඇමතුම් URL" ලෙස හැඳින්වේ. - ප්රතිචාර වර්ගය:
ලැබීමට අපේක්ෂිත තොරතුරු වර්ගය සේවාලාභියා. වඩාත් පොදු ප්රතිචාර වර්ගය'ඕම් යනු කේතයයි, එනම් සේවාලාභියා ලැබීමට අපේක්ෂා කරයි බලය පැවරීමේ කේතය. - විෂය පථය:
මෙය අවශ්ය අවසරයන් පිළිබඳ සවිස්තරාත්මක විස්තරයකි සේවාලාභියා'y, දත්ත වෙත ප්රවේශ වීම හෝ ඇතැම් ක්රියා සිදු කිරීම වැනි. - කැමැත්ත:
බලය පැවරීමේ සේවාදායකය ගත වේ විෂය පථයඉල්ලා සේවාලාභියා'ඔම්, සහ අසයි සම්පත් හිමිකරු'a, ඔහු ලබා දීමට සූදානම්ද? සේවාලාභියා'සුදුසු අවසර ඇත. - සේවාලාභී හැඳුනුම්පත:
මෙම හැඳුනුම්පත හඳුනා ගැනීමට භාවිතා කරයි සේවාලාභියා'a on බලය පැවරීමේ සේවාදායකය'ඊ. - සේවාලාභී රහස:
මෙය පමණක් දන්නා මුරපදයකි සේවාලාභියා'u සහ බලය පැවරීමේ සේවාදායකය'හිදී. එය ඔවුන්ට පුද්ගලිකව තොරතුරු හුවමාරු කර ගැනීමට ඉඩ සලසයි. - බලය පැවරීමේ කේතය:
කෙටි කාල සීමාවක් සහිත තාවකාලික කේතය, එනම් සේවාලාභියා සපයයි බලය පැවරීමේ සේවාදායකය'y වෙනුවට ටෝකනයට ප්රවේශ වන්න. - ටෝකනයට ප්රවේශ වන්න:
සේවාදායකයා සන්නිවේදනය කිරීමට භාවිතා කරන යතුර සම්පත් සේවාදායකය'ඕම්. සපයන ලාංඡන වර්ගයක් හෝ යතුරු කාඩ්පතක් සේවාලාභියා'දත්ත ඉල්ලීමට හෝ ක්රියා කිරීමට අවසර ඇත සම්පත් සේවාදායකයඔබ වෙනුවෙන්.
අදහස් දැක්වීම්: සමහර විට Authorization Server සහ Resource Server එකම සේවාදායකය වේ. කෙසේ වෙතත්, සමහර අවස්ථා වලදී, මේවා එකම සංවිධානයකට අයත් නොවූවත්, විවිධ සේවාදායකයන් විය හැකිය. උදාහරණයක් ලෙස, බලය පැවරීමේ සේවාදායකය සම්පත් සේවාදායකය විසින් විශ්වාස කරන තෙවන පාර්ශවීය සේවාවක් විය හැකිය.
දැන් අපි OAuth 2.0 හි මූලික සංකල්ප ආවරණය කර ඇති අතර, අපි අපගේ උදාහරණයට ආපසු ගොස් OAuth ප්රවාහයේ සිදුවන්නේ කුමක්ද යන්න දෙස සමීපව බලමු.
- ඔබ, සම්පත් හිමිකරු, ඔබට දවසේ බිහිසුණු පුන්ය සේවාව සැපයීමට අවශ්යයි (සේවාලාභියාy) ඔබේ සියලු මිතුරන්ට ආරාධනා යැවීමට හැකි වන පරිදි ඔබේ සම්බන්ධතා වෙත ප්රවේශය.
- සේවාලාභියා බ්රව්සරය පිටුවට හරවා යවයි බලය පැවරීමේ සේවාදායකය'a සහ විමසුමට ඇතුළත් කරන්න සේවාලාභී හැඳුනුම්පත, URI යළි-යොමු කරන්න, ප්රතිචාර වර්ගය සහ එකක් හෝ කිහිපයක් විෂය පථය (අවසර) එය අවශ්ය වේ.
- බලය පැවරීමේ සේවාදායකය අවශ්ය නම් පරිශීලක නාමයක් සහ මුරපදයක් ඉල්ලා ඔබව සත්යාපනය කරයි.
- බලය පැවරීමේ සේවාදායකය පෝරමයක් පෙන්වයි කැමැත්ත (තහවුරු කිරීම්) සියල්ල ලැයිස්තුවක් සමඟ විෂය පථයඉල්ලා සේවාලාභියා'ඕම්. ඔබ එකඟ වෙනවා හෝ ප්රතික්ෂේප කරනවා.
- බලය පැවරීමේ සේවාදායකය ඔබව අඩවියට හරවා යවයි සේවාලාභියා'a, භාවිතා කරයි URI යළි-යොමු කරන්න සමඟ බලය පැවරීමේ කේතය (අවසර කේතය).
- සේවාලාභියා සමඟ කෙලින්ම සන්නිවේදනය කරයි බලය පැවරීමේ සේවාදායකය'ඕම් (බ්රවුසරය මඟ හැරීම සම්පත් හිමිකරු'a) සහ ආරක්ෂිතව යවයි සේවාලාභී හැඳුනුම්පත, සේවාලාභී රහස и බලය පැවරීමේ කේතය.
- බලය පැවරීමේ සේවාදායකය දත්ත පරීක්ෂා කර ප්රතිචාර දක්වයි ටෝකනයට ප්රවේශ වන්න'ඕම් (ප්රවේශ ටෝකනය).
- දැන් සේවාලාභියා භාවිතා කළ හැකිය ටෝකනයට ප්රවේශ වන්න වෙත ඉල්ලීමක් යැවීමට සම්පත් සේවාදායකය සම්බන්ධතා ලැයිස්තුවක් ලබා ගැනීමට.
සේවාලාභී හැඳුනුම්පත සහ රහස්
ඔබගේ සම්බන්ධතා වෙත ප්රවේශ වීමට ඔබ දවසේ බිහිසුණු පුන්යට ඉඩ දීමට බොහෝ කලකට පෙර, සේවාලාභියා සහ බලය පැවරීමේ සේවාදායකය වැඩ කරන සම්බන්ධතාවයක් ඇති කර ගෙන ඇත. බලය පැවරීමේ සේවාදායකය සේවාදායකයා හැඳුනුම්පත සහ සේවාලාභී රහස (සමහර විට හැඳින්වේ යෙදුම් හැඳුනුම්පත и යෙදුම් රහස) සහ OAuth තුළ වැඩිදුර අන්තර්ක්රියා සඳහා ඒවා සේවාදායකයා වෙත යවන ලදී.
"- ආයුබෝවන්! මම ඔබ සමඟ වැඩ කිරීමට කැමතියි! - ඇත්ත වශයෙන්ම, ප්රශ්නයක් නොවේ! මෙන්න ඔබේ සේවාලාභී හැඳුනුම්පත සහ රහස!"
නමෙන් ගම්ය වන්නේ Client Secret එක Client සහ Authorization Server එකට පමණක් දැන ගත හැකි පරිදි එය රහසිගතව තබා ගත යුතු බවයි. සියල්ලට පසු, බලයලත් සේවාදායකය සේවාදායකයාගේ සත්යය තහවුරු කරන්නේ ඔහුගේ උදව්වෙනි.
නමුත් එය පමණක් නොවේ... OpenID Connect සාදරයෙන් පිළිගනිමු!
OAuth 2.0 නිර්මාණය කර ඇත්තේ සඳහා පමණි අවසරය - එක් යෙදුමකින් තවත් යෙදුමකට දත්ත සහ කාර්යයන් වෙත ප්රවේශය සැපයීමට.
බොහෝ යෙදුම්වල තනි පුරනයක් භාවිතා කළ හැකි අවස්ථා ක්රියාත්මක කිරීමට OpenID Connect ඔබට ඉඩ සලසයි - මෙම ප්රවේශය ලෙසද හැඳින්වේ. තනි පුරනය වීම (SSO). උදාහරණයක් ලෙස, යෙදුමක් ෆේස්බුක් හෝ ට්විටර් වැනි සමාජ ජාල සමඟ SSO ඒකාබද්ධ කිරීමට සහාය විය හැක, පරිශීලකයින්ට දැනටමත් ඇති ගිණුමක් භාවිතා කිරීමට සහ භාවිතා කිරීමට කැමැත්තක් දක්වයි.
ප්රවාහ (ප්රවාහය) OpenID Connect OAuth හි මෙන් ම පෙනේ. එකම වෙනස වන්නේ ප්රාථමික ඉල්ලීමේ දී භාවිතා කරන නිශ්චිත විෂය පථයයි openid
, - ඒ සේවාලාභියා අවසානයේ like වෙයි ටෝකනයට ප්රවේශ වන්න, සහ ID ටෝකනය.
OAuth ප්රවාහයේ මෙන්, ටෝකනයට ප්රවේශ වන්න OpenID Connect හි, මෙය පැහැදිලි නැති යම් අගයකි සේවාලාභියා'හිදී. දෘෂ්ටි කෝණයෙන් සේවාලාභියා'ඒ ටෝකනයට ප්රවේශ වන්න වෙත එක් එක් ඉල්ලීම සමඟින් සම්මත කරන ලද අක්ෂර මාලාවක් නියෝජනය කරයි සම්පත් සේවාදායකය'y, ටෝකනය වලංගුද යන්න තීරණය කරයි. ID ටෝකනය සම්පූර්ණයෙන්ම වෙනස් දෙයක් නියෝජනය කරයි.
ID Token එක JWT එකක්
ID ටෝකනය යනු JSON වෙබ් ටෝකනය හෝ JWT ලෙස හඳුන්වන විෙශේෂෙයන් ෆෝමැට් කරන ලද අක්ෂර මාලාවකි (සමහර විට JWT ටෝකන "jots" ලෙස උච්චාරණය වේ). බාහිර නිරීක්ෂකයින්ට, 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