معمولا برای کاربران به خاطر سپردن چندین نام کاربری و رمز عبور برای دسترسی به وبسایتها و برنامههای مختلفی که از آن ها استفاده می کنند دشوار است. Single Sign On که به اختصار SSO نامیده می شود یک روش احراز هویت است که به کاربران امکان می دهد تا با استفاده از یک مجموعه از اعتبار (credential) به طور ایمن به چندین منبع دسترسی داشته باشند.
در ادامه به توضیح بیشتر در مورد احراز هویت یکپارچه و ابزارهای مربوط به آن می پردازیم.
احراز هویت یکپارچه یا 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 چیست؟
در این بخش به بررسی ابزارهای مطرح متن باز در حوزه ی احراز هویت یکپارچه می پردازیم.
ابزار IdentityServer
این ابزار یک نرم افزار متن باز و رایگان برای ورود به سیستم است. در واقع یک چارچوب بین پلتفرمی مبتنی بر OpenID Connect و OAuth 2 است. علاوه بر این، این نرمافزار متن باز قابلیتهای احراز هویت مرکزی و مجوز را برای چندین برنامه کاربردی فراهم میکند. علاوه بر این، این نرم افزار کاربران را قادر می سازد تا با یک مجموعه از نام های کاربری/گذرواژه در بسیاری از برنامه ها وارد سیستم شوند.IdentityServer به زبان #c نوشته شده است و تمام کد منبع آن به همراه اسناد مربوط به استقرار و توسعه در Github موجود است.
اطلاعات بیشتر در مورد این ابزار در این لینک قابل مشاهده است.
ابزار KeyCloak
نرم افزار KeyCloak نیز ابزار رایگان دیگری است که بر پایه OpenID Connect، OAuth2.0 و SAML2.0 است. این نرم افزار متن باز امکان ادغام با LDAP و Active Directory را فراهم می کند. یک رابط کاربری مناسب دارد که در آن کاربران می توانند نقش ها، مجوزها و session ها را مدیریت کنند. بخش عمده ی نرم افزار KeyCloak به زبان جاوا نوشته شده است و کد آن در Github موجود است.
اطلاعات مربوط به این نرم افزار را می توانید در این لینک ببینید.
ابزار Authelia
این نرم افزار امکانات بسیار زیادی دارد و مقیاس پذیر است و امنیت فوق العاده ای را ارائه می دهد. این نرم افزار متن باز از LDAP و Active Directory نیز پشتیبانی می کند. علاوه بر این، یک رابط کاربری بصری دارد که به کاربران امکان استفاده ی آسان را می دهد. علاوه بر این، احراز هویت دو مرحلهای را بر اساس Google Authenticator OTP ارائه میکند.Authelia به زبان Go نوشته شده است و source code آن در Github موجود است.
اطلاعات بیشتر در مورد این ابزار از اینجا قابل دسترسی است.
از جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت دانش بنیان هویتا (فناوران هویت الکترونیکی امن) اشاره کرد. این شرکت با هدف توسعه محصولات و خدمات حوزه زیرساخت کلید عمومی (PKI)، احراز هویت و هویت سنجی دیجیتال و ارائه راهکارهای مطمئن به جهت تأمین امنیت اطلاعات، ارتباطات و تبادلات الکترونیکی، تشکیل شده است.
در سایت این شرکت در مورد احراز هویت یکپارچه (sso) متن زیر آورده شده است:
سامانه احراز هویت ParsSSO، سرویس های احراز هویت و امضای دیجیتال مبتنی بر PKI را ارائه می دهد. احراز هویت در این سامانه به صورت Single Sign-On است یعنی تنها با یکبار احراز هویت، کاربر می تواند از تمامی سامانه های سازمان بدون نیاز به احراز هویت مجدد استفاده نماید. همچنین مدیریت یکپارچه کاربران، مشکلات مربوط به سرپرستی سامانه ها را به صورت چشمگیری کاهش می دهد. با تعریف یک کاربر، دسترسی کاربر در تمامی سامانه ها به صورت خودکار ایجاد می گردد و با حذف دسترسی، در تمامی سامانه ها از ورود کاربر جلوگیری خواهد شد. علاوه بر این، محصول ParsSSO با ارائه درگاه امضای دیجیتال، باعث حذف فرآیند PK-Enabling در سامانه های نرم افزاری می گردد که منجر به کاهش چشمگیر زمان و هزینه های سازمان در تجهیز سامانه ها به زیرساخت کلید عمومی می شود.
از جمله دیگر شرکت های فعال در این زمینه متن باز سامان است.شرکت متنباز سامان (مرکز توسعهی نرمافزارهای باز سامان) در سال ۱۳۸۸ با هدف تولید و توسعهی نرمافزارهای متنباز (open source) و سفارشیسازی این محصولات با توجه به نیاز سازمانها، دانشگاه ها و شرکتهای مختلف تأسیس شد. این شرکت سامانه ی احراز هویت یکپارچه خود را تحت عنوان سامانه ی متین ارائه کرده است.
همچنین شرکت آتین نیز در زمینه ی sso خدمات ارائه می کند. شرکت دانش بنیان آتین آتیه اندیش، مستقر در پارک علم و فناوری دانشگاه تهران، در سال 1396 فعالیت خود را به طور تخصصی درحوزه ارائه خدمات احراز هویت آغاز کرد. این شرکت با بررسی نمونه های مشابه خارجی و بر اساس نیازهای داخلی کشور درحوزه احراز هویت، اقدام به توسعه سامانه مدیریت هویت و دسترسی نموده است.
این شرکت سامانه احراز هویت یکپارچه خود را اینگونه توصیف کرده است:
سامانه احراز هویت یکپارچه (Single Sign On) آتین ضمن حفظ امنیت داده ها، تا حد قابل توجهی بهره وری را افزایش می دهد. با استفاده از احراز هویت یکپارچه (SSO)،کاربران تنها با داشتن یک نام کاربری و رمز عبور می توانند به تمام برنامه های تحت وب ، دسکتاپ و موبایل سازمان یا کسب و کار خود از طریق کامپیوتر شخصی، گوشی موبایل و تبلت دسترسی داشته باشند. این شکل از احراز هویت و مدیریت دسترسی اولین قدم در ایجاد اعتماد برای مشتریان، کارمندان و شرکای شما است.
در شکل زیر قابلیت های احراز هویت یکپارچه آتین مشخص شده است.
1- https://authin.ir/single-sign-on/
2- https://mbs.co.ir/fa/content/Single-Sign-On
3- 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-sso
6- 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