مریم مرادی
مریم مرادی
خواندن ۱۰ دقیقه·۳ سال پیش

single sign on and identity management

این مطلب در رابطه با یک یک روش احراز هویت است. در این روش به کاربران امکان داده می‌شود تا با استفاده از مجموعه‌ای از اعتبارنامه‌ها به طور ایمن با چندین برنامه و وب سایت احراز هویت کنند.
این روش، بر اساس یک رابطه اعتماد ایجاد شده بین یک برنامه کاربردی (به عنوان ارائه دهنده خدمات) و یک ارائه دهنده هویت (مانند OneLogin ) است. این رابطه اعتماد، اغلب بر اساس گواهی رد و بدل شده میان ارائه دهنده هویت و ارائه دهنده خدمات است. این گواهی می‌تواند برای امضای اطلاعات هویتی که از ارائه دهنده هویت به ارائه دهنده خدمات ارسال می شود استفاده کرد تا ارائه دهنده خدمات از وجود یک منبع مطمئن، اطمینان حاصل کند. در SSO، این داده‌های هویتی token هایی هستند که حاوی اطلاعات مربوط به کاربر همانند آدرس ایمیل یا نام کاربری هستند.

جریان ورود معمولاً به این صورت است:

1. کاربر به برنامه یا وب‌سایتی که می‌خواهد به آن دسترسی داشته باشد (درواقع همان ارائه‌دهنده خدمات) را مرور می‌کند.

2. ارائه‌دهنده خدمات رمزی (token) حاوی اطلاعاتی از کاربر مانند آدرس ایمیل، به سیستم SSO به عنوان بخشی از درخواست احراز هویت کاربر ارسال می‌کند.

3. ابتدا ارائه دهنده خدمت شناسایی بررسی می‌کند آیا کاربر قبلاً احراز هویت شده است یا خیر در صورت وارد شدن به کاربر اجازه دسترسی به برنامه ارائه دهنده خدمات را می‌دهد و در ادامه به مرحله 5 می‌رود.

4. اگر کاربر وارد سیستم نشده باشد، با ارائه مدارک مورد نیاز توسط ارائه دهنده خدمت شناسایی از کاربر درخواست می‌شود تا وارد شود. این مرحله می تواند با ورود یک نام کاربری و رمز عبور باشد یا شامل نوعی دیگر از احراز هویت مانند استفاده از رمز عبور یک بار مصرف (OTP) باشد.

5. هنگامی که ارائه دهنده خدمت شناسایی اعتبار ارائه شده را تأیید کرد، رمزی (token) را به ارائه دهنده خدمات ارسال می‌کند تا تاییدی بر شناسایی موفقیت آمیز باشد.

6. این رمز یا token از طریق مرورگر کاربر به ارائه دهنده خدمات ارسال می‌شود.

7. رمزی که توسط ارائه‌دهنده خدمات دریافت می‌شود، بر اساس رابطه اعتمادی که بین ارائه‌دهنده خدمات و ارائه‌دهنده هویت در طول پیکربندی اولیه تنظیم شده بود، تأیید می‌شود.

8. در گام نهایی به کاربر اجازه دسترسی به ارائه دهنده خدمات داده می‌شود.

این گام‌ها در شکل مرور شده‌اند.

رمز یا token در SSO

توکن SSO مجموعه ای از داده یا اطلاعات منتقل شده میان سیستم‌ها در طی فرآیند SSO است. داده‌ها می‌توانند به طور ساده شامل آدرس ایمیل کاربر و اطلاعاتی از سیستم ارسال کننده توکن باشد. توکن‌ها باید به‌صورت دیجیتالی امضا شوند تا گیرنده توکن تأیید کند که رمز از یک منبع قابل اعتماد می‌آید و گواهی که برای این امضای دیجیتال استفاده می‌شود در طی فرآیند پیکربندی اولیه مبادله می‌شود.

پیاده سازی

جزئیات نحوه اجرای یک SSO با توجه به راه حل های مختلف درSSO ، متفاوت است. اما پاسخ به سوالات زیر برای اطمینان از تعیین اهداف مهم است:

  • · به چه نوع کاربرانی خدمات می‌دهید و نیازمندی‌های هریک از آن‌ها چیست؟
  • · آیا به دنبال یک راه حل On Prem هستید یا یک راه حل مبتنی بر ابر نیاز است؟
  • · آیا این راه حل می‌تواند با شرکت و نیازهای شما رشد کند؟
  • · به دنبال چه ویژگی‌هایی هستید تا مطمئن شوید که فقط کاربران قابل اعتماد وارد سیستم می‌شوند؟ MFA، احراز هویت تطبیقی، اعتماد دستگاه، لیست سفید آدرس IP و...؟
  • · نیاز است تا با چه سیستم‌هایی باید یکپارچه شوید؟
  • · آیا به دسترسی API نیاز دارید؟

درک تفاوت میان ورود به سیستم و مدیریت رمز عبور مهم است. گاهی اوقات به آن SSO می گویند که می تواند به معنای همان Sign-on و نه Single Sign-on باشد. ممکن است یک فرد نام کاربری و رمز عبور یکسانی داشته باشد، اما هر بار که به برنامه یا وب سایت دیگری منتقل شود، باید آنها را وارد کند. سیستم ذخیره رمز عبور به سادگی اعتبار شما را برای همه برنامه های مختلف ذخیره می‌کند و در صورت لزوم آن‌ها را درج می‌کند. هیچ رابطه اعتمادی بین برنامه‌ها و سیستم ذخیره رمز عبور تنظیم نشده است.

با SSO به معنی (Single Sign-On)، پس از ورود به کمک روش SSO می‌توان بدون نیاز به ورود مجدد به همه برنامه‌ها و وب سایت‌های مورد تایید شرکت دسترسی یافت. این شامل برنامه‌های کاربردی ابری و همچنین برنامه‌های کاربردی اولیه است که اغلب از طریق یک پورتال SSO (که پورتال ورود نیز نامیده می شود) در دسترس هستند.

ممکن است مشاهده شود گاهی اوقات SSO، به عنوان نرم افزار SSO ، در مقابل روش SSO و در مقابل ارائه دهنده SSO اشاره شده باشد. در بسیاری از موارد، تفاوت ممکن است صرفاً در نحوه طبقه‌بندی شرکت‌ها باشد. یک نرم افزار چیزی را پیشنهاد می‌کند که در محل نصب شده است. معمولاً نرم افزار برای انجام یک مجموعه خاص از وظایف طراحی شده است. یک روش، توانایی گسترش یا سفارشی کردن قابلیت‌های محصول اصلی را نشان می‌دهد و ارائه دهنده راهی برای ارجاع به شرکتی است که راه حل را تولید یا میزبانی می‌کند. به عنوان مثال، OneLogin به عنوان یک ارائه دهنده راه حل SSOشناخته می شود.

اصطلاحات زیادی در مورد Single Sign-On (SSO) به کار می‌رود:

  • مدیریت هویت متحد (FIM)
  • اصطلاح OAuth
  • اتصال OpenID (OIDC)
  • زبان نشانه گذاری دسترسی امنیتی (SAML)
  • ورود مشابه (SSO)

اصطلاح SSO در واقع بخشی از یک مفهوم بزرگتر به نام مدیریت هویت متحد است. بنابراین گاهی اوقات SSO به عنوان SSO متحد و یکپارچه شناخته می‌شود.

اصطلاح FIM فقط به رابطه اعتمادی اشاره دارد که بین دو یا چند دامنه یا سیستم مدیریت هویت ایجاد می‌شود و Single Sign-on یک ویژگی است که در معماری FIM در دسترس است.

اصطلاحOAuth یک چارچوب خاص است که می‌تواند بخشی از معماری FIM نیز در نظر گرفته شود. OAuth بر رابطه قابل اعتماد تمرکز می‌کند که اجازه می دهد اطلاعات هویت کاربر در بین دامنه‌ها به اشتراک گذاشته شود.

مورد دیگر، OpenID Connect (OIDC) یک لایه احراز هویت است که در بالای OAuth 2.0 برای ارائه عملکرد Single Sign-on ساخته شده است.

زبان نشانه گذاری دسترسی امنیتی (SAML) یک استاندارد باز است که برای ارائه عملکرد Single Sign-on طراحی شده است.

اصطلاح Same Sign On که اغلب به آن SSO نیز می گویند، در واقع با Single Sign-on یکسان نیست. زیرا هیچ رابطه اعتمادی بین نهادهایی که احراز هویت را انجام می دهند، وجود ندارد. اغلب وابسته به تکرار اعتبارنامه‌ها بین سیستم‌ها است و به اندازه هیچ یک از راه حل های Single Sign-on ایمن نیست.

برخی از سیستم‌های خاص وجود دارند که معمولاً هنگام بحث در مورد Single Sign-on ظاهر می‌شوند:

Active Directory، Active Directory Federation Services (ADFS) و Lightweight Directory Access Protocol (LDAP).

بحث Active Directory که امروزه به طور خاص به عنوان Active Directory Directory Services (ADDS) شناخته می‌شود، سرویس دایرکتوری متمرکز مایکروسافت است. کاربران و منابع برای مدیریت مرکزی به سرویس دایرکتوری اضافه می‌شوند و ADDS با پروتکل های احراز هویت مانند NTLM و Kerberos کار می‌کند. بنابراین، کاربرانی که به ADDS تعلق دارند می‌توانند در دستگاه های خود احراز هویت کنند و به سیستم های دیگری که با ADDSادغام می شوند دسترسی داشته باشند. این یک شکل از Single Sign-on است.

بحث دیگر، Active Directory Federation Services (ADFS) نوعی از سیستم مدیریت هویت متحد است که قابلیت‌های Single Sign-on را نیز ارائه می‌کند و از SAML و OIDC پشتیبانی می‌کند. ADFS در درجه اول برای ایجاد اعتماد بین ADDS و سیستم های دیگر مانند Azure AD یا سایر موارد در ADDSاستفاده می‌شود.

پروتکل دسترسی به دایرکتوری سبک وزن (LDAP) به سادگی یک استاندارد صنعتی است که راهی برای سازماندهی و جستجوی اطلاعات دایرکتوری تعریف می‌کند. LDAP این امکان را می‌دهد که منابعی مانند کاربران و سیستم‌ها به صورت متمرکز مدیریت شود. با این حال، LDAP نحوه ورود به سیستم ها را تعریف نمی‌کند، به این معنی که پروتکل‌های واقعی مورد استفاده در احراز هویت را تعریف نمی‌کند. با این حال، اغلب به عنوان بخشی از فرآیند احراز هویت و فرآیندهای کنترل دسترسی استفاده می‌شود. به عنوان مثال، قبل از اینکه کاربر بتواند به یک منبع خاص دسترسی پیدا کند، ممکن است از LDAP برای پرس و جو برای آن کاربر و هر گروهی که به آن تعلق دارند استفاده شود تا ببیند آیا کاربر به آن منبع دسترسی دارد یا خیر. راه حل های LDAPمانند OpenLDAP احراز هویت را از طریق پشتیبانی از پروتکل های احراز هویت مانند احراز هویت ساده و لایه امنیتی (SASL) ارائه می‌کنند.

انواع تنظیمات SSO

برخی از سرویس های SSO از پروتکل هایی مانند Kerberos و Security Assertion Markup Language (SAML) استفاده می‌کنند.

  • پروتکل SAML یک استاندارد زبان نشانه گذاری توسعه پذیر (XML) است که تبادل اطلاعات احراز هویت و مجوز کاربر را در دامنه های امن آسان می‌کند. سرویس‌های SSO مبتنی بر SAML شامل ارتباطات بین کاربر، به عنوان ارائه‌دهنده هویت که فهرست کاربر و ارائه‌دهنده خدمات را حفظ می‌کند.
  • در یک راه‌اندازی مبتنی بر Kerberos، پس از ارائه اطلاعات کاربری، یک تیکت اعطای تیکت (TGT) صادر می‌شود. TGT تیکت‌های سرویس را برای سایر برنامه‌هایی که کاربر می‌خواهد به آن‌ها دسترسی داشته باشد، بدون اینکه از کاربر بخواهد دوباره اعتبارنامه را وارد کند، واکشی می کند.
  • مبتنی بر کارت هوشمند از کاربر نهایی می خواهد که برای اولین ورود به سیستم از کارتی استفاده کند که دارای اعتبارنامه ورود است. پس از استفاده از کارت، کاربر نیاز نیست نام کاربری یا رمز عبور را دوباره وارد کند. کارت‌های هوشمند SSO یا گواهی‌ها یا رمزهای عبور را ذخیره می‌کنند.

امنیت SSO

امنیت sso وابسته به شرایط مختلف است. دلایل زیادی مبنی بر بهبود امنیت در SSO وجود دارد. یک روش ورود به سیستم می‌تواند مدیریت نام کاربری و رمز عبور را هم برای کاربران و هم برای مدیران ساده کند. کاربران دیگر نیازی به پیگیری مجموعه‌ مختلف اعتبارنامه ندارند و به سادگی می توانند یک رمز عبور پیچیده‌تر را به خاطر بسپارند. SSO اغلب کاربران را قادر می سازد تا به برنامه های خود بسیار سریع تر دسترسی پیدا کنند. SSO همچنین می‌تواند مدت زمانی خدمت برای کمک به کاربران با رمزهای فراموش شده را کاهش دهد. مدیران می‌توانند الزاماتی مانند پیچیدگی رمز عبور و احراز هویت چند عاملی (MFA) را به صورت متمرکز کنترل کنند.

اگرچه ورود به سیستم با این روش برای کاربران راحت است، اما خطراتی را برای امنیت شرکت ایجاد می‌کند. اگر مهاجم کنترل اعتبارنامه SSOکاربر را به دست آورد، به هر برنامه‌ای که کاربر مجوز دسترسی دارد، دسترسی پیدا می‌کند و میزان آسیب احتمالی را افزایش می‌دهد. به منظور جلوگیری از دسترسی مخرب، ضروری است که هر جنبه ای از اجرای SSO با احراز هویت همراه باشد. سازمان‌ها همچنین می‌توانند از احراز هویت دو مرحله ای (2FA) یا احراز هویت چند عاملی (MFA) با SSO برای بهبود امنیت استفاده کنند.

مزایا و معایب SSO

از مزایای SSO می‌توان به موارد زیر اشاره کرد:

  • کاربران قادرند رمزهای عبور و نام کاربری کمتری را برای هر برنامه به خاطر بسپارند و مدیریت کنند.
  • فرآیند ثبت نام و استفاده از برنامه‌ ها را آسان می کند.(بدون نیاز به وارد کردن مجدد رمزهای عبور)
  • احتمال فیشینگ را کاهش می دهد.

معایب SSO نیز شامل موارد زیر است:

  • سطوح خاصی از امنیت که ممکن است ورود هر برنامه به آن نیاز داشته باشد را پاسخگو نیست.
  • اگر دسترسی از بین برود، کاربران از چندین سیستم متصل به SSO قفل می‌شوند.
  • اگر کاربران غیرمجاز دسترسی پیدا کنند، می توانند به بیش از یک برنامه دسترسی پیدا کنند.

ابزارهای حوزه SSO

چندین ابزار در حوزه SSO وجود دارد که به خوبی شناخته شده اند. ابزارهای حوزه SSO شامل موارد زیر است:

پلتفرم Rippling به کاربران امکان می دهد از چندین دستگاه وارد برنامه های ابری شوند.

ابزار Avatier Identity Anywhere یک SSO برای پلتفرم های مبتنی بر کانتینر Docker است.

ابزار OneLogin یک پلت فرم مبتنی بر هویت و مدیریت دسترسی (IAM) است که از SSO پشتیبانی می‌کند.

ابزار Okta ابزاری با قابلیت SSO است. Okta همچنین از 2FA پشتیبانی می‌کند و در درجه اول توسط کاربران سازمانی استفاده می شود.

جمع بندی و نتیجه گیری

همانطور که در مطلب بررسی شد، SSO یک روش احراز هویت است. در این روش به کاربران این امکان داده می‌شود تا با استفاده از مجموعه‌ای از اعتبارنامه‌ها به طور ایمن با چندین برنامه و وب سایت احراز هویت کنند. این روش، بر اساس یک رابطه اعتماد ایجاد شده بین یک برنامه کاربردی و یک ارائه دهنده هویت است. این رابطه اعتماد، اغلب بر اساس گواهی رد و بدل شده میان ارائه دهنده هویت و ارائه دهنده خدمات است. این گواهی می‌تواند برای امضای اطلاعات هویتی که از ارائه دهنده هویت به ارائه دهنده خدمات ارسال می شود استفاده کرد تا ارائه دهنده خدمات از وجود یک منبع مطمئن، اطمینان حاصل کند.

این تکنیک می تواند در شرکت هایی مثل اسنپ و کافه بازار برای احراز هویت استفاده شود و در تمام برنامه های کاربردی آن ها با کمک همین روش ارحاز هویت انجام شود و به راحتی کاربر وارد برنامه های کاربردی و وبسایت شود و استفاده نماید.

«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»

https://www.onelogin.com/learn/how-single-sign-on-works
https://www.techtarget.com/searchsecurity/definition/single-sign-on


معماری نرم افزار بهشتی
شاید از این پست‌ها خوشتان بیاید