آشنایی با Single Sign On (SSO)

‏‏Single Sign On (SSO) یک روش احراز هویت است که به کاربران این امکان را می‌دهد که تنها با استفاده از یک مجموعه‌ی اعتبار (credential) ، به طور امن، به چندین اپلیکیشن و سرویس دسترسی داشته باشند. شما با هر یک از سرویس‌های Slack،Asana ،Google Workspace، و یا Zoom سر و کار داشته باشید، SSO یک ویجت pop-up یا یک صفحه login ،با تنها یک رمز عبور، به شما نشان می‌دهد که دسترسی به همه‌ی این اپلیکیشن‌های ادغام شده را برای شما ممکن می‌سازد. در واقع با استفاده از SSO به جای چندین رمز عبور تنها به یک رمز عبور نیاز خواهید داشت. Single Sign On به دوران به خاطر سپردن و وارد کردن چندین رمز عبور پایان می‌دهد و ناامیدی ناشی از reset کردن پسوردهای فراموش شده را از بین می‌برد. همچنین کاربران می‌توانند به تعداد زیادی اپلیکیشن و پلتفرم دسترسی داشته باشند بدون این که لازم باشد هر بار log in کنند.‏SSO چگونه کار می‌کند؟‏در روش SSO ویژگی‌های هویت (identity) در بین سیستم‌های قابل اعتماد اما مستقل به اشتراک گذاشته می‌شود. هنگامی که یک کاربر توسط یک سیستم مورد اعتماد قرار می گیرد، به طور خودکار به سایر سیستم‌هایی که رابطه قابل اعتماد با آن برقرار کرده اند دسترسی پیدا می کند. چنین چیزی اساس روش SSO می‌باشد که از طریق پروتکل هایی مانند OpenID Connect و SAML 2.0 اجرا می‌شود. هنگامی که کاربر از طریق لاگینSSO به یک سرویس وارد می شود، یک توکن احراز هویت ایجاد و در مرورگر کاربر یا در سرورهای SSO ذخیره می شود. هر برنامه یا وب‌سایتی که کاربر متعاقباً به آن دسترسی پیدا ‌کند، با سرویس SSO بررسی خواهد شد، سپس سرویس SSO توکن کاربر را برای تأیید هویت او ارسال می‌کند و به او دسترسی می‌دهد.‏SSO در مقابل FIMگرچه SSO و FIM اغلب با هم استفاده می شوند، اما مترادف نیستند. Single Sign On (SSO) دسترسی به برنامه ها و منابع را در یک دامنه واحد امکان پذیر می کند اما مدیریت هویت متحد FIM (Federated Identity Management) ورود یکباره به برنامه های کاربردی را در چندین دامنه یا سازمان ممکن می‌سازد.پروتکل‌ها و استانداردهای SSO‏Security Access Markup Language (SAML)‏SAML یک استاندارد open-source است که متن را به زبان ماشین رمزگذاری می کند و امکان تبادل اطلاعات شناسایی (identification) را فراهم می‌کند. SAML به یکی از استانداردهای اصلی برای SSO تبدیل شده است و به ارائه‌دهندگان اپلیکیشن کمک می‌کند تا از مناسب بودن درخواست های احراز هویت مطمئن شوند. SAML 2.0 به طور خاص برای استفاده در اپلیکیشن‌های وب بهینه‌سازی شده است و امکان انتقال اطلاعات از طریق یک مرورگر وب را فراهم می کند.‏‏Open Authorization (OAuth)‏‏ OAuth یک پروتکل مجوز (authorization) استاندارد باز (open-standard) است که اطلاعات شناسایی (identification) را بین اپلیکیشن‌ها منتقل می کند و آن را به کد ماشین رمزگذاری می‌کند. این پروتکل به کاربران این امکان را می‌دهد که اجازه دسترسی یک اپلیکیشن به داده‌هایشان را، بدون آن که مجبور باشند که هویت خود را به صورت دستی تایید کنند، به اپلیکیشن دیگر نیز بدهند، چنین قابلیتی به خصوص برای برنامه‌های بومی (native apps) مفید است.‏OpenID Connect (OIDC)‏ پروتکل OpenID Connect یک پروتکل هویت ساده و استاندارد باز (open-standard) است که با استفاده از پروتکل OAuth 2.0 ساخته شده است. این یروتکل اپلیکیشن‌های client را قادر می‌سازد تا به احراز هویتی که توسط OpenID Connect Provider (OP) برای تأیید هویت کاربر انجام می‌شود، تکیه کنند. پروتکل OICD اجازه می دهد تا یک login session در چندین برنامه استفاده شود. به عنوان مثال، به کاربر این امکان را می‌دهد که به جای وارد کردن اطلاعات کاربری، با استفاده از حساب کاربری فیس‌بوک یا گوگل خود به یک سرویس وارد شود.‏Kerberos‏ Kerberosپروتکلی است که احراز هویت دوجانبه را امکان پذیر می‌کند. با استفاده از این پروتکل هم کاربر و هم سرور هویت دیگری را در اتصالات شبکه ناامن تأیید می کنند. پروتکل Kerberos از یک سرویس اعطای بلیط (ticket-granting service) استفاده می کند که برای احراز هویت کاربران و اپلیکیشن‌ها توکن‌هایی را صادر می کند.ابزارهای SSO‏AWS SSO‏AWS Single Sign-On یک سرویس SSO ابری است که مدیریت مرکزی دسترسی به چندین حساب و اپلیکیشن AWS را آسان می‌کند. این سرویس به کاربران امکان این را می‌دهد که با گواهی‌های مشارکتی (corporate credentials) خود به پرتال کاربری وارد شوند و از یک جا به همه‌ی حساب‌ها و اپلیکیشن‌هایشان دسترسی داشته باشند.‏OneLogin‏‏OnLogin یکی از ارائه دهندگان open-sourceاحراز هویت SSO است که اغلب برای دسترسی به اپلیکیشن‌های ابری (cloud‑based) استفاده می‌شود. این ارائه دهنده دسترسی امن و با یک کلیک (one-click) را ممکن می‌سازد و منجر به کاهش هزینه می‌شود. OneLoginمدیریت هویت را برای کارمندان، مشتری‌ها، و شرکا، از طریق انواع دستگاه‌ها، به همه‌ی اپلیکیشن‌های داخلی و ابری سازمانی، ساده می‌سازد. OneLoginهم برای شرکت‌های بزرگ و هم شرکت‌های کوچک مناسب است.‏Keeper SSO‏Keeper SSO مدیریت رمز عبور را با ویژگی‌های SSOترکیب می‌کند. میلیون‌‌ها نفر و هزاران کسب و کار به پلتفرم مدیریت و امنیت رمز عبور Keeper وابسته هستند. Keeper رهبری جهانی برای ایمن‌ سازی رمز عبور، اسناد و دارایی‌های دیجیتال حساس است. با استفاده از Keeper می‌توان به طور خودکار پسوردهای قوی تولید کرد، از فایل‌های حساس در یک صندوق دیجیتالی رمزگذاری شده محافظت کرد، رکوردها را به طور ایمن با تیم‌ها به اشتراک گذاشت و با SSO، LDAP و 2FAادغام شد.‏Okta Identity Cloud‏Okta با به کارگیری قدرت ابر، به افراد اجازه می‌دهد که در هر زمانی و در هر دستگاهی به اپلیکیشن‌ها دسترسی پیدا کنند و همچنان سیاست‌های امنیتی را اعمال می‌کند. از آنجایی که Oktaروی یک پلتفرم یکپارچه اجرا می‌شود، سازمان‌ها می‌توانند این سرویس را به سرعت، در مقیاس بزرگ، و هزینه کم پیاده سازی کنند.‏ Microsoft Azure Active Directoryسرویس هویت سازمانی Azure Active Directory (Azure AD)، احراز هویت Single sign‑on و احراز هویت multi‑factor را، به منظور کمک به حفاظت کاربران در برابر 99.9 درصد حملات سایبری، ارائه می‌دهد.‏JumpCloud، Idaptive، LastPass SSO، و Ping Identity نیز نمونه‌های دیگری از ابزارهای ارائه دهنده‌ی SSO می‌باشند.شرکت‌های ایرانی فعال در زمینه SSOشرکت هویتا (فناوران هویت الکترونیکی امن)، شرکت متن‌باز سامان (مرکز توسعه‌ی نرم‌افزارهای باز سامان) و شرکت پارسو (سامانه احراز هویت متمرکز پارسو) از جمله شرکت‌های ایرانی هستند که در زمینه احراز هویت Single Sign On فعالیت می‌کنند.این مطلب، بخشی از تمرین‌های درس معماری نرم‌افزار در دانشگاه شهیدبهشتی استمنابع:https://www.pingidentity.com/en/company/blog/posts/2021/sso-vs-federated-identity-management.htmlhttps://www.okta.com/blog/2021/02/single-sign-on-sso/https://www.g2.com/products/microsoft-azure-active-directory/reviewshttps://www.getkisi.com/blog/best-single-sign-on-sso-providershttps://www.comparitech.com/net-admin/best-sso-tools/