احراز هویت یکپارچه (Single Sign on) چیست؟

مقدمهمعمولا برای کاربران به خاطر سپردن چندین نام کاربری و رمز عبور برای دسترسی به وب‌سایت‌ها و برنامه‌های مختلفی که از آن ها استفاده می کنند دشوار است. Single Sign On که به اختصار SSO نامیده می شود یک روش احراز هویت است که به کاربران امکان می دهد تا با استفاده از یک مجموعه از اعتبار (credential) به طور ایمن به چندین منبع دسترسی داشته باشند.در ادامه به توضیح بیشتر در مورد احراز هویت یکپارچه و ابزارهای مربوط به آن می پردازیم.شکل ۱- شمای کلی ssoتوضیح احراز هویت یکپارچه و کاربرد آناحراز هویت یکپارچه یا SSO یک فرآیند احراز هویت و دسترسی است که به کاربر این امکان را می‌دهد تا از یک مجموعه از اعتبارنامه‌های ورود (نام کاربری و رمز عبور) برای دسترسی به چندین برنامه استفاده کند. با SSO تلاش کاربران نهایی به حداقل می رسد زیرا آنها نیازی به وارد کردن تکراری اطلاعات هویتی به صورت جداگانه برای ورود به چندین برنامه ی کاربردی ندارند. Single Sign On به کاربران و سازمان‌ها کمک می‌کند تا با چالش حفظ credentialهای مختلف برای برنامه‌های مختلف به طور جداگانه، روند ثبت نام را بدون نیاز به وارد کردن مجدد رمز عبور ساده‌تر کنند. پیاده سازی SSO اغلب توسط شرکت ها در دنیای سازمانی به عنوان بخشی از استراتژی آنها برای دسترسی ایمن به منابع مهم پذیرفته می شود.با ظهور محاسبات ابری و رونق نرم افزار به عنوان سرویس (SaaS)، شرکت ها در سراسر جهان تمرکز خود را بر استراتژی های مدیریت دسترسی افزایش می دهند که می تواند امنیت کاربر را افزایش دهد. اجرای SSO می تواند در هر دو جنبه ارائه شود.از منظر امنیتی، یکی از مزایای Single Sign On این است که به دلیل اینکه تعداد اعتبارنامه های (credentials) مورد نیاز برای ورود به چندین سرویس را به یک اعتبار کاهش می دهد، اعتبار کمتری برای گم شدن یا سرقت وجود دارد. علاوه بر این، احراز هویت چند عاملی multi-factor authentication یا به اختصار MFA و احراز هویت دو عاملی two-factor athentication یا به اختصار 2fA به احتمال زیاد برای محافظت از آن اعتبار (credential) واحد و قدرتمند اعمال می شود.از دیدگاه کاربر نهایی، استفاده از سیستم Identity Provider که قادر به پشتیبانی از SSO است، user experience را افزایش می‌دهد. علاوه بر این، استفاده از SSO به این معنی است که نیازی نیست اطلاعات هویتی برای ده ها حساب کاربری به خاطر سپرده شود.نحوه ی کار SSO چگونه است؟پیاده سازی Single Sign On معمولاً شامل تعریف یک سرویس مرکزی است که برنامه ها هنگام ورود کاربر به آن متکی هستند. در این رویکرد، اگر یک کاربر که هویت او احراز نشده است،درخواست دسترسی به برنامه ای را بدهد که به اطلاعات هویتی نیاز دارد، برنامه مورد نظر کاربر را به سرویس مرکزی هدایت می کند. در این سرور، کاربر احراز هویت می شود و با اطلاعات هویتی به برنامه اصلی که در ابتدا درخواست داده بود، هدایت می شود.پس از مدتی، اگر همان کاربر به برنامه دیگری منتقل شود که به اطلاعات هویتی نیز نیاز دارد و برای انجام احراز هویت کاربر به همان سرویس مرکزی متکی است، برنامه دوم می‌تواند از session ای که کاربر هنگام ورود به برنامه اول شروع کرده است، استفاده کند.یک مثال خوب که می تواند به توضیح نحوه عملکرد SSO کمک کند، گوگل و سرویس های مختلف آن است. به عنوان مثال، وقتی می‌خواهید بدون احراز هویت به Gmail دسترسی پیدا کنید، Google شما را به یک سرویس مرکزی (accounts.google.com) هدایت می‌کند. در آنجا، یک فرم ورود خواهید دید که در آن باید اطلاعات حساب کاربری خود را وارد کنید. اگر فرآیند احراز هویت موفقیت آمیز باشد، گوگل شما را به Gmailهدایت می کند. سپس، پس از احراز هویت از طریق این سرویس مرکزی، اگر به سرویس دیگری (مثلاً یوتیوب) مراجعه کنید، خواهید دید که به طور خودکار و بدون نیاز به احراز هویت مجدد وارد سیستم می شوید.مزایای SSO چیست؟استفاده از رمزهای عبور قوی تر: از آنجایی که کاربران فقط باید از یک رمز عبور استفاده کنند، SSO ایجاد، به خاطر سپردن و استفاده از رمزهای عبور قوی تر را برای آنها آسان تر می کند. رمز عبوری قوی است که به راحتی قابل حدس زدن نباشد و به اندازه ی کافی تصادفی باشد که احتمال موفقیت آمیز بودن یک حمله ی brute force را کاهش دهد.عدم تکرار گذرواژه ها: زمانی که کاربران مجبورند گذرواژه های چندین برنامه و سرویس مختلف را به خاطر بسپارند، ترجیح می دهند از رمز عبور یکسان در همه ی سرویس ها استفاده کنند.استفاده از رمز عبور یکسان در چندین سرویس یک خطر امنیتی بزرگ است، زیرا به این معنی است که همه سرویس‌ها فقط به اندازه سرویسی با ضعیف‌ترین محافظت از رمز عبور امن هستند و اگر پایگاه داده رمز عبور آن سرویس به خطر بیفتد، مهاجمان می‌توانند از رمز عبور برای هک کردن تمام اطلاعات کاربر استفاده کنند. SSO این خطر را با کاهش تعداد دفعات ورود از چند بار به یک بار کم می کند.اجرای بهتر خط مشی رمز عبور: SSO راهی را برای تیم های فناوری اطلاعات فراهم می کند تا به راحتی قوانین امنیتی رمز عبور را اعمال کنند. برای مثال، برخی از شرکت‌ها از کاربران می‌خواهند که رمز عبور خود را به صورت دوره‌ای بازنشانی کنند. با SSO، بازنشانی رمز عبور آسان‌تر است زیرا به جای بازنشانی مداوم رمز عبور در تعدادی از برنامه‌ها و سرویس‌های مختلف، کاربران فقط یک رمز عبور برای بازنشانی دارند. (در حالی که ارزش بازنشانی منظم رمز عبور زیر سوال رفته است، برخی از تیم های فناوری اطلاعات هنوز آنها را بخش مهمی از استراتژی امنیتی خود می دانند.)احراز هویت چند عاملی: احراز هویت چند عاملی یا MFA به استفاده از بیش از یک عامل هویت برای احراز هویت یک کاربر اشاره دارد. به عنوان مثال، کاربر علاوه بر وارد کردن نام کاربری و رمز عبور، ممکن است مجبور باشد یک دستگاه USB وصل کند یا کدی را وارد کند که روی گوشی هوشمندش ظاهر می‌شود. داشتن این شیء فیزیکی دومین "عامل" است که کاربر را مشخص می کند که او چه کسی است. MFA بسیار امن تر از تکیه بر رمز عبور است. SSO امکان فعال کردن MFA را در یک نقطه به جای نیاز به فعال کردن آن برای سه، چهار یا چند ده برنامه، که ممکن است امکان پذیر نباشد، ممکن می سازد.مدیریت اعتبار داخلی به جای حافظه خارجی: معمولاً گذرواژه‌های کاربر از راه دور به‌صورت مدیریت‌ نشده توسط برنامه‌ها و سرویس‌هایی که سطح امنیت در آن ها مشخص نیست، ذخیره می‌شوند. با این حال، با SSO، آنها به صورت داخلی در محیطی ذخیره می شوند که یک تیم IT کنترل بیشتری روی آن دارد.اتلاف زمان کمتر برای بازیابی رمز عبور: علاوه بر مزایای امنیتی فوق، SSO مانع اتلاف زمان تیم های فناوری اطلاعات می شود و باعث می شود آن ها زمان کمتری را صرف کمک به کاربران برای بازیابی یا بازنشانی رمز عبور ده‌ها برنامه کند و کاربران نیز زمان کمتری را صرف ورود به برنامه‌های مختلف برای انجام کارهای خود می‌کنند. این مساله ممکن است باعث افزایش بهره وری کسب و کار گردد.یک نقطه برای اعمال ورود مجدد رمز عبور: مدیران سامانه می توانند پس از مدت زمان معینی credential ها را مجدداً وارد کنند تا مطمئن شوند که همان کاربر وارد شده همچنان در سیستم فعال است. با SSO، آنها یک مکان مرکزی برای انجام این کار برای همه برنامه های داخلی دارند و مجبور نیستند این کار را در چندین برنامه ی مختلف انجام دهند.ابزارها و فناوری های متن باز در حوزه ی احراز هویت یکپارچه (SSO)در این بخش به بررسی ابزارهای مطرح متن باز در حوزه ی احراز هویت یکپارچه می پردازیم.ابزار IdentityServerاین ابزار یک نرم افزار متن باز و رایگان برای ورود به سیستم است. در واقع یک چارچوب بین پلتفرمی مبتنی بر OpenID Connect و OAuth 2 است. علاوه بر این، این نرم‌افزار متن باز قابلیت‌های احراز هویت مرکزی و مجوز را برای چندین برنامه کاربردی فراهم می‌کند. علاوه بر این، این نرم افزار کاربران را قادر می سازد تا با یک مجموعه از نام های کاربری/گذرواژه در بسیاری از برنامه ها وارد سیستم شوند.IdentityServer به زبان #c نوشته شده است و تمام کد منبع آن به همراه اسناد مربوط به استقرار و توسعه در Github موجود است.اطلاعات بیشتر در مورد این ابزار در این لینک قابل مشاهده است.شکل ۲- ابزار identity serverابزار KeyCloakنرم افزار KeyCloak نیز ابزار رایگان دیگری است که بر پایه OpenID Connect، OAuth2.0 و SAML2.0 است. این نرم افزار متن باز امکان ادغام با LDAP و Active Directory را فراهم می کند. یک رابط کاربری مناسب دارد که در آن کاربران می توانند نقش ها، مجوزها و session ها را مدیریت کنند. بخش عمده ی نرم افزار KeyCloak به زبان جاوا نوشته شده است و کد آن در Github موجود است.اطلاعات مربوط به این نرم افزار را می توانید در این لینک ببینید.شکل ۳- ابزار KeyCloak ابزار Autheliaاین نرم افزار امکانات بسیار زیادی دارد و مقیاس پذیر است و امنیت فوق العاده ای را ارائه می دهد. این نرم افزار متن باز از LDAP و Active Directory نیز پشتیبانی می کند. علاوه بر این، یک رابط کاربری بصری دارد که به کاربران امکان استفاده ی آسان را می دهد. علاوه بر این، احراز هویت دو مرحله‌ای را بر اساس Google Authenticator OTP ارائه می‌کند.Authelia به زبان Go نوشته شده است و source code آن در Github موجود است.اطلاعات بیشتر در مورد این ابزار از اینجا قابل دسترسی است.شکل ۴- ابزار Autheliaشرکت های ایرانی ارائه دهنده خدمات در حوزه ی احراز هویت یکپارچهاز جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت دانش بنیان هویتا (فناوران هویت الکترونیکی امن) اشاره کرد. این شرکت با هدف توسعه محصولات و خدمات حوزه زیرساخت کلید عمومی (PKI)، احراز هویت و هویت سنجی دیجیتال و ارائه راهکارهای مطمئن به جهت تأمین امنیت اطلاعات، ارتباطات و تبادلات الکترونیکی، تشکیل شده است.در سایت این شرکت در مورد احراز هویت یکپارچه (sso) متن زیر آورده شده است:سامانه احراز هویت ParsSSO، سرویس ‌های احراز هویت و امضای دیجیتال مبتنی بر PKI را ارائه می ‌دهد. احراز هویت در این سامانه به صورت Single Sign-On است یعنی تنها با یکبار احراز هویت، کاربر می‌ تواند از تمامی سامانه ‌های سازمان بدون نیاز به احراز هویت مجدد استفاده نماید. همچنین مدیریت یکپارچه کاربران، مشکلات مربوط به سرپرستی سامانه ‌ها را به صورت چشمگیری کاهش می ‌دهد. با تعریف یک کاربر، دسترسی کاربر در تمامی سامانه ‌ها به صورت خودکار ایجاد می ‌گردد و با حذف دسترسی، در تمامی سامانه ‌ها از ورود کاربر جلوگیری خواهد شد. علاوه بر این، محصول ParsSSO با ارائه درگاه امضای دیجیتال، باعث حذف فرآیند PK-Enabling در سامانه‌ های نرم ‌افزاری می ‌گردد که منجر به کاهش چشمگیر زمان و هزینه‌ های سازمان در تجهیز سامانه ‌ها به زیرساخت کلید عمومی می‌ شود.از جمله دیگر شرکت های فعال در این زمینه متن باز سامان است.شرکت متن‌باز سامان (مرکز توسعه‌ی نرم‌افزارهای باز سامان) در سال ۱۳۸۸ با هدف تولید و توسعه‌ی نرم‌افزارهای متن‌باز (open source) و سفارشی‌سازی این محصولات با توجه به نیاز سازمان‌ها، دانشگاه ها و شرکت‌های مختلف تأسیس شد. این شرکت سامانه ی احراز هویت یکپارچه خود را تحت عنوان سامانه ی متین ارائه کرده است.شکل ۵- قابلیت های سامانه احراز هویت یکپارچه شرکت متن باز سامانهمچنین شرکت آتین نیز در زمینه ی sso خدمات ارائه می کند. شرکت دانش بنیان آتین آتیه اندیش، مستقر در پارک علم و فناوری دانشگاه تهران، در سال 1396 فعالیت خود را به طور تخصصی درحوزه ارائه خدمات احراز هویت آغاز کرد. این شرکت با بررسی نمونه های مشابه خارجی و بر اساس نیازهای داخلی کشور درحوزه احراز هویت، اقدام به توسعه سامانه مدیریت هویت و دسترسی نموده است.این شرکت سامانه احراز هویت یکپارچه خود را اینگونه توصیف کرده است:سامانه احراز هویت یکپارچه (Single Sign On) آتین ضمن حفظ امنیت داده ها، تا حد قابل توجهی بهره وری را افزایش می دهد. با استفاده از احراز هویت یکپارچه (SSO)،کاربران تنها با داشتن یک نام کاربری و رمز عبور می توانند به تمام برنامه های تحت وب ، دسکتاپ و موبایل سازمان یا کسب و کار خود از طریق کامپیوتر شخصی، گوشی موبایل و تبلت دسترسی داشته باشند. این شکل از احراز هویت و مدیریت دسترسی اولین قدم در ایجاد اعتماد برای مشتریان، کارمندان و شرکای شما است.در شکل زیر قابلیت های احراز هویت یکپارچه آتین مشخص شده است.شکل ۶- قابلیت های احراز هویت یکپارچه (sso) آتینمنابع1- https://authin.ir/single-sign-on/2- https://mbs.co.ir/fa/content/Single-Sign-On3- https://www.cloudflare.com/learning/access-management/what-is-sso/4- https://auth0.com/intro-to-iam/what-is-single-sign-on-sso/5- https://www.miniorange.com/single-sign-on-sso6- https://blog.containerize.com/2021/01/29/top-5-open-source-single-sign-on-software-in-the-year-2021/7- https://www.onelogin.com/learn/how-single-sign-on-works