احراز هویت متمرکز یا Single Sign On چیست؟
سوال "sso چیست؟" زیاد پرسیده میشود. برای درک بهتر، با یک مثال آن را توضیح میدهیم:
"تصور کنید که در یک دانشگاه پذیرفته شدهاید و باید وارد سایت آن شده و در پورتال آن ثبت نام کنید. خدمات دانشگاه شامل چندین بخش از جمله اتوماسیون اداری، پورتال آموزشی، امور رفاهی، کتابخانه، آموزش مجازی و ... است. حالا باید در هر کدام از این سایتها ثبت نام کنید و اینکه حداقل یک بار به هر کدام وارد شوید (در صورت داشتن نام کاربری یکتا). این اتفاق روزهای زیادی تکرار خواهد شد و افراد بسیاری باید یا بارها وارد شوند یا اینکه غیر از بحث ورود چند باره، نامهای مختلف کاربری را باید به خاطر بسپارند.
پس برای وبسایت دانشگاه، شما باید یک هویت جدید و منحصر به فرد برای آن وبسایت ایجاد کنید. علاوه بر این، هر بار باید وارد شوید و احراز هویت کنید.
بنابراین سوالی که با آن روبرو هستیم این است که چرا این روند نمیتواند مانند دنیای آفلاین باشد؟ چرا نمیتوانیم به هر کجا که میخواهیم برویم و یک هویت جهانی مانند شناسنامه، گذرنامه، گواهینامه رانندگی یا کارت ملی نشان دهیم؟
راهحلهایی وجود دارند که میتوانند این وضعیت را تغییر دهند. یکی از این راهحلها Single Sign On (یکبار ورود)ُ است که به کاربران امکان میدهد از یک هویت دیجیتالی واحد در چندین وبسایت استفاده کنند و تنها یکبار وارد شوند. این ورود از طریق درگاه احراز هویت مرکزی/یکپارچه دانشگاه یا سازمان رخ میدهد.
ورود از طریق درگاه احراز هویت مرکزی
درگاه احراز هویت مرکزی (SSO) با ایجاد امکان استفاده از پروتکلهای مختلف مانند (CAS, Oauth2, SAML2, OpenID, OpenID Connect, WS-Federation و غیره ) کمک میکند تا کاربران، با یک نام کاربری و گذرواژه به سامانهها یا برنامههای مختلف وارد شوند. این ورود به شکل مرکزی اتفاق میافتد و سایر سامانهها نیز به عنوان خدمت گیرنده به سرویس SSO متصل خواهند شد. البته مکانیزم اتصال به SSO بدون شک باید در سایر سامانهها پیادهسازی شود. خوشبختانه با توجه به آماده بودن کتابخانههای مربوط به پروتکلهای ذکر شده برای زبانهای مختلف برنامهنویسی، این مهم براحتی قابل دستیابی هست.
مدلهای دسترسی به Single Sign On
اصولا سه نوع مدل تعامل با سرویس SSO وجود دارد: وب، تلفن همراه و Federated. مفهوم دسترسی برای هر سه مشترک است، اما در معماری و روش ها متفاوت هستند:
Web SSO: به کاربران شما اجازه میدهد تا به سایتهای مختلف با یک هویت واحد دسترسی پیدا کنند. وقتی کاربر سایتهای جدید را باز میکند بصورت خودکار شناسایی میشود و اطلاعات کاربر بر اساس سطح دسترسی تعیین شده به هر سامانه ارسال میشود.
Mobile SSO: شبیه Web SSO است، انتظار دارید که کاربران بتوانند از یک هویت واحد برای دسترسی به برنامههای تلفن همراه استفاده کنند. این ارتباط میتواند از طریق یک وبسرویس REST یا از طریق یک کتابخانه محلی در سمت سیستمعامل تلفن همراه باشد.
Federated SSO: با عملکرد کمی متفاوت از SSO تحت وب و تلفن همراه کار میکند. به جای اتصال وبسایتها یا برنامههای تلفن همراه، از اطلاعات ورود به سیستم که توسط دیگر سازمانهای مشابه سازمان شما نگهداری میشود استفاده میکنید. این امر با استفاده از پروتکلهای استاندارد SSO اتفاق میافتد. در حقیقت فدراسیونی از SSO خواهید داشت که میتوانند با یکدیگر ارتباط برقرار کنند. فایده اصلی آن در این هست کاربران در صورت جابجایی بین دانشگاه یا سازمانها نیاز به ساخت کاربر/هویت جدید ندارند و از همان کاربر فعلی آنها در سازمان/دانشگاه قبلی میتوانند استفاده کنند. پروتکلهای استانداردی در دنیا برای این کار ایجاد شده است.
همچنین راهحلهایی مانند همگامسازی رمز عبور وجود دارند که اغلب به عنوان راهحلهای SSO مطرح میشوند. در صورتی که این راهحلها، نوعی از پیادهسازی SSO نیستند که سازمانها یا شرکتها به دنبال آن هستند.
مزایای Single Sign On در چیست؟
هر سازمانی که بیش از یک وبسایت یا برنامه تلفنهمراه داشته باشد میتواند از مزایای زیر برای احراز هویت مرکزی استفاده کند:
هویت یکپارچه: کاربران میتوانند از یک هویت واحد برای پیمایش در چندین وبسایت و برنامه تلفن همراه یا برنامههای خدماتی استفاده کنند. البته یک سیستم SSO خوب حتما از یک مدیریت هویت و دسترسی خوب باید برخوردار باشد.
پروفایل کاربری یا میز خدمت یکپارچه: یک محل مشخص برای پروفایل کاربری یا میز خدمت کاربران در نظر گرفته میشود. نمایش/ویرایش اطلاعات کاربران و اطلاع رسانیها نیز از همان طریق انجام خواهد شد.
افزایش بهرهوری: کاربران میتوانند با یک Session فعال به همه وبسایتها و خدمات متصل به سامانه SSO دسترسی پیدا کنند.
کاهش ریسک: خطر دسترسی به رمز کاربران را تا حمد ممکن کاهش میدهد (رمزهای عبور کاربر در هر سامانه بصورت مجزا ذخیره نمیشوند یا بیرون از SSO مدیریت نمیشوند).
کاهش تعدد رمز عبور : کلافگی تعدد نام کاربری و رمز عبورهای مختلف را کاهش میدهد. البته در اینجا ریسک به سرقت رفتن رمز کاربر بیشتر از قبل ایجاد خطر میکند.
احراز هویت دو عاملی: جهت جلوگیری از ریسک ایجاد شده در به سرقت رفتن رمز عبور کاربران (که اصولا از روی دستگاههای آلوده سمت کاربر رخ میدهد) میتوان از عامل دوم احراز هویت استفاده کرد. این امکان به خوبی در سامانه SSO «متین» پشتیبانی میشود.
کاهش زمان کاربر: زمان کاربر برای ورود مجدد رمزهای عبور برای همان هویت را کاهش میدهد. در حقیقت کاربر برای ورود به بیش از یک سامانه، تنها یک بار رمز عبور خود را وارد میکند و به سایر سامانهها با توکن متصل میشود.
کاهش هزینههای فناوری اطلاعات: تماسهای Help Desk به مرکز فناوری اطلاعات سازمان در مورد رمزعبور کمتر میشود. مخصوصا امکان بازیابی رمز عبور در صورت فراموشی، از سمت کاربران با استفاده از شیوههای امن میتواند به بهبود این مسئله نیز کمک کند.
SSO را چگونه راهاندازی میکنید؟
تصمیمگیری در مورد بهترین روش اجرا واقعاً به شرایط، ساختار و نیازهای سازمانی شما بستگی دارد. چند نکته که هنگام تصمیمگیری در مورد چگونگی پیادهسازی SSO باید در نظر بگیرید را بیان میکنیم:
آیا SSO بهترین گزینه برای سازمان شماست؟ به عنوان مثال ، آیا میخواهید وبسایتها و برنامههای شما لینک داده شوند؟ آیا میخواهید کاربران شما بتوانند از یک هویت استفاده کنند؟ یا می خواهید آنها در هر وبسایت ثبت نام کنند؟
اگر به کاربران خود اجازه میدهید از یک هویت واحد استفاده کنند، کدام سایتها و برنامهها را میخواهید اضافه کنید؟ به عنوان مثال، آیا میخواهید کاربران شما بتوانند به تمام وبسایتهای شما با هویت یکسان دسترسی داشته باشند؟ یا فقط به تعداد محدودی از وبسایتهای شما دسترسی پیدا کنند؟
وقتی تصمیم گرفتید از SSO استفاده کنید، باید تصمیم بگیرید که کدام روش برای سازمان شما بهترین است. به عنوان مثال، آیا میخواهید یک راه حل واحد برای SSO ایجاد کنید؟ آیا شما تخصص و وقت لازم برای انجام این کار را دارید؟ یا میخواهید یک راهحل آماده مانند سامانه SSO «متین» را خریداری کنید؟
آیا شما سامانه مدیریت هویت و دسترسی جامعی را دارید؟ یا ترجیح میدهید پایگاه مدیریت هویت خود را نیز بر اساس استانداردهای روز دنیا ایجاد کنید؟ آیا سازمان شما بدون داشتن یک سامانه مدیریت هویت و دسترسی کارا، میتواند یک سرویس SSO خوب ارائه کند؟
اگر تصمیم گرفتید که یک راهحل آماده برای سازمان شما بهترین است، پس میتوانید محصول سامانه SSO متین که به مدیریت هویت و دسترسی هم مجهز هست، را بررسی کنید. زیرا سکوی زیرساختی و طراحی سامانه SSO متین اجرای سریع و آسانی را به دانشگاهها/سازمانها ارائه میدهد.
SSO چگونه کار می کند؟
همانطور که قبلاً توضیح داده شد، SSO تنها به کاربران امکان میدهد با یک هویت به وبسایتها یا برنامههای مرتبط وارد شوند. این میتواند با متمرکز کردن فرآیند اخذ هویت و احراز هویت انجام شود.
این موارد استفاده را در انواع مختلف SSO در سامانه متین بررسی کنید:
Web SSO: یک دانشگاه از شرکت متن باز سامان سامانه SSO متین را خریداری کرده است. این دانشگاه دارای یک سایت کتابخانه، یک پورتال آموزشی، یک سایت آموزش الکترونیکی و یک پورتال تغذیه است. (البته در واقع تعداد سامانهها بیشتر هست و اینها صرفا مثال هستند)
هر یک از 40،000 دانشجو نیاز به دسترسی به هر چهار وبسایت را دارند و داشتن یک رمز عبور بجای به خاطر سپردن چهار تا رمز عبور ارجحیت دارد. SSO برای هر یک از این وبسایتها دسترسی یکپارچه ایجاد میکند و رابط کاربری آن طوری طراحی شده که مانند یک سامانه واحد، احراز هویت تمام وبسایتهای دانشگاه را بهم پیوند میدهد.
Mobile SSO: یک شرکت خدمات الکترونیکی از شرکت متن باز سامان سامانه متین را خریداری کرده است. این شرکت 90000 مشترک با دو برنامه تلفن همراه دارد. یک برنامه برای ردیابی مصرف برق و برنامه دیگر برای صورتحساب استفاده میشود.
هر مشترک باید به هر دو برنامه تلفن همراه دسترسی داشته باشد. از نظر مشترک، داشتن یک رمز عبور برای ورود ترجیح داده میشود. SSO امکان دسترسی یکپارچه را فراهم میکند و رابط کاربری آن طوری طراحی شده است که مانند یک سامانه واحد احراز هویت برای هر دو برنامه باشد.
Federated SSO: یک شهرداری برای بهبود روش ارائه خدمات به شهروندان خود پروژه ای را آغاز میکند. آنها دریافتند که تکمیل برخی از گردشهای کار به صورت شخصی (مانند اجازه دادن و صدور مجوز) چه روند پیچیدهای دارند، میزهای خدمات را تلفیق میکنند تا زمان صرف شده از یک بخش به دیگری را کاهش دهند. آنها تصمیم میگیرند همان کاری را که بصورت آفلاین انجام دادهاند، بصورت آنلاین نیز انجام دهند. با این حال، هر بخش، خدمات را با استفاده از برنامههای مختلف ارائه میدهد. میتوان یک پورتال واحد از تمام خدمات یک شهرداری را از طریق SSO راه اندازی کرد. بدون توجه به وبسایت، برنامه ی تلفن همراه یا برنامه ی خدمات، شهروندان میتوانند به بخشهای مختلف، دسترسی پیدا کنند و خدمات دریافت کنند. در صورت استفاده از خدمات Federated SSO کاربران میتوانند در صورت داشتن هویت در یک سامانه SSO بیرون از شهرداری هم از خدمات این سازمان استفاده کنند.
در کشورهایی که هویت دیجیتالی جزء سیاستگذاریهای کلان آنها بوده است اصولا کاربرها با یک هویت یکتا در کل کشور کلیه خدمات را دریافت میکنند. اصولا برای پیادهسازی چنین روشهایی از درگاههای SSO که بصورت Federated با یکدیگر در ارتباط هستند استفاده میشود.
در مطالب بعدی توضیحات بیشتری در مورد SSO و پروتکلهای آن و نحوه کارکرد آنها ارائه خواهیم داد. واقعیت این هست که آنقدر که در کشور ما بر روی خدمات ابری سرمایهگذاری شده است به سامانههای احراز هویت یکپارچه که توجه خاصی نشده است.