آرکیٹیکچر فیصلے کا ریکارڈ: توثیق اور اجازت کے اختیارات
ویب ایپلیکیشن کی توثیق (authentication) اور اجازت (authorization) ایپلیکیشنز اور خدمات تک رسائی کو محفوظ بنانے کے دو اہم تصورات ہیں۔ دونوں صارفین کی شناخت اور اجازتیں کیسے دی جاتی ہیں سے متعلق ہیں، لیکن مختلف پہلوؤں پر توجہ دیتے ہیں:
- توثیق کسی صارف یا سسٹم کی شناخت کی تصدیق کا عمل ہے۔
- اجازت یہ طے کرنے کا عمل ہے کہ توثیق شدہ صارف یا سسٹم کن وسائل یا اعمال تک رسائی حاصل کر سکتا ہے۔
اب آئیے ان مخصوص پروٹوکولز اور ٹیکنالوجیز میں جاتے ہیں جن کا آپ نے ذکر کیا، جو توثیق اور اجازت کے انتظام کے لیے جدید ویب ایپلیکیشنز میں عام طور پر استعمال ہوتے ہیں۔
1. OAuth (Open Authorization)
OAuth اجازت کا ایک کھلا معیار ہے۔ یہ صارف کو اپنی اسناد شیئر کیے بغیر کسی تیسرے فریق کی ایپلیکیشن کو اپنے وسائل تک محدود رسائی دینے کی اجازت دیتا ہے۔ بنیادی خیال تفویض شدہ رسائی (delegated access) ہے۔ OAuth اکثر ان حالات میں استعمال ہوتا ہے جہاں صارفین تیسرے فریق کو براہِ راست اپنا صارف نام اور پاس ورڈ دیے بغیر تیسرے فریق کی سروس میں لاگ اِن ہو سکتے ہیں (مثلاً Google سے سائن اِن)۔
- بہاؤ: OAuth عموماً ٹوکن پر مبنی بہاؤ کی پیروی کرتا ہے، جہاں اجازتی سرور تیسرے فریق کی ایپلیکیشن کو ایک رسائی ٹوکن جاری کرتا ہے۔ یہ ٹوکن صارف کی اجازتوں کی نمائندگی کرتا ہے، اور ایپلیکیشن اسے API سے صارف کا ڈیٹا یا وسائل حاصل کرنے کے لیے استعمال کرتی ہے۔
- مثال: ایک صارف اپنے Google اکاؤنٹ کے ذریعے تیسرے فریق کی ایپ میں سائن اِن کرتا ہے۔ Google صارف کی شناخت کی تصدیق کرتا ہے اور پھر ایک ٹوکن دیتا ہے جو تیسرے فریق کی ایپ کو کچھ Google ڈیٹا (مثلاً Google Calendar) تک رسائی کی اجازت دیتا ہے۔
OAuth توثیق کو براہِ راست نہیں سنبھالتا؛ یہ رسائی دینے کے بارے میں ہے۔ توثیق کے لیے OAuth کو اکثر OpenID Connect جیسے دوسرے پروٹوکولز کے ساتھ جوڑا جاتا ہے۔
2. OpenID Connect (OIDC)
OpenID Connect (OIDC) شناخت کی ایک تہہ ہے جو OAuth 2.0 کے اوپر بنائی گئی ہے اور OAuth کی اجازتی صلاحیتوں میں توثیق شامل کرتی ہے۔ بنیادی طور پر OpenID Connect، OAuth کو صارف کی توثیق سنبھالنے کے لیے وسعت دیتا ہے اور ایپلیکیشنز کے لیے صارف کی شناخت کی تصدیق کا معیاری طریقہ فراہم کرتا ہے۔
- بہاؤ: جب صارف OpenID Connect استعمال کر کے لاگ اِن ہوتا ہے تو تیسرے فریق کی ایپلیکیشن (OAuth رسائی ٹوکن کے علاوہ) ایک ID ٹوکن کی درخواست کرتی ہے۔ ID ٹوکن میں صارف کے بارے میں معلومات (جیسے صارف نام، ای میل اور دیگر دعوے) ہوتی ہیں۔ یہ ایپلیکیشن کو جاننے دیتا ہے کہ صارف کون ہے اور آیا وہ توثیق شدہ ہے۔
- مثال: اپنے Google اکاؤنٹ (Google بطور OpenID Connect فراہم کنندہ) کے ذریعے Slack جیسی سروس میں لاگ اِن ہونا OpenID Connect کے ذریعے توثیق پر مشتمل ہے، جبکہ OAuth آپ کے Google وسائل تک رسائی کو منظم کرتا ہے۔
OIDC تیسرے فریق کی ایپس کے لیے صارفین کی توثیق آسان بناتا ہے، ساتھ ہی اس پر باریک کنٹرول برقرار رکھتا ہے کہ وہ ایپس کن وسائل تک رسائی حاصل کر سکتی ہیں۔
3. SAML (Security Assertion Markup Language)
SAML ایک پرانا، XML پر مبنی معیار ہے جو فریقوں کے درمیان توثیق اور اجازت کا ڈیٹا تبادلہ کرنے کے لیے استعمال ہوتا ہے، خاص طور پر سنگل سائن آن (SSO) کے منظرناموں میں۔ یہ بنیادی طور پر انٹرپرائز ماحول میں استعمال ہوتا ہے تاکہ صارفین ایک بار توثیق کر کے اسناد دوبارہ درج کیے بغیر متعدد ایپلیکیشنز تک رسائی حاصل کر سکیں۔
- بہاؤ: صارف پہلے شناخت فراہم کنندہ (IdP) کے ساتھ توثیق کرتا ہے۔ IdP ایک دستخط شدہ SAML اسرٹن (assertion) بناتا ہے جس میں صارف کی شناخت اور متعلقہ اوصاف شامل ہوتے ہیں۔ اسرٹن سروس فراہم کنندہ (SP) کو بھیجا جاتا ہے، جو اسے ایپلیکیشن تک رسائی کی اجازت دینے کے لیے استعمال کرتا ہے۔
- مثال: ایک ملازم اپنے کارپوریٹ پورٹل (IdP) میں لاگ اِن ہوتا ہے اور اسناد دوبارہ درج کیے بغیر خودکار طور پر ای میل، CRM وغیرہ جیسے دوسرے سسٹمز میں لاگ اِن ہو جاتا ہے۔ توثیق کا عمل IdP کے بھیجے گئے SAML اسرٹن پر مبنی ہے۔
SAML عموماً انٹرپرائز SSO حلوں میں استعمال ہوتا ہے اور کارپوریٹ ماحول میں ویب ایپلیکیشنز کے لیے اچھا کام کرتا ہے، لیکن OAuth/OIDC کے مقابلے میں موبائل کے لیے کم موزوں ہے۔
4. WS-Federation (Web Services Federation)
WS-Federation سنگل سائن آن (SSO) کے لیے استعمال ہونے والا ایک اور پروٹوکول ہے، خاص طور پر Microsoft پر مبنی انٹرپرائز ماحول میں۔ یہ WS- (Web Services)* خصوصیات کے خاندان کا حصہ ہے اور مختلف سیکیورٹی ڈومینز (جیسے مختلف تنظیموں یا مختلف خدمات کے درمیان) میں شناخت کے فیڈریشن کی اجازت دیتا ہے۔
- بہاؤ: WS-Federation ایک قابلِ اعتماد شناخت فراہم کنندہ (IdP) کو صارفین کی توثیق کرنے اور ایسے ٹوکن جاری کرنے کی اجازت دیتا ہے جنہیں سروس فراہم کنندہ اجازت کے لیے استعمال کر سکتا ہے۔ یہ SAML سے ملتا جلتا ہے لیکن اکثر ان منظرناموں میں استعمال ہوتا ہے جو Microsoft ٹیکنالوجیز پر بہت زیادہ انحصار کرتے ہیں۔
- مثال: ایک صارف Microsoft Azure Active Directory (AD) پر ہوسٹ کی گئی انٹرپرائز ایپلیکیشن میں لاگ اِن ہوتا ہے، اور اس کی شناخت دوسری فیڈریٹڈ خدمات، بشمول تیسرے فریق کے وینڈرز کی ہوسٹ کردہ ایپلیکیشنز، تک رسائی کے لیے استعمال ہو سکتی ہے۔
اگرچہ بہت سے جدید ویب ماحول میں WS-Federation کی جگہ بڑی حد تک OAuth 2.0 اور OpenID Connect جیسے نئے پروٹوکولز نے لے لی ہے، یہ اب بھی لیگیسی سسٹمز میں، خاص طور پر Microsoft مرکوز انٹرپرائزز میں، استعمال ہوتا ہے۔
5. LDAP (Lightweight Directory Access Protocol)
LDAP ڈائریکٹری خدمات تک رسائی اور انہیں منظم کرنے کے لیے استعمال ہونے والا پروٹوکول ہے، جو عموماً مرکزی ڈائریکٹری (جسے اکثر ڈائریکٹری سروس کہتے ہیں) میں صارفین کی اسناد کو محفوظ کرنے اور رسائی کنٹرول کو منظم کرنے کے لیے استعمال ہوتا ہے۔ LDAP خاص طور پر توثیق یا اجازت کے بارے میں نہیں، بلکہ شناخت کا ڈیٹا محفوظ اور حاصل کرنے کے لیے استعمال ہوتا ہے، جو پھر ان عملوں میں استعمال ہوتا ہے۔
- توثیق: LDAP ایپلیکیشن کو ڈائریکٹری سروس سے اسناد (جیسے پاس ورڈ) کی کوئری کر کے صارفین کی توثیق کرنے دیتا ہے۔
- اجازت: یہ صارفین کے کردار اور اجازتیں بھی منظم کرتا ہے، یہ طے کرنے میں مدد دیتا ہے کہ آیا صارف کو بعض وسائل تک رسائی حاصل ہے۔
- مثال: بہت سے انٹرپرائزز توثیق اور اجازت کے لیے LDAP پر مبنی ڈائریکٹریز (مثلاً Active Directory) استعمال کرتے ہیں، خاص طور پر Windows ماحول میں۔
LDAP اندرونی سسٹمز میں صارفین کی رسائی منظم کرنے کے لیے انٹرپرائزز کے لیے اہم ہے، لیکن جدید ویب سیاق میں LDAP کو اکثر زیادہ مکمل شناخت کے انتظام کے لیے SAML یا OAuth جیسے دوسرے پروٹوکولز کے ساتھ ضم کیا جاتا ہے۔
6. سوشل SSO فراہم کنندگان
Facebook، Google، Twitter، GitHub اور دیگر جیسے سوشل سنگل سائن آن (SSO) فراہم کنندگان صارفین کو اپنی سوشل میڈیا اسناد استعمال کر کے تیسرے فریق کی ایپلیکیشنز میں توثیق کرنے دیتے ہیں۔ یہ OAuth پر مبنی توثیق کی ایک قسم ہے جس میں تیسرے فریق کی سروس (مثلاً Google) شناخت فراہم کنندہ ہے۔
- بہاؤ: صارف (مثلاً) “Log in with Google” پر کلک کرتا ہے۔ ایپ Google پر ری ڈائریکٹ کرتی ہے، جہاں صارف لاگ اِن ہوتا ہے (اگر پہلے سے لاگ اِن نہ ہو)۔ پھر Google تیسرے فریق کی ایپ کو رسائی ٹوکن یا ID ٹوکن فراہم کرتا ہے، جو صارف کی توثیق کرنے اور ممکنہ طور پر اس کے ڈیٹا تک رسائی کے لیے استعمال ہو سکتا ہے۔
- مثال: بہت سی ایپلیکیشنز آپ کو اپنی Google یا Facebook اسناد استعمال کر کے لاگ اِن ہونے دیتی ہیں۔ ایپ آپ کی شناخت کی تصدیق کے لیے اور بعض صورتوں میں کچھ سوشل میڈیا ڈیٹا تک رسائی کے لیے پردے کے پیچھے OAuth یا OpenID Connect استعمال کرے گی۔
سوشل SSO توثیق کا ایک آسان اور وسیع پیمانے پر اپنایا گیا طریقہ ہے کیونکہ یہ ان صارفین کے لیے رکاوٹ کم کرتا ہے جو ایک اور صارف نام اور پاس ورڈ نہیں بنانا چاہتے۔
فرقوں کا خلاصہ:
- OAuth: اجازت کے لیے استعمال ہوتا ہے، تیسرے فریق کی ایپس کو اسناد ظاہر کیے بغیر صارف کے ڈیٹا تک رسائی کی اجازت دیتا ہے۔
- OpenID Connect: توثیق فراہم کرنے کے لیے OAuth کو وسعت دیتا ہے، ایپس کو صارف کی شناخت کی تصدیق کے قابل بناتا ہے۔
- SAML: SSO کے لیے استعمال ہونے والا XML پر مبنی پروٹوکول، اکثر انٹرپرائز ماحول میں۔
- WS-Federation: شناخت کے فیڈریشن کے لیے Microsoft کا مخصوص پروٹوکول، لیگیسی سسٹمز میں استعمال ہوتا ہے۔
- LDAP: صارفین کی توثیق اور اجازت کے انتظام کے لیے ڈائریکٹری خدمات سے کوئری کرنے کا پروٹوکول۔
- سوشل SSO فراہم کنندگان: OAuth پر مبنی سسٹمز (جیسے Google، Facebook) جو تیسرے فریق کی ایپس کو سوشل میڈیا اسناد استعمال کر کے صارفین کی توثیق کرنے دیتے ہیں۔
ان ٹیکنالوجیز میں سے ہر ایک کی اپنی طاقتیں اور استعمال کے معاملات ہیں، اور جدید ایپلیکیشنز میں آپ سیکیورٹی کے مختلف پہلوؤں کے لیے ان کے امتزاج کو استعمال ہوتے دیکھ سکتے ہیں (مثلاً API رسائی کے لیے OAuth/OIDC، انٹرپرائز SSO کے لیے SAML)۔