blog.posts.oauth2-authentication-guide.title

blog.posts.oauth2-authentication-guide.description

E

ECOSIRE Research and Development Team

ECOSIRE ٹیم

5 مارچ، 20266 منٹ پڑھیں1.2k الفاظ

OAuth2 توثیق: Authentik کے ساتھ محفوظ لاگ ان کو نافذ کرنا

تصدیق کسی بھی ویب ایپلیکیشن کا سب سے زیادہ سیکورٹی کے لحاظ سے اہم جز ہے، پھر بھی 61% ڈیٹا کی خلاف ورزیوں میں سمجھوتہ شدہ اسناد شامل ہیں۔ OAuth2 کو ایک سرشار شناخت فراہم کنندہ جیسے Authentik کے ساتھ لاگو کرنا توثیق کے خدشات کو ایپلیکیشن منطق سے الگ کرتا ہے، سنگل سائن آن، MFA، اور مرکزی صارف کے انتظام کو فعال کرتا ہے۔

اہم ٹیک ویز

  • PKCE کے ساتھ OAuth2 اتھارٹی کوڈ کا بہاؤ ویب ایپلیکیشنز کے لیے تجویز کردہ پیٹرن ہے۔
  • Authentik OIDC، SAML، اور LDAP سپورٹ کے ساتھ ایک خود میزبان شناخت فراہم کرنے والا فراہم کرتا ہے
  • ٹوکن اسٹوریج کے لیے صرف Http کوکیز XSS پر مبنی ٹوکن چوری کو روکتی ہیں۔
  • مختصر TTL کے ساتھ ایک بار کے تبادلے کے کوڈ URLs میں ٹوکن کی نمائش کو روکتے ہیں۔

OAuth2 فلو کا جائزہ

PKCE کے ساتھ اتھارٹی کوڈ کا بہاؤ

  1. صارف کے کلکس لاگ ان: درخواست مستند اجازت کے اختتامی نقطہ پر بھیجتی ہے
  2. User authenticates: Credentials (and MFA) entered on Authentik login page
  3. آتھورائزیشن کوڈ جاری کیا گیا: Authentik ایک مختصر مدت کے کوڈ کے ساتھ واپس بھیجتا ہے
  4. ٹوکن ایکسچینج: ٹوکنز تک رسائی اور ریفریش کے لیے بیک اینڈ ایکسچینج کوڈ
  5. سیشن قائم: HttpOnly کوکیز میں محفوظ کردہ ٹوکن

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


مستند سیٹ اپ

فراہم کنندہ کی ترتیب

رازدارانہ کلائنٹ کی قسم، منفرد کلائنٹ ID، مضبوط کلائنٹ سیکرٹ، عین مطابق ری ڈائریکٹ URIs، openid/profile/email scopes، اور مناسب ٹوکن لائف ٹائمز کے ساتھ Authentik میں OAuth2/OIDC فراہم کنندہ بنائیں (رسائی: 5-15 منٹ، ریفریش: 7-30 دن)۔

گروپ کی رکنیت، صفات، یا IP پابندیوں پر مبنی پالیسیوں کے ذریعے رسائی کو کنٹرول کرنے کے لیے فراہم کنندہ کو ایک مستند ایپلی کیشن سے منسلک کریں۔

ملٹی فیکٹر توثیق

MFA کے اختیارات کو ترتیب دیں: TOTP (Google Authenticator، Authy)، WebAuthn (ہارڈویئر سیکیورٹی کیز، بائیو میٹرکس)، اور SMS/ای میل کوڈز کو فال بیک کے طور پر۔


بیک اینڈ پر عمل درآمد

Authorization Redirect

صارفین کو client_id، response_type=code، redirect_uri، اسکوپس، ایک رینڈم اسٹیٹ پیرامیٹر (CSRF تحفظ) اور PKCE code_challenge کے ساتھ Authentik کی طرف ری ڈائریکٹ کریں۔

ٹوکن ایکسچینج

کال بیک پر، grant_type=authorization_code، موصولہ کوڈ، redirect_uri، کلائنٹ کی اسناد، اور PKCE code_verifier کے ساتھ اجازت کے کوڈ سرور سے سرور کا تبادلہ کریں۔ جواب میں رسائی_ٹوکن، ریفریش_ٹوکن، آئی ڈی_ٹوکن، اور میعاد ختم ہونے کی معلومات شامل ہیں۔

محفوظ ٹوکن اسٹوریج

لوکل اسٹوریج یا سیشن اسٹورج میں ٹوکن کبھی بھی اسٹور نہ کریں -- وہ XSS پے لوڈز سمیت کسی بھی JavaScript کے لیے قابل رسائی ہیں۔ سیکیور فلیگ، SameSite=Lax، اور مناسب میعاد ختم ہونے والی HttpOnly کوکیز استعمال کریں۔


فرنٹ اینڈ انٹیگریشن

لاگ ان فلو

صارف سائن ان پر کلک کرتا ہے، فرنٹ اینڈ کو اجازت دینے والے یو آر ایل پر ری ڈائریکٹ کرتا ہے، صارف Authentik پر تصدیق کرتا ہے (آپ کی ایپ کبھی اسناد نہیں دیکھتی ہے)، Authentik کوڈ کے ساتھ واپس بھیجتا ہے، بیک اینڈ ایکسچینج کوڈ اور HttpOnly کوکیز سیٹ کرتا ہے، موجودہ صارف کے ڈیٹا کے لیے فرنٹ اینڈ کال سیشن اینڈ پوائنٹ۔

سیشن مینجمنٹ

ایک useAuth() ہک بنائیں جو GET /auth/session on mount کو کال کرے۔ اگر تصدیق شدہ ہو تو صارف کا ڈیٹا واپس کریں، اگر نہیں تو لاگ ان پر ری ڈائریکٹ کریں۔ لاگ آؤٹ پر، کوکیز کو صاف کرنے کے لیے POST/auth/logout پر کال کریں۔

محفوظ راستے

صفحہ رینڈرنگ سے پہلے غیر تصدیق شدہ صارفین کو ری ڈائریکٹ کرنے کے لیے مڈل ویئر کا استعمال کریں۔ Next.js میں، proxy.ts فائل محفوظ راستوں پر تصدیقی کوکیز کی جانچ کرکے اسے سنبھالتی ہے۔


سیکیورٹی کے بہترین طریقے

ٹوکن سیکیورٹی

  • Http صرف کوکیز خصوصی طور پر -- کبھی بھی جاوا اسکرپٹ پر ٹوکن ظاہر نہ کریں۔
  • مختصر رسائی ٹوکن لائف ٹائم (5-15 منٹ)
  • گردش کے ساتھ ٹوکن ریفریش (ہر استعمال پر نیا ریفریش ٹوکن)
  • کلائنٹ کا راز صرف بیک اینڈ پر اسٹور کیا جاتا ہے، کبھی فرنٹ اینڈ کوڈ میں نہیں۔

سیکیورٹی کو ری ڈائریکٹ کریں۔

  • تمام ری ڈائریکٹ یو آر ایل کو اجازت دی گئی فہرست کے خلاف درست کریں۔
  • // سے شروع ہونے والی ری ڈائریکٹ کو مسترد کریں (پروٹوکول سے متعلق URLs)
  • URL پیرامیٹرز میں کبھی بھی ٹوکن شامل نہ کریں۔
  • 60 سیکنڈ کے TTL کے ساتھ ایک بار کے تبادلے کے کوڈ استعمال کریں۔

سیشن سیکیورٹی

  • تصدیق کے بعد سیشن شناخت کنندگان کو دوبارہ تخلیق کریں۔
  • بیکار ٹائم آؤٹ (30 منٹ) اور مطلق ٹائم آؤٹ (8 گھنٹے) کو لاگو کریں
  • آڈٹ ٹریلز کے لیے تمام تصدیقی واقعات کو لاگ کریں۔
  • بروٹ فورس کو روکنے کے لیے لاگ ان کی کوششوں کی شرح کو محدود کریں۔

مستند اعلی درجے کی خصوصیات

صارف اندراج

حسب ضرورت اندراج کے بہاؤ کے ساتھ سیلف سروس صارف رجسٹریشن کو ترتیب دیں۔ نئے اکاؤنٹس کے لیے مطلوبہ فیلڈز، ای میل کی توثیق کے مراحل، اور منظوری کے ورک فلو کی وضاحت کریں۔

برانڈنگ حسب ضرورت

بغیر کسی ہموار برانڈڈ تجربے کے لیے اپنی مرضی کے مطابق CSS، لوگو اور تھیمز کو Authentik لاگ ان پیج پر لاگو کریں۔ حسب ضرورت برانڈنگ کا اطلاق CSS والیوم ماؤنٹس یا Django ORM branding_custom_css فیلڈ کے ذریعے ہونا چاہیے۔

صارف فیڈریشن

LDAP/Active Directory sync کے ذریعے Authentik کو بیرونی صارف ڈائریکٹریز سے جوڑیں، موجودہ انٹرپرائز صارفین کو اکاؤنٹ کی تفریح ​​کے بغیر تصدیق کرنے کے قابل بنا کر۔


اکثر پوچھے گئے سوالات

س: Auth0 یا Keycloak سے زیادہ مستند کیوں؟

Authentik خود میزبان ہے (مکمل ڈیٹا کنٹرول)، اوپن سورس، اور اس کے پاس جدید UI ہے۔ Auth0 بڑھتی ہوئی فی صارف قیمتوں کے ساتھ SaaS ہے۔ Keycloak خود میزبان ہے لیکن اس میں سیکھنے کا منحنی خطوط اور پرانا UI ہے۔ Authentik خصوصیات، قابل استعمال اور لاگت کو بیلنس کرتا ہے۔

س: کیا Authentik ہزاروں صارفین کو سنبھال سکتا ہے؟

جی ہاں Django اور PostgreSQL پر بنایا گیا، Authentik بڑے صارف اڈوں کو ہینڈل کرتا ہے۔ 100,000+ صارفین کے لیے، مناسب ڈیٹا بیس وسائل کو یقینی بنائیں اور افقی پیمانے پر غور کریں۔

س: ہم متعدد ایپلیکیشنز میں SSO کو کیسے نافذ کرتے ہیں؟

ہر درخواست کو اس کے اپنے فراہم کنندہ کے ساتھ علیحدہ مستند ایپلی کیشن کے طور پر ترتیب دیں۔ صارفین ایک بار تصدیق کرتے ہیں اور مستند سیشن کے ذریعے تمام منسلک ایپلی کیشنز میں خود بخود سائن ان ہو جاتے ہیں۔

س: سوشل لاگ ان کے بارے میں کیا خیال ہے؟

Authentik سماجی لاگ ان ذرائع کو باکس سے باہر سپورٹ کرتا ہے -- Google، GitHub، Microsoft، اور OAuth2 فراہم کرنے والے دیگر۔ صارفین آسان لاگ ان کے لیے سوشل اکاؤنٹس کو اپنی مستند شناخت سے جوڑ سکتے ہیں۔


آگے کیا ہے۔

ایک سرشار شناخت فراہم کنندہ کے ساتھ OAuth2 زیادہ تر ویب ایپلیکیشنز کے لیے واحد سب سے زیادہ مؤثر سیکورٹی بہتری ہے۔ یہ کریڈینشل ہینڈلنگ کو ختم کرتا ہے، MFA کو قابل بناتا ہے، اور سنٹرلائزڈ آڈٹ لاگنگ فراہم کرتا ہے۔

تصدیق کے نفاذ میں مدد کے لیے ECOSIRE سے رابطہ کریں، یا محفوظ ERP تعیناتی کے لیے ہماری Odoo نفاذ کی خدمات کو دریافت کریں۔


ECOSIRE کے ذریعہ شائع کیا گیا -- انٹرپرائز سوفٹ ویئر کے حل کے ساتھ کاروبار کو پیمانے میں مدد کرنا۔

E

تحریر

ECOSIRE Research and Development Team

ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔

Chat on WhatsApp