OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

نوٹ. ترجمہ: Okta کا یہ زبردست مضمون وضاحت کرتا ہے کہ OAuth اور OIDC (OpenID Connect) کس طرح سادہ اور واضح طریقے سے کام کرتے ہیں۔ یہ علم ڈویلپرز، سسٹم ایڈمنسٹریٹرز، اور یہاں تک کہ مقبول ویب ایپلیکیشنز کے "باقاعدہ صارفین" کے لیے بھی کارآمد ہو گا، جو غالباً دیگر سروسز کے ساتھ خفیہ ڈیٹا کا تبادلہ بھی کرتے ہیں۔

انٹرنیٹ کے پتھر کے زمانے میں، خدمات کے درمیان معلومات کا تبادلہ آسان تھا۔ آپ نے آسانی سے اپنا لاگ ان اور پاس ورڈ ایک سروس سے دوسری سروس کو دے دیا، تاکہ وہ آپ کے اکاؤنٹ میں داخل ہو جائے اور اسے مطلوبہ معلومات موصول ہو جائیں۔

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ
"مجھے اپنا بینک اکاؤنٹ دو۔" "ہم وعدہ کرتے ہیں کہ پاس ورڈ اور پیسے کے ساتھ سب کچھ ٹھیک ہو جائے گا۔ یہ ایماندار ہے، ایماندار!" *ہی ہی*

وحشت! کسی کو بھی صارف سے صارف نام اور پاس ورڈ شیئر کرنے کی ضرورت نہیں ہونی چاہیے، اسناد، دوسری خدمت کے ساتھ۔ اس بات کی کوئی گارنٹی نہیں ہے کہ اس سروس کے پیچھے جو ادارہ ہے وہ ڈیٹا کو محفوظ رکھے گا اور ضرورت سے زیادہ ذاتی معلومات اکٹھا نہیں کرے گا۔ یہ پاگل لگ سکتا ہے، لیکن کچھ ایپس اب بھی اس مشق کو استعمال کرتی ہیں!

آج ایک ہی معیار ہے جو ایک سروس کو دوسرے کا ڈیٹا محفوظ طریقے سے استعمال کرنے کی اجازت دیتا ہے۔ بدقسمتی سے، اس طرح کے معیارات بہت زیادہ اصطلاحات اور اصطلاحات استعمال کرتے ہیں، جو ان کی سمجھ کو پیچیدہ بنا دیتے ہیں۔ اس مواد کا مقصد یہ بتانا ہے کہ وہ کس طرح سادہ عکاسیوں کا استعمال کرتے ہوئے کام کرتے ہیں (کیا آپ کو لگتا ہے کہ میری ڈرائنگ بچوں کے ڈبنگ سے ملتی جلتی ہیں؟ اوہ اچھا!)

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

ویسے، یہ گائیڈ ویڈیو فارمیٹ میں بھی دستیاب ہے:

خواتین و حضرات، خوش آمدید: OAuth 2.0

OAuth 2.0 ایک حفاظتی معیار ہے جو ایک ایپلیکیشن کو دوسری ایپلیکیشن میں معلومات تک رسائی حاصل کرنے کی اجازت دیتا ہے۔ اجازت نامے کے اجراء کے لیے اقدامات کی ترتیب [اجازت] (یا رضامندی [رضامندی]) اکثر کال کرتے ہیں۔ اجازت [اجازت] یا یہاں تک کہ تفویض کی اجازت [تعین کردہ اجازت]. اس معیار کے ساتھ، آپ کسی ایپلیکیشن کو اپنا پاس ورڈ دیے بغیر ڈیٹا کو پڑھنے یا اپنی طرف سے کسی اور ایپلیکیشن کے فنکشنز کو استعمال کرنے کی اجازت دیتے ہیں۔ کلاس!

مثال کے طور پر، ہم کہتے ہیں کہ آپ کو "Unlucky Pun of the Day" نامی سائٹ دریافت ہوئی ہے۔ [دن کا خوفناک پن] اور فون پر ٹیکسٹ میسجز کی شکل میں روزانہ puns وصول کرنے کے لیے اس پر رجسٹر ہونے کا فیصلہ کیا۔ آپ کو یہ سائٹ واقعی پسند آئی، اور آپ نے اسے اپنے تمام دوستوں کے ساتھ شیئر کرنے کا فیصلہ کیا۔ سب کے بعد، سب کو ڈراونا پن پسند ہے، ٹھیک ہے؟

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ
"اس دن کی بدقسمتی: اس لڑکے کے بارے میں سنا ہے جس نے اپنے جسم کے بائیں آدھے حصے کو کھو دیا ہے؟ اب وہ ہمیشہ صحیح ہے! (تقریبا ترجمہ، کیونکہ اصل کا اپنا pun ہے - تقریباً ترجمہ۔)

یہ واضح ہے کہ رابطے کی فہرست سے ہر فرد کو لکھنا کوئی آپشن نہیں ہے۔ اور، اگر آپ میری طرح تھوڑے سے بھی ہیں، تو آپ غیر ضروری کام سے بچنے کے لیے کسی بھی حد تک جائیں گے۔ خوش قسمتی سے، دن کا خوفناک پن خود آپ کے تمام دوستوں کو مدعو کرسکتا ہے! ایسا کرنے کے لیے، آپ کو صرف اپنے رابطوں کے ای میل تک رسائی کھولنے کی ضرورت ہے - سائٹ خود انہیں دعوت نامے بھیجے گی (OAuth کے قوانین)!

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ
"ہر کوئی puns سے محبت کرتا ہے! - پہلے سے لاگ ان؟ "کیا آپ ٹیریبل پن آف دی ڈے ویب سائٹ کو اپنی رابطہ فہرست تک رسائی کی اجازت دینا چاہیں گے؟ - شکریہ! اب سے، ہم ہر روز یاددہانی بھیجیں گے جنہیں آپ جانتے ہیں، وقت کے اختتام تک! تم سب سے اچھے دوست ہو!"

  1. اپنی ای میل سروس کا انتخاب کریں۔
  2. اگر ضروری ہو تو، میل سائٹ پر جائیں اور اپنے اکاؤنٹ میں سائن ان کریں۔
  3. اپنے رابطوں تک رسائی کے لیے دن کے خوفناک پن کی اجازت دیں۔
  4. دن کے خوفناک پن کی سائٹ پر واپس جائیں۔

اگر آپ اپنا خیال بدلتے ہیں تو، OAuth استعمال کرنے والی ایپلیکیشنز رسائی کو منسوخ کرنے کا طریقہ بھی فراہم کرتی ہیں۔ ایک بار جب آپ یہ فیصلہ کر لیتے ہیں کہ آپ ٹیریبل پن آف دی ڈے کے ساتھ رابطے کا اشتراک نہیں کرنا چاہتے ہیں، تو آپ میل سائٹ پر جا سکتے ہیں اور مجاز ایپلی کیشنز کی فہرست سے پن سائٹ کو ہٹا سکتے ہیں۔

OAuth فلو

ہم ابھی گزرے ہیں جسے عام طور پر کہا جاتا ہے۔ بہاؤ [بہاؤ] OAuth. ہماری مثال میں، یہ بہاؤ مرئی مراحل کے ساتھ ساتھ کئی غیر مرئی مراحل پر مشتمل ہے، جس میں دو خدمات معلومات کے محفوظ تبادلے پر متفق ہیں۔ پچھلی Terrible Pun of the Day مثال سب سے عام OAuth 2.0 فلو کا استعمال کرتی ہے، جسے "Authorization code" فلو کہا جاتا ہے۔ ["اجازت کوڈ" بہاؤ].

OAuth کیسے کام کرتا ہے اس کی تفصیلات میں غوطہ لگانے سے پہلے، آئیے کچھ اصطلاحات کے معنی کے بارے میں بات کرتے ہیں:

  • وسائل کا مالک:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    یہ تم ہو! آپ اپنی اسناد، اپنے ڈیٹا کے مالک ہیں اور ان تمام سرگرمیوں کو کنٹرول کرتے ہیں جو آپ کے اکاؤنٹس پر کی جا سکتی ہیں۔

  • کلائنٹ:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    ایک ایپلیکیشن (مثال کے طور پر، The Terriible Pun of the Day سروس) جو اس کی جانب سے کچھ کارروائیوں تک رسائی یا انجام دینا چاہتی ہے۔ وسائل کا مالک

  • اجازت دینے والا سرور:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    وہ ایپ جو جانتی ہے۔ وسائل کا مالک'a اور جس میں یو وسائل کا مالکایک اکاؤنٹ پہلے سے ہی ہے۔

  • وسائل سرور:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    ایپلیکیشن پروگرامنگ انٹرفیس (API) یا سروس جو کہ کلائنٹ کی طرف سے استعمال کرنا چاہتا ہے۔ وسائل کا مالک

  • URI کو ری ڈائریکٹ کریں۔:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    وہ لنک جو اجازت دینے والا سرور ری ڈائریکٹ کریں گے۔ وسائل کا مالکاور اجازت دینے کے بعد کلائنٹ'پر. اسے بعض اوقات "کال بیک URL" بھی کہا جاتا ہے۔

  • جواب کی قسم:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    موصول ہونے والی معلومات کی قسم کلائنٹ. سب سے عام جواب کی قسم'اوہم کوڈ ہے، یعنی کلائنٹ حاصل کرنے کی توقع ہے اجازت کا کوڈ.

  • گنجائش:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    یہ ان اجازتوں کی تفصیلی وضاحت ہے جو درکار ہیں۔ کلائنٹ'y، جیسے ڈیٹا تک رسائی حاصل کرنا یا کچھ اعمال انجام دینا۔

  • رضامندی:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    اجازت دینے والا سرور لیتا ہے Scopesدرخواست کی کلائنٹ'اوم، اور پوچھتا ہے وسائل کا مالک'a, وہ فراہم کرنے کے لئے تیار ہے؟ کلائنٹ'مناسب اجازتیں ہیں۔

  • کلائنٹ کی شناخت:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    اس آئی ڈی کو شناخت کرنے کے لیے استعمال کیا جاتا ہے۔ کلائنٹ'ایک پر اجازت دینے والا سرور'ای

  • کلائنٹ سیکرٹ:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    یہ وہ پاس ورڈ ہے جو صرف معلوم ہے۔ کلائنٹ'آپ اور اجازت دینے والا سرور'پر. یہ انہیں نجی طور پر معلومات کا اشتراک کرنے کی اجازت دیتا ہے۔

  • اجازت کا کوڈ:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    ایک مختصر مدت کی میعاد کے ساتھ عارضی کوڈ، جو کلائنٹ مہیا کرتا ہے۔ اجازت دینے والا سرورکے بدلے میں ٹوکن تک رسائی.

  • ٹوکن تک رسائی:

    OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

    کلید جس کے ساتھ مواصلت کرنے کے لیے کلائنٹ استعمال کرے گا۔ وسائل سروراوم ایک قسم کا بیج یا کلیدی کارڈ جو فراہم کرتا ہے۔ کلائنٹڈیٹا کی درخواست کرنے یا اس پر کارروائیاں کرنے کی اجازت ہے۔ وسائل سرورآپ کی طرف سے۔

نوٹ: بعض اوقات اتھارٹی سرور اور ریسورس سرور ایک ہی سرور ہوتے ہیں۔ تاہم، بعض صورتوں میں، یہ مختلف سرورز ہو سکتے ہیں، چاہے ان کا تعلق ایک ہی تنظیم سے نہ ہو۔ مثال کے طور پر، اتھارائزیشن سرور تیسری پارٹی کی خدمت ہو سکتی ہے جس پر ریسورس سرور کے ذریعے بھروسہ کیا جاتا ہے۔

اب جب کہ ہم نے OAuth 2.0 کے بنیادی تصورات کا احاطہ کر لیا ہے، آئیے اپنی مثال پر واپس جائیں اور OAuth فلو میں کیا ہوتا ہے اس پر گہری نظر ڈالیں۔

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

  1. تم، وسائل کا مالک، آپ دن کا خوفناک پن سروس فراہم کرنا چاہتے ہیں (کلائنٹy) آپ کے رابطوں تک رسائی تاکہ وہ آپ کے تمام دوستوں کو دعوت نامہ بھیج سکیں۔
  2. کلائنٹ براؤزر کو صفحہ پر ری ڈائریکٹ کرتا ہے۔ اجازت دینے والا سرور'a اور استفسار میں شامل کریں۔ کلائنٹ کی شناخت, URI کو ری ڈائریکٹ کریں۔, جواب کی قسم اور ایک یا زیادہ Scopes (اجازتیں) اس کی ضرورت ہے۔
  3. اجازت دینے والا سرور اگر ضروری ہو تو صارف نام اور پاس ورڈ مانگ کر آپ کی تصدیق کرتا ہے۔
  4. اجازت دینے والا سرور ایک فارم دکھاتا ہے۔ رضامندی (تصدیقات) سب کی فہرست کے ساتھ Scopesدرخواست کی کلائنٹاوم آپ مانیں یا انکار کریں۔
  5. اجازت دینے والا سرور آپ کو سائٹ پر ری ڈائریکٹ کرتا ہے۔ کلائنٹ'a، استعمال کرتے ہوئے URI کو ری ڈائریکٹ کریں۔ ساتھ مل کر اجازت کا کوڈ (اجازت کوڈ)۔
  6. کلائنٹ کے ساتھ براہ راست بات چیت کرتا ہے۔ اجازت دینے والا سرور'اوہم (براؤزر کو نظرانداز کرتے ہوئے۔ وسائل کا مالک'a) اور محفوظ طریقے سے بھیجتا ہے۔ کلائنٹ کی شناخت, کلائنٹ سیکرٹ и اجازت کا کوڈ.
  7. اجازت دینے والا سرور ڈیٹا چیک کرتا ہے اور اس کے ساتھ جواب دیتا ہے۔ ٹوکن تک رسائیاوم (رسائی ٹوکن)۔
  8. اب کلائنٹ استعمال کر سکتے ہیں ٹوکن تک رسائی کو درخواست بھیجنے کے لیے وسائل سرور رابطوں کی فہرست حاصل کرنے کے لیے۔

کلائنٹ کی شناخت اور راز

آپ کو اپنے رابطوں تک رسائی کی اجازت دینے سے بہت پہلے، کلائنٹ اور اجازت دینے والے سرور نے کام کرنے والا رشتہ قائم کر لیا تھا۔ اجازت دینے والے سرور نے کلائنٹ آئی ڈی اور کلائنٹ سیکریٹ (کبھی کبھی کہا جاتا ہے۔ ایپ کی شناخت и ایپ سیکرٹ) اور انہیں OAuth کے اندر مزید تعامل کے لیے کلائنٹ کو بھیج دیا۔

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ
"- ہیلو! میں آپ کے ساتھ کام کرنا چاہوں گا! - یقینا، کوئی مسئلہ نہیں ہے! یہ ہیں آپ کا کلائنٹ آئی ڈی اور راز!

نام اشارہ کرتا ہے کہ کلائنٹ کے راز کو خفیہ رکھا جانا چاہئے تاکہ صرف کلائنٹ اور اجازت دینے والے سرور کو اس کا علم ہو۔ سب کے بعد، یہ اس کی مدد سے ہے کہ اجازت دینے والا سرور کلائنٹ کی سچائی کی تصدیق کرتا ہے.

لیکن یہ سب کچھ نہیں ہے... براہ کرم OpenID Connect کا خیرمقدم کریں!

OAuth 2.0 صرف اس کے لیے ڈیزائن کیا گیا ہے۔ اجازت - ایک ایپلیکیشن سے دوسرے کو ڈیٹا اور فنکشنز تک رسائی فراہم کرنے کے لیے۔ اوپن ایڈ کنیکٹ۔ (OIDC) OAuth 2.0 کے اوپر ایک پتلی تہہ ہے جو اکاؤنٹ میں سائن ان ہونے والے صارف کے لاگ ان اور پروفائل کی تفصیلات شامل کرتی ہے۔ لاگ ان سیشن کی تنظیم کو اکثر کہا جاتا ہے۔ تصدیق [تصدیق]، اور سسٹم میں لاگ ان ہونے والے صارف کے بارے میں معلومات (یعنی وسائل کا مالک'e) - ذاتی مواد [شناخت]. اگر اجازت دینے والا سرور OIDC کو سپورٹ کرتا ہے، تو اسے بعض اوقات کہا جاتا ہے۔ ذاتی ڈیٹا فراہم کرنے والا [شناخت فراہم کنندہ]کیونکہ یہ فراہم کرتا ہے کلائنٹکے بارے میں معلومات ہیں وسائل کا مالک'ای

اوپن آئی ڈی کنیکٹ آپ کو ایسے منظرناموں کو نافذ کرنے کی اجازت دیتا ہے جہاں ایک ہی لاگ ان کو متعدد ایپلی کیشنز میں استعمال کیا جا سکتا ہے - اس نقطہ نظر کو سنگل سائن آن (SSO)۔ مثال کے طور پر، ایک ایپلیکیشن سوشل نیٹ ورکس جیسے Facebook یا Twitter کے ساتھ SSO کے انضمام کی حمایت کر سکتی ہے، جس سے صارفین کو وہ اکاؤنٹ استعمال کرنے کی اجازت مل سکتی ہے جو ان کے پاس پہلے سے موجود ہے اور وہ استعمال کرنے کو ترجیح دیتے ہیں۔

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

بہاؤ (بہاؤ) OpenID Connect وہی نظر آتا ہے جیسا کہ OAuth کے معاملے میں ہے۔ فرق صرف اتنا ہے کہ بنیادی درخواست میں مخصوص دائرہ کار استعمال کیا جاتا ہے۔ openid, - اے کلائنٹ آخر میں پسند ہو جاتا ہے ٹوکن تک رسائیاور آئی ڈی ٹوکن۔.

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

بالکل اسی طرح جیسے OAuth بہاؤ میں، ٹوکن تک رسائی OpenID Connect میں، یہ کچھ قدر ہے جو واضح نہیں ہے۔ کلائنٹ'پر. نقطہ نظر سے کلائنٹ‘а ٹوکن تک رسائی حروف کی ایک تار کی نمائندگی کرتا ہے جو ہر درخواست کے ساتھ پاس کیا جاتا ہے۔ وسائل سرور'y، جو تعین کرتا ہے کہ آیا ٹوکن درست ہے۔ آئی ڈی ٹوکن۔ بالکل مختلف چیز کی نمائندگی کرتا ہے۔

ID ٹوکن ایک JWT ہے۔

آئی ڈی ٹوکن۔ حروف کی ایک خاص شکل والی تار ہے جسے JSON Web Token یا JWT کہا جاتا ہے۔ (بعض اوقات JWT ٹوکن کو "jots" کی طرح تلفظ کیا جاتا ہے). بیرونی مبصرین کے لیے، JWT ناقابل فہم بکواس لگ سکتا ہے، لیکن کلائنٹ JWT سے مختلف معلومات نکال سکتے ہیں، جیسے کہ ID، صارف نام، لاگ ان کا وقت، میعاد ختم ہونے کی تاریخ آئی ڈی ٹوکن۔'a، JWT میں مداخلت کرنے کی کوششوں کی موجودگی۔ اندر کا ڈیٹا آئی ڈی ٹوکن۔ایک کہا جاتا ہے ایپلی کیشنز [دعوے].

OAuth اور OpenID کنیکٹ کے لیے ایک السٹریٹڈ گائیڈ

OIDC کے معاملے میں، ایک معیاری طریقہ بھی ہے جس کے ذریعے کلائنٹ فرد کے بارے میں اضافی معلومات کی درخواست کر سکتے ہیں۔ [شناخت] سے اجازت دینے والا سرور'a، مثال کے طور پر، استعمال کرتے ہوئے ایک ای میل ایڈریس ٹوکن تک رسائی.

OAuth اور OIDC کے بارے میں مزید جانیں۔

لہذا، ہم نے مختصراً جائزہ لیا کہ OAuth اور OIDC کیسے کام کرتے ہیں۔ گہری کھدائی کے لیے تیار ہیں؟ OAuth 2.0 اور OpenID Connect کے بارے میں مزید جاننے میں آپ کی مدد کے لیے یہاں اضافی وسائل ہیں:

ہمیشہ کی طرح، بلا جھجھک تبصرہ کریں۔ ہماری تازہ ترین خبروں سے اپ ٹو ڈیٹ رہنے کے لیے، سبسکرائب کریں۔ ٹویٹر и یو ٹیوب پر ڈویلپرز کے لیے اوکٹا!

مترجم سے PS

ہمارے بلاگ پر بھی پڑھیں:

ماخذ: www.habr.com

نیا تبصرہ شامل کریں