مقایسه جامع پروتکل SAML 2.0 و OpenID Connect برای SSO سازمانی و یکپارچه‌سازی با FIDO2

SAML چیست؟ راهنمای کامل نقش SAML در SSO سازمانی و فدراسیون هویت

وقتی یک سازمان بزرگ با صدها اپلیکیشن داخلی و خارجی سروکار دارد و هزاران کارمند هر روز باید به سیستم‌های مختلف وارد شوند، مدیریت هویت‌ها به یکی از بحرانی‌ترین چالش‌های فناوری اطلاعات تبدیل خواهد شد. SAML سازمانی (Security Assertion Markup Language) پروتکلی است که بیش از دو دهه ستون فقرات احراز هویت مرکزی و فدراسیون هویت در سازمان‌های بزرگ بوده و هنوز هم در بسیاری از زیرساخت‌های حیاتی نقش غیرقابل‌جایگزینی ایفا می‌کند. این راهنمای جامع تمام جنبه‌های فنی، معماری و عملیاتی SAML SSO را بررسی می‌نماید و نشان می‌دهد چگونه سازمان‌ها می‌توانند این پروتکل را با فناوری‌های نوین مانند FIDO2 و احراز هویت بدون رمز عبور ترکیب کنند.

کسب اطلاعات بیشتر

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

حتماً بخوانید: راهنمای کامل احراز هویت مرکزی و SSO 

تاریخچه و تکامل SAML: از نسخه ۱.۰ تا ۲.۰

استاندارد SAML را سازمان OASIS (Organization for the Advancement of Structured Information Standards) توسعه داده و مسیر تکاملی آن نشان‌دهنده پاسخ صنعت فناوری به نیازهای رو‌به‌رشد مدیریت هویت سازمانی است.

نسخه ۱.۰ و ۱.۱: پایه‌گذاری استاندارد

OASIS نسخه ۱.۰ پروتکل SAML را در نوامبر ۲۰۰۲ منتشر کرد. این نسخه مفاهیم پایه‌ای مانند Assertion (تأییدیه هویت) و پروفایل‌های اصلی SSO را تعریف نمود. نسخه ۱.۱ در سپتامبر ۲۰۰۳ با رفع برخی محدودیت‌ها و بهبود تعامل‌پذیری منتشر شد. هر دو نسخه اولیه محدودیت‌هایی در حوزه فدراسیون بین‌سازمانی و مدیریت جلسه داشتند که نیاز به بازنگری اساسی را ایجاد کرد.

SAML 2.0: استاندارد بالغ و پایدار

نسخه ۲.۰ در مارس ۲۰۰۵ به‌عنوان یک بازنگری اساسی منتشر شد و نتیجه ادغام سه ابتکار مهم بود: SAML 1.1 از OASIS، پروتکل Liberty Alliance ID-FF و پروژه Shibboleth از Internet2. این ادغام باعث شد SAML 2.0 به یک استاندارد جامع و کامل تبدیل شود که تمام نیازهای فدراسیون هویت سازمانی را پوشش می‌دهد.

تقریباً دو دهه از انتشار SAML 2.0 می‌گذرد و این نسخه همچنان جدیدترین نسخه رسمی استاندارد باقی مانده است. این ثبات نشان‌دهنده بلوغ و جامعیت طراحی آن محسوب می‌شود. امروز تقریباً تمام Identity Providerهای سازمانی از جمله Microsoft Active Directory Federation Services، Okta، PingFederate و سامانه احراز هویت نشانه (محصول شرکت رهسا) از SAML 2.0 پشتیبانی می‌کنند.

معماری SAML 2.0: اجزا و مفاهیم بنیادین

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

نقش‌های اصلی در اکوسیستم SAML

Identity Provider (IdP) سروری است که مسئولیت احراز هویت کاربران و صدور Assertionهای SAML را بر عهده دارد. IdP هویت کاربر را تأیید می‌کند و سپس یک سند XML امضاشده حاوی اطلاعات هویتی تولید و به Service Provider ارسال می‌نماید. این نقش دقیقاً معادل OpenID Provider در پروتکل OIDC عمل می‌کند. سامانه‌های IAM مانند نشانه در نقش IdP قرار می‌گیرند و نقطه مرکزی اعتماد اکوسیستم SSO سازمانی محسوب می‌شوند.

Service Provider (SP) اپلیکیشن یا سرویسی است که کاربر قصد دسترسی به آن را دارد. SP خودش احراز هویت انجام نمی‌دهد بلکه به Assertionهای صادرشده توسط IdP اعتماد می‌کند. هر اپلیکیشن سازمانی مانند سیستم ERP، پورتال ایمیل یا سرویس ابری می‌تواند به‌عنوان SP عمل نماید.

Principal (کاربر) فردی است که قصد دارد هویت خود را ثابت کرده و به منابع SP دسترسی پیدا کند. کاربر معمولاً از طریق مرورگر وب با سیستم تعامل دارد و نقش واسطه بین IdP و SP را ایفا می‌کند.

SAML Assertion: قلب پروتکل

Assertion مهم‌ترین مؤلفه SAML و سندی XML است که IdP تولید و امضا می‌کند. این سند حاوی اظهارات (Statements) درباره کاربر بوده و سه نوع Statement می‌تواند شامل شود.

Authentication Statement تأیید می‌کند که کاربر در چه زمانی و با چه روشی احراز هویت شده است. این Statement شامل اطلاعاتی مانند زمان دقیق احراز هویت، روش مورد استفاده (مثلاً رمز عبور، FIDO2 یا بیومتریک) و مدت اعتبار جلسه خواهد بود.

Attribute Statement اطلاعات توصیفی درباره کاربر مانند نام، ایمیل، نقش سازمانی، واحد کاری و سطح دسترسی را منتقل می‌کند. SP از این ویژگی‌ها برای تصمیم‌گیری درباره سطح دسترسی کاربر استفاده می‌نماید.

Authorization Decision Statement مشخص می‌کند آیا کاربر مجوز دسترسی به یک منبع خاص را دارد یا خیر. این نوع Statement در عمل کمتر استفاده می‌شود زیرا تصمیمات مجوزدهی معمولاً در سمت SP انجام می‌گیرند.

متادیتا SAML: پیکربندی خودکار اعتماد

متادیتا SAML یک سند XML است که اطلاعات پیکربندی یک Entity (اعم از IdP یا SP) را به‌صورت استاندارد منتشر می‌کند. این سند شامل شناسه یکتای Entity (EntityID)، آدرس Endpointها (مانند SSO Service و Assertion Consumer Service)، گواهی‌های دیجیتال برای امضا و رمزنگاری، و Bindingهای پشتیبانی‌شده خواهد بود.

تبادل متادیتا بین IdP و SP فرآیند برقراری اعتماد را بسیار ساده‌تر می‌کند. به جای پیکربندی دستی تک‌تک پارامترها، مدیر سیستم می‌تواند فایل متادیتا را از طرف مقابل دریافت و وارد سیستم خود نماید. بسیاری از Identity Providerها از جمله نشانه، متادیتا را از طریق یک URL ثابت منتشر می‌کنند که امکان به‌روزرسانی خودکار را فراهم می‌سازد.

جریان‌های احراز هویت در SAML 2.0

SAML 2.0 دو جریان اصلی SSO تعریف کرده که هر کدام برای سناریوی خاصی مناسب هستند. درک تفاوت این دو جریان برای طراحی صحیح معماری SSO سازمانی اهمیت بالایی دارد.

جریان SP-Initiated SSO

این جریان زمانی آغاز می‌شود که کاربر مستقیماً به آدرس SP مراجعه می‌کند. فرض کنید کارمندی آدرس سیستم ERP سازمان را در مرورگر وارد کرده یا روی لینک آن کلیک می‌نماید.

SP تشخیص می‌دهد کاربر هنوز احراز هویت نشده و یک پیام AuthnRequest (درخواست احراز هویت) تولید می‌کند. این پیام XML شامل اطلاعاتی مانند شناسه SP، آدرس بازگشت (ACS URL) و سطح احراز هویت مورد انتظار خواهد بود. SP مرورگر کاربر را به SSO Service Endpoint در IdP هدایت می‌کند و AuthnRequest را از طریق یکی از Bindingهای SAML (معمولاً HTTP-Redirect یا HTTP-POST) ارسال می‌نماید.

IdP پیام AuthnRequest را دریافت و اعتبارسنجی می‌کند. اگر کاربر قبلاً در IdP لاگین کرده باشد (جلسه فعال داشته باشد)، IdP بدون نمایش صفحه لاگین یک SAML Response حاوی Assertion تولید می‌کند. در غیر این صورت، IdP صفحه احراز هویت را نمایش می‌دهد و کاربر با روش تعیین‌شده (رمز عبور، FIDO2، بیومتریک یا سایر روش‌ها) هویت خود را اثبات می‌نماید.

پس از احراز هویت موفق، IdP یک SAML Response حاوی Assertion امضاشده تولید و آن را از طریق مرورگر کاربر (معمولاً با HTTP-POST Binding) به ACS (Assertion Consumer Service) Endpoint در SP ارسال می‌کند. SP امضای Assertion را تأیید، شرایط زمانی و Audience Restriction را بررسی و در صورت معتبر بودن همه موارد، جلسه محلی کاربر را ایجاد کرده و دسترسی به منبع درخواستی را فراهم می‌سازد.

نمودار جریان احراز هویت SAML 2.0 در محیط SSO سازمانی شامل کاربر، Service Provider و Identity Provider

جریان IdP-Initiated SSO

در این جریان، کاربر ابتدا به پورتال IdP مراجعه و در آنجا لاگین می‌کند. سپس از فهرست اپلیکیشن‌های موجود در پورتال، سرویس مورد نظر خود را انتخاب می‌نماید. IdP بدون دریافت AuthnRequest قبلی، مستقیماً یک SAML Response حاوی Assertion تولید و از طریق مرورگر کاربر به ACS Endpoint مربوط به SP ارسال می‌کند.

این جریان ساده‌تر بوده اما از نظر امنیتی ضعیف‌تر محسوب می‌شود. چون AuthnRequest وجود ندارد، SP نمی‌تواند درخواست اولیه خود را با پاسخ دریافتی تطبیق دهد و این موضوع آسیب‌پذیری در برابر حملات CSRF و Replay ایجاد می‌کند. بهترین رویه‌های امنیتی استفاده از SP-Initiated SSO را توصیه می‌نمایند.

SAML Bindings: روش‌های انتقال پیام

SAML Binding مشخص می‌کند پیام‌های SAML چگونه از طریق پروتکل‌های ارتباطی منتقل شوند. مهم‌ترین Bindingها عبارت‌اند از:

HTTP-Redirect Binding پیام SAML را به‌صورت فشرده‌شده و Base64-encode شده در پارامتر URL قرار می‌دهد. این Binding برای پیام‌های کوچک مانند AuthnRequest مناسب بوده اما برای پیام‌های بزرگ مانند SAML Response (به دلیل محدودیت طول URL) قابل استفاده نیست.

HTTP-POST Binding پیام SAML را در یک فرم HTML مخفی قرار می‌دهد و با JavaScript آن را به‌صورت خودکار به مقصد ارسال می‌نماید. این Binding برای انتقال SAML Response و Assertionهای بزرگ ایده‌آل محسوب می‌شود.

SOAP Binding ارتباط مستقیم سرور به سرور (Back-channel) را امکان‌پذیر می‌سازد. این Binding برای سناریوهایی مانند Artifact Resolution و Single Logout Back-channel استفاده خواهد شد.

Artifact Binding یک مکانیزم غیرمستقیم ارائه می‌دهد. به جای ارسال مستقیم Assertion از طریق مرورگر، IdP یک شناسه کوتاه (Artifact) ارسال می‌کند و SP با یک درخواست مستقیم SOAP به IdP، Assertion واقعی را دریافت می‌نماید. این روش از قرار گرفتن Assertion در مرورگر جلوگیری کرده و امنیت بالاتری فراهم می‌سازد.

فدراسیون هویت با SAML: اتصال سازمان‌ها

یکی از قدرتمندترین قابلیت‌های SAML، امکان‌سازی فدراسیون هویت (Identity Federation) بین سازمان‌های مختلف است. فدراسیون هویت به سازمان‌ها اجازه می‌دهد بدون اشتراک‌گذاری پایگاه داده کاربران، به هویت‌های یکدیگر اعتماد کنند.

مفهوم Circle of Trust

در مدل فدراسیون SAML، مجموعه‌ای از سازمان‌ها توافق می‌کنند که Assertionهای یکدیگر را بپذیرند و این مجموعه یک Circle of Trust (حلقه اعتماد) تشکیل می‌دهد. هر سازمان IdP خود را مدیریت می‌کند و کاربران آن سازمان با اعتبارنامه‌های محلی خود احراز هویت می‌شوند. وقتی کاربری از سازمان A بخواهد به سرویسی در سازمان B دسترسی پیدا کند، IdP سازمان A یک Assertion صادر می‌نماید و SP سازمان B بر اساس توافق فدراسیون، آن Assertion را می‌پذیرد.

این مدل در سناریوهای متعددی کاربرد دارد. شرکت‌های مادر و زیرمجموعه می‌توانند بدون ادغام سیستم‌های هویت خود، دسترسی یکپارچه به منابع مشترک فراهم کنند. دانشگاه‌ها و مؤسسات آموزشی از طریق فدراسیون‌هایی مانند eduroam و InCommon به دانشجویان اجازه می‌دهند با حساب دانشگاه خود به منابع سایر مؤسسات دسترسی پیدا نمایند. سازمان‌های دولتی نیز از فدراسیون هویت برای ارائه خدمات بین‌سازمانی بدون ایجاد حساب‌های کاربری تکراری بهره می‌برند.

مدیریت NameID و Account Linking

NameID شناسه‌ای است که IdP برای معرفی کاربر به SP استفاده می‌کند. SAML چندین فرمت NameID تعریف کرده که هر کدام برای سناریوی خاصی مناسب هستند.

فرمت emailAddress آدرس ایمیل کاربر را به‌عنوان شناسه استفاده می‌کند و ساده‌ترین و رایج‌ترین روش محسوب می‌شود. فرمت persistent یک شناسه تصادفی و ثابت ایجاد می‌کند که حفظ حریم خصوصی کاربر را تضمین نموده زیرا اطلاعات شخصی را فاش نمی‌سازد. فرمت transient شناسه‌ای موقت و یک‌بارمصرف تولید می‌کند که برای سناریوهای ناشناس یا با حداقل اشتراک اطلاعات مناسب خواهد بود.

Account Linking فرآیندی است که حساب کاربری در سمت SP با هویت ارائه‌شده توسط IdP مرتبط می‌شود. این ارتباط می‌تواند به‌صورت خودکار (بر اساس ویژگی مشترک مانند ایمیل) یا دستی (با تأیید کاربر) انجام شود.

امنیت در SAML: تهدیدها، آسیب‌پذیری‌ها و راهکارها

پروتکل SAML مکانیزم‌های امنیتی قدرتمندی در خود دارد، اما پیاده‌سازی نادرست می‌تواند آسیب‌پذیری‌های بحرانی ایجاد کند. شناخت این تهدیدها و راهکارهای مقابله برای هر سازمانی که از SAML SSO استفاده می‌کند ضروری است.

امضای دیجیتال و رمزنگاری XML

امضای دیجیتال مهم‌ترین مکانیزم امنیتی SAML محسوب می‌شود. IdP با کلید خصوصی خود Assertion (و اختیاراً کل SAML Response) را امضا می‌کند و SP با استفاده از کلید عمومی IdP (که از متادیتا دریافت کرده) اصالت و یکپارچگی سند را تأیید می‌نماید.

رمزنگاری Assertion لایه محرمانگی را اضافه می‌کند. IdP می‌تواند Assertion را با کلید عمومی SP رمزنگاری کند تا حتی اگر پیام در مسیر رهگیری شود، محتوای آن قابل خواندن نباشد. SP تنها با کلید خصوصی خود قادر به رمزگشایی خواهد بود.

آسیب‌پذیری XML Signature Wrapping

یکی از خطرناک‌ترین آسیب‌پذیری‌های تاریخی SAML، حمله XML Signature Wrapping (XSW) بوده است. در این حمله، مهاجم ساختار XML سند SAML را دستکاری می‌کند به‌گونه‌ای که امضای دیجیتال همچنان معتبر باقی بماند اما SP بخش دستکاری‌شده را به جای بخش اصلی پردازش نماید. مهاجم یک کپی از Assertion اصلی امضاشده را در سند نگه می‌دارد (تا امضا معتبر بماند) و یک Assertion جعلی با اطلاعات هویتی متفاوت اضافه می‌کند. اگر SP هنگام اعتبارسنجی، Assertion اشتباهی را بخواند، مهاجم موفق به جعل هویت خواهد شد.

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

سایر تهدیدات امنیتی SAML

Replay Attack زمانی رخ می‌دهد که مهاجم یک SAML Response معتبر را رهگیری و مجدداً ارسال کند. استفاده از شرایط زمانی دقیق (NotBefore و NotOnOrAfter) و ذخیره شناسه‌های Assertion مصرف‌شده برای جلوگیری از پردازش مجدد، این حمله را خنثی می‌سازد.

Man-in-the-Middle تهدیدی است که استفاده اجباری از HTTPS برای تمام Endpointها و فعال‌سازی HSTS آن را ناکام می‌گذارد.

Denial of Service مبتنی بر XML حمله‌ای است که مهاجم اسناد XML بسیار بزرگ یا با ساختار بازگشتی (XML Bomb) ارسال می‌کند تا منابع سرور را مصرف نماید. محدود کردن اندازه ورودی XML و غیرفعال کردن پردازش DTD و Entity خارجی از راهکارهای مقابله هستند.

مقایسه SAML با OIDC: کدام پروتکل برای سازمان شما مناسب‌تر است؟

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

تفاوت‌های بنیادین فنی

SAML بر پایه XML و SOAP بنا شده در حالی که OIDC از JSON و REST استفاده می‌کند. این تفاوت بنیادین پیامدهای عملی متعددی دارد. اسناد XML در SAML معمولاً حجیم‌تر از توکن‌های JWT در OIDC هستند و پردازش آنها منابع بیشتری مصرف می‌نماید. از سوی دیگر، XML Schema امکان اعتبارسنجی دقیق ساختار سند را فراهم کرده که در سناریوهای با الزامات انطباقی بالا ارزشمند تلقی می‌شود.

OIDC با ارائه Discovery Endpoint فرآیند پیکربندی را بسیار خودکار کرده است. SAML نیز متادیتا دارد اما تبادل و پردازش آن معمولاً نیمه‌دستی انجام می‌شود. کتابخانه‌ها و SDK‌های مدرن برای OIDC فراوان‌تر و به‌روزتر هستند، در حالی که اکوسیستم SAML بالغ‌تر و در محیط‌های سازمانی سنتی ریشه‌دارتر محسوب می‌شود.

سناریوهای مناسب هر پروتکل

SAML در سناریوهای زیر انتخاب بهتری خواهد بود: سازمان‌هایی با اپلیکیشن‌های Legacy که فقط از SAML پشتیبانی می‌کنند، محیط‌هایی با الزامات انطباقی سخت‌گیرانه که ساختار XML رسمی مورد نیاز است، فدراسیون بین‌سازمانی با شرکایی که زیرساخت SAML موجود دارند، و محیط‌های آموزشی و دولتی که فدراسیون‌های SAML مستقر و فعال وجود دارد.

OIDC در سناریوهای زیر برتری دارد: اپلیکیشن‌های مدرن وب و موبایل، معماری‌های Microservices و API-first، محیط‌های ابری و Serverless، و سازمان‌هایی که از صفر شروع به پیاده‌سازی SSO می‌کنند.

رویکرد ترکیبی: بهترین هر دو دنیا

واقعیت بسیاری از سازمان‌ها ترکیبی از اپلیکیشن‌های قدیمی و جدید خواهد بود. بهترین رویکرد استفاده از یک Identity Provider مرکزی است که هر دو پروتکل را به‌صورت همزمان پشتیبانی کند. سامانه احراز هویت نشانه (neshane.co) این قابلیت را فراهم کرده تا سازمان‌ها بتوانند اپلیکیشن‌های SAML و OIDC را از یک نقطه مرکزی مدیریت نمایند. اپلیکیشن‌های قدیمی با SAML و اپلیکیشن‌های جدید با OIDC متصل می‌شوند و کاربران تجربه SSO یکپارچه‌ای دریافت خواهند کرد.

ویژگی SAML 2.0 OpenID Connect
سال انتشار ۲۰۰۵ ۲۰۱۴
فرمت داده XML JSON (JWT)
پروتکل انتقال HTTP-Redirect, HTTP-POST, SOAP REST/HTTP
اندازه پیام بزرگ کوچک
پشتیبانی موبایل محدود عالی
پشتیبانی SPA ندارد عالی (PKCE)
فدراسیون بین‌سازمانی بسیار قوی متوسط
اکوسیستم سازمانی بسیار بالغ در حال رشد سریع
پیچیدگی پیاده‌سازی بالا متوسط-پایین
Single Logout قوی (Front + Back channel) متوسط
پیکربندی خودکار متادیتا (نیمه‌دستی) Discovery (کاملاً خودکار)
یکپارچه‌سازی با FIDO2 AuthnContextClassRef amr Claim

پیاده‌سازی عملی SAML SSO در سازمان

پیاده‌سازی SAML در محیط سازمانی فرآیندی چندمرحله‌ای بوده و نیازمند هماهنگی بین تیم‌های مختلف فناوری اطلاعات و امنیت خواهد بود.

مرحله اول: آماده‌سازی Identity Provider

اولین گام، استقرار و پیکربندی IdP مرکزی است. IdP باید با دایرکتوری سازمان (مانند Active Directory یا LDAP) یکپارچه شود تا حساب‌های کاربری موجود به‌صورت خودکار شناسایی شوند. تولید جفت کلید رمزنگاری (کلید خصوصی برای امضای Assertionها و گواهی عمومی برای اشتراک با SPها) در این مرحله انجام می‌گیرد. متادیتا IdP باید تولید و از طریق یک URL ثابت در دسترس قرار گیرد.

مرحله دوم: یکپارچه‌سازی Service Providerها

برای هر SP باید مراحل زیر طی شود: دریافت متادیتا SP (یا دریافت اطلاعات پیکربندی به‌صورت دستی شامل EntityID و ACS URL)، ثبت SP در IdP و تنظیم NameID Format و Attributeهای مورد نیاز، ارسال متادیتا IdP به مدیر SP برای پیکربندی سمت اپلیکیشن، و نهایتاً آزمایش جریان SSO.

مرحله سوم: مدیریت Single Logout

پیاده‌سازی صحیح Single Logout (SLO) در SAML یکی از پیچیده‌ترین جنبه‌های عملیاتی محسوب می‌شود. SAML دو مکانیزم SLO تعریف کرده است.

در Front-Channel SLO، IdP هنگام خروج کاربر، مرورگر را به‌صورت زنجیره‌ای به Logout Endpoint هر SP هدایت می‌کند. هر SP جلسه محلی کاربر را حذف و تأیید خروج را بازمی‌گرداند. این روش به فعال بودن مرورگر کاربر وابسته بوده و اگر کاربر مرورگر را ببندد، خروج از برخی SPها ناقص خواهد ماند.

در Back-Channel SLO، IdP مستقیماً یک درخواست SOAP به Logout Endpoint هر SP ارسال می‌کند. این روش قابل‌اعتمادتر بوده زیرا به مرورگر وابسته نیست، اما نیازمند دسترسی شبکه‌ای مستقیم بین IdP و تمام SPها خواهد بود.

یکپارچه‌سازی SAML با FIDO2: ترکیب استاندارد بالغ با فناوری نوین

هرچند SAML پروتکلی قدیمی‌تر از FIDO2 محسوب می‌شود، یکپارچه‌سازی این دو فناوری نه‌تنها ممکن بلکه بسیار ارزشمند خواهد بود. SAML درباره «چگونگی» احراز هویت کاربر بی‌نظر عمل کرده و این تصمیم را کاملاً به IdP واگذار می‌نماید. همین انعطاف‌پذیری امکان جایگزینی رمز عبور سنتی با احراز هویت FIDO2 در لایه IdP را فراهم ساخته است.

AuthnContextClassRef: اعلام روش احراز هویت

SAML از عنصر AuthnContextClassRef در Authentication Statement برای مشخص کردن روش احراز هویت استفاده‌شده بهره می‌برد. وقتی IdP از FIDO2 برای احراز هویت استفاده می‌کند، می‌تواند مقداری مانند urn:oasis:names:tc:SAML:2.0:ac:classes:FIDO یا یک URI سفارشی در این عنصر درج نماید. SP بر اساس این اطلاعات می‌تواند تصمیم بگیرد آیا سطح احراز هویت انجام‌شده برای دسترسی به منابع حساس کافی هست یا خیر.

Requested AuthnContext: الزام سطح احراز هویت

SP می‌تواند در AuthnRequest خود، سطح احراز هویت مورد انتظار را مشخص کند. مثلاً سیستم مالی سازمان می‌تواند درخواست کند که IdP حتماً کاربر را با روشی در سطح urn:oasis:names:tc:SAML:2.0:ac:classes:FIDO یا بالاتر احراز هویت نماید. اگر کاربر قبلاً فقط با رمز عبور ساده وارد شده باشد، IdP از او می‌خواهد مجدداً با کلید امنیتی FIDO2 احراز هویت شود. این مکانیزم Step-Up Authentication امکان اعمال سیاست‌های امنیتی متناسب با حساسیت هر سرویس را فراهم می‌سازد.

نقش محصولات نشانه در ترکیب SAML و FIDO2

سامانه احراز هویت نشانه به‌عنوان یک IdP سازمانی، هر دو استاندارد SAML 2.0 و FIDO2 را به‌صورت یکپارچه پشتیبانی می‌کند. کاربران می‌توانند با نشانه توکن (کلید امنیتی USB/NFC مبتنی بر FIDO2)، نشانه موبایل (اپلیکیشن Authenticator روی گوشی هوشمند) یا کارت‌های شناسایی NFC در IdP احراز هویت شوند و سپس Assertionهای SAML معتبر برای تمام SPهای متصل صادر شود.

این ترکیب به سازمان‌ها اجازه می‌دهد بدون تغییر در اپلیکیشن‌های SAML موجود خود، صرفاً با ارتقای لایه احراز هویت در IdP به FIDO2، از مزایای احراز هویت بدون رمز عبور و مقاوم در برابر فیشینگ بهره‌مند شوند. اپلیکیشن‌های SP هیچ تغییری نیاز نداشته و فقط AuthnContextClassRef متفاوتی در Assertion دریافت خواهند کرد.

مدیریت چرخه حیات گواهی‌ها و کلیدهای SAML

یکی از چالش‌های عملیاتی مهم در نگهداری زیرساخت SAML، مدیریت گواهی‌های دیجیتال X.509 مورد استفاده برای امضا و رمزنگاری خواهد بود. بی‌توجهی به این موضوع می‌تواند باعث قطع ناگهانی سرویس SSO شود.

چرخش گواهی‌ها بدون قطع سرویس

گواهی‌های دیجیتال تاریخ انقضا دارند و پیش از رسیدن به آن تاریخ باید جایگزین شوند. فرآیند چرخش گواهی (Certificate Rollover) در SAML شامل مراحل زیر خواهد بود: ابتدا IdP گواهی جدید را تولید و آن را در کنار گواهی قدیمی در متادیتا منتشر می‌کند (متادیتا می‌تواند چندین گواهی داشته باشد). سپس SPها متادیتا جدید را دریافت و هر دو گواهی را ذخیره می‌کنند. پس از اطمینان از به‌روزرسانی تمام SPها، IdP شروع به امضای Assertionها با گواهی جدید می‌نماید. نهایتاً پس از یک دوره انتقالی مناسب، گواهی قدیمی از متادیتا حذف می‌شود.

نظارت و هشداردهی

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

SAML در معماری Zero Trust

معماری Zero Trust بر اصل «هیچ‌گاه اعتماد نکن، همیشه تأیید کن» استوار است. SAML می‌تواند نقش مهمی در پیاده‌سازی این معماری ایفا کند، هرچند محدودیت‌هایی نیز دارد.

نقاط قوت SAML در Zero Trust

مکانیزم Requested AuthnContext به سازمان‌ها اجازه می‌دهد سطح احراز هویت مورد نیاز را بر اساس حساسیت هر سرویس تعیین کنند. Attribute Statement امکان انتقال اطلاعات زمینه‌ای (Context) مانند نقش کاربر، مکان جغرافیایی و نوع دستگاه را فراهم کرده و Policy Engine می‌تواند بر اساس این اطلاعات تصمیمات دسترسی مبتنی بر ریسک اتخاذ نماید.

محدودیت‌های SAML در محیط‌های مدرن

SAML برای معماری‌های مبتنی بر API و Microservices مناسب نیست. Assertionهای XML حجیم برای ارسال در هر درخواست API ناکارآمد بوده و مکانیزم‌های SAML برای ارتباطات سرور به سرور طراحی نشده‌اند. در این سناریوها، ترکیب SAML (برای SSO وب‌اپلیکیشن‌ها) با OIDC/OAuth (برای حفاظت API) رویکرد عملی‌تری ارائه می‌دهد.

چک‌لیست امنیتی و عملیاتی SAML سازمانی

پیاده‌سازی موفق و امن SAML SSO نیازمند رعایت مجموعه‌ای از بهترین رویه‌ها در حوزه‌های مختلف فنی و عملیاتی خواهد بود.

امنیت Assertion و Response

تمام Assertionها باید امضای دیجیتال داشته باشند و SP باید امضا را قبل از هر پردازش دیگری تأیید نماید. شرایط زمانی (NotBefore و NotOnOrAfter) باید با تلرانس حداکثر ۵ دقیقه بررسی شوند تا اختلاف ساعت سرورها مشکل ایجاد نکند اما پنجره حمله Replay نیز محدود بماند. Audience Restriction باید فعال بوده و SP باید تأیید کند که Assertion برای خودش صادر شده است. برای سناریوهای حساس، رمزنگاری Assertion علاوه بر امضا توصیه می‌شود.

امنیت زیرساخت

تمام Endpointها باید فقط از طریق HTTPS قابل دسترسی باشند. کلیدهای خصوصی مورد استفاده برای امضا باید در HSM (Hardware Security Module) یا حداقل در Keystore رمزنگاری‌شده نگهداری شوند. لاگ‌های جامع از تمام رویدادهای SAML شامل AuthnRequest، Response، Assertion Validation و Logout باید ثبت شده و در سیستم SIEM تحلیل شوند.

مدیریت عملیاتی

فرآیند چرخش گواهی‌ها باید مستند و خودکار (تا حد ممکن) باشد. آزمایش دوره‌ای جریان‌های SSO و SLO برای اطمینان از عملکرد صحیح ضروری بوده و مستندسازی کامل پیکربندی هر SP شامل EntityID، ACS URL، NameID Format و Attributeهای مورد نیاز باید در یک سیستم مدیریت پیکربندی مرکزی نگهداری شود.

جمع‌بندی: جایگاه SAML در آینده مدیریت هویت سازمانی

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

رویکرد عاقلانه برای سازمان‌ها، استفاده از یک Identity Provider مرکزی است که هم SAML 2.0 و هم OIDC را پشتیبانی کرده و امکان ترکیب آنها با فناوری‌های نوین احراز هویت مانند FIDO2 را فراهم سازد. سازمان‌ها می‌توانند با ارتقای لایه احراز هویت در IdP خود به FIDO2، بدون تغییر در اپلیکیشن‌های SAML موجود، از مزایای احراز هویت بدون رمز عبور بهره‌مند شوند.

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

آشنایی با محصولات نشانه موبایل و نشانه توکن

محصولات نشانه موبایل و نشانه توکن به‌عنوان راهکارهای احراز هویت بدون گذرواژه مبتنی بر استاندارد FIDO، امنیت دیجیتال سازمان‌ها را ارتقا داده و تجربه‌ای ساده و لذت‌بخش برای کاربران فراهم می‌آورند. اگر قصد دارید بانک یا سازمان خود را به دنیای بدون رمز عبور وارد کنید و از مشاوره تخصصی بهره‌مند شوید، با متخصصان تیم نشانه به شماره ۰۲۱-۹۱۰۹۶۵۵۱ تماس بگیرید.

کلیک کنید: نشانه موبایل و نشانه توکن

🟦 مشاوره امنیتی رایگان

برای سازمان‌هایی که آماده مدرن‌سازی زیرساخت احراز هویت خود هستند، راهکارهای نشانه موبایل و نشانه توکن مسیر مهاجرت به احراز هویت بدون گذرواژه مبتنی بر FIDO را هموار ساخته‌اند. این محصولات ضمن تقویت امنیت دیجیتال سازمان شما، تجربه‌ای روان‌تر و ساده‌تر برای کاربرانتان فراهم می‌سازند. برای دریافت مشاوره امنیتی رایگان و اطلاعات بیشتر، با متخصصان نشانه از طریق شماره ۰۲۱-۹۱۰۹۶۵۵۱ تماس بگیرید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا