وقتی اکوسیستم محصولات شما شامل چندین وباپلیکیشن بر روی سابدامینهای مختلف (مانند store.mhb.ir، homex.mhb.ir و quizbox.mhb.ir) باشد، مجبور کردن کاربر به لاگین مجدد در هر سرویس، تجربه کاربری را تخریب میکند. پیادهسازی معماری Single Sign-On (SSO) ایمن پاسخ این چالش است.
چالش اشتراک نشست (Session Sharing) بین زیردامنهها
به دلایل امنیتی مرورگرها، کوکیهای صادرشده برای یک دامنه یا سابدامین به راحتی در دامنههای دیگر خوانده نمیشوند مگر آنکه دامنه کوکی به صورت والد (مانند .mhb.ir) تنظیم شود. اما اتکای صرف به کوکی والد میتواند ریسکهای امنیتی ایجاد کند.
الگوی توکن یکبارمصرف تبادل (Exchange Token Pattern)
در معماری SSO طراحیشده برای اکوسیستم MHB، کاربر در سرور مرکزی احراز هویت شده و هنگام ورود به هر زیردامنه، یک توکن رمزنگاریشده کوتاهمدت (با طول عمر زیر ۶۰ ثانیه) تولید و ارسال میشود. زیردامنه مقصد توکن را مستقیماً از طریق کانال بکاند راستیآزمایی کرده و نشست محلی کاربر را فعال مینماید.
امنیت کوکیها با پرچمهای سهگانه
- HttpOnly: جلوگیری کامل از دسترسی اسکریپتهای مخرب فرانتاند و کدهای XSS به سشن کاربری.
- Secure: تضمین ارسال کوکی منحصراً از کانالهای رمزنگاریشده HTTPS.
- SameSite=Lax یا Strict: دفاع ساختاری در برابر حملات جعل درخواست میانوبگاهی (CSRF).