نمودار جریان احراز هویت OpenID Connect در محیط SSO سازمانی شامل کاربر، اپلیکیشن و OpenID Provider

پیاده‌سازی OpenID Connect (OIDC) برای SSO سازمانی

وقتی کارمندی صبح وارد سیستم سازمانش می‌شود و با یک بار ورود به تمام اپلیکیشن‌ها دسترسی پیدا می‌کند، پشت این تجربه ساده یک معماری پیچیده و دقیق فعالیت دارد. OpenID Connect (OIDC) پروتکلی است که این تجربه یکپارچه را ممکن ساخته و امروز ستون فقرات احراز هویت مرکزی سازمان‌های پیشرو در سراسر جهان محسوب می‌شود. این پروتکل که بر بستر OAuth 2.0 ساخته شده، لایه‌ای استاندارد برای تأیید هویت کاربران فراهم می‌کند و با قابلیت یکپارچه‌سازی با فناوری‌هایی مانند FIDO2، مسیر مهاجرت از رمزهای عبور سنتی به احراز هویت بدون رمز عبور را هموار کرده است. در این راهنمای جامع از neshane.co تمام جنبه‌های فنی، معماری و عملیاتی پیاده‌سازی OIDC برای SSO سازمانی را بررسی خواهیم کرد.

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

اگر با مبانی اولیه احراز هویت آشنایی ندارید، پیشنهاد می‌کنیم مقاله زیر را مطالعه کنید.

حتماً بخوانید: راهنمای مفاهیم و تعاریف احراز هویت پیشرفته

OIDC در یک نگاه: از OAuth 2.0 تا لایه هویت

درک OpenID Connect بدون شناخت ریشه‌های آن ممکن نیست. این پروتکل در واقع یک لایه هویت (Identity Layer) است که روی فریم‌ورک مجوزدهی OAuth 2.0 بنا شده و مشکل بنیادین آن پروتکل را برطرف کرده است.

OAuth 2.0 چه مشکلی داشت که OIDC به وجود آمد؟

OAuth 2.0 از ابتدا برای مجوزدهی (Authorization) طراحی شد نه برای احراز هویت (Authentication). این پروتکل به اپلیکیشن‌ها اجازه می‌دهد از طرف کاربر به منابع محافظت‌شده دسترسی پیدا کنند، اما هیچ مکانیزم استانداردی برای پاسخ به سؤال «این کاربر کیست؟» ندارد. بسیاری از توسعه‌دهندگان در سال‌های اولیه OAuth 2.0 تلاش کردند از Access Token برای احراز هویت استفاده کنند، اما این رویکرد آسیب‌پذیری‌های امنیتی جدی ایجاد می‌کرد.

بنیاد OpenID در سال ۲۰۱۴ نسخه نهایی مشخصات OpenID Connect Core 1.0 را منتشر کرد. این پروتکل با افزودن مفهوم ID Token و مجموعه‌ای از Endpointهای استاندارد، توانست خلأ احراز هویت در OAuth 2.0 را پر کند. امروز تقریباً تمام ارائه‌دهندگان هویت بزرگ دنیا از جمله Google، Microsoft Azure AD، Okta و Keycloak از OIDC پشتیبانی می‌کنند و این پروتکل به استاندارد بلامنازع احراز هویت مدرن تبدیل شده است.

تفاوت بنیادین Authentication و Authorization

Authentication (احراز هویت) به فرآیند تأیید هویت واقعی کاربر اشاره دارد: «آیا این شخص همان کسی است که ادعا می‌کند؟» Authorization (مجوزدهی) اما به تعیین سطح دسترسی کاربر تأیید‌شده مربوط می‌شود: «این کاربر تأیید‌شده اجازه انجام چه کارهایی را دارد؟» OAuth 2.0 ابزار Authorization است و OIDC ابزار Authentication. ترکیب این دو پروتکل یک سیستم کامل مدیریت هویت و دسترسی ایجاد می‌کند.

چرا سازمان‌ها به OpenID Connect نیاز دارند؟

سازمان‌های امروزی با چالش‌های متعددی در حوزه مدیریت هویت دیجیتال مواجه هستند. تعداد اپلیکیشن‌های سازمانی به‌طور میانگین از ۲۵۰ عدد برای سازمان‌های بزرگ فراتر رفته و هر کدام سیستم احراز هویت مستقل خود را دارند. کاربران مجبورند ده‌ها رمز عبور مختلف را حفظ کنند و تیم‌های IT برای مدیریت چرخه حیات هویت‌ها ساعت‌ها وقت صرف می‌کنند.

حل معضل پراکندگی هویت

OpenID Connect با ارائه یک نقطه مرکزی احراز هویت، مشکل پراکندگی هویت‌ها را ریشه‌ای حل می‌کند. به جای آنکه هر اپلیکیشن سیستم لاگین مجزای خود را مدیریت کند، تمام فرآیند تأیید هویت به یک OpenID Provider (OP) مرکزی واگذار می‌شود. کاربر یک‌بار در این سرویس مرکزی وارد می‌شود و سپس به تمام اپلیکیشن‌های متصل دسترسی پیدا می‌کند. این همان مفهوم Single Sign-On (SSO) است که OIDC آن را به بهترین شکل ممکن محقق کرده است.

مزایای کلیدی OIDC برای سازمان‌ها

کاهش هزینه‌های پشتیبانی یکی از ملموس‌ترین مزایای پیاده‌سازی OIDC سازمانی محسوب می‌شود. تحقیقات Gartner نشان می‌دهد بین ۲۰ تا ۵۰ درصد تماس‌های Help Desk مربوط به بازیابی رمز عبور هستند و هر تماس به‌طور میانگین ۷۰ دلار هزینه دارد. با متمرکزسازی احراز هویت و حذف رمزهای عبور متعدد، این هزینه‌ها به‌شدت کاهش می‌یابند.

بهبود تجربه کاربری نیز مزیت دیگری است که مستقیماً بر بهره‌وری کارکنان تأثیر می‌گذارد. تحقیقات نشان داده کاربری که روزانه پنج بار فرآیند لاگین را تکرار می‌کند، سالانه بیش از ۱۲ ساعت صرف ورود رمز عبور می‌کند. SSO مبتنی بر OIDC این زمان را تقریباً به صفر می‌رساند.

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

معماری OpenID Connect: اجزا و مفاهیم کلیدی

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

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

End User (کاربر نهایی) فردی است که قصد دارد هویت خود را اثبات کرده و به منابع محافظت‌شده دسترسی پیدا کند. این کاربر ممکن است یک کارمند سازمان، یک مشتری خارجی یا یک شریک تجاری باشد.

OpenID Provider (OP) سروری است که مسئولیت احراز هویت کاربر و صدور توکن‌های هویت را بر عهده دارد. این همان سرور مرکزی احراز هویت سازمان است که در محصولاتی مانند نشانه (محصول شرکت رهسا) پیاده‌سازی شده و نقش ستون فقرات سیستم SSO را ایفا می‌کند. OP باید از استانداردهای امنیتی بالایی پیروی کند زیرا تمام اعتماد اکوسیستم بر آن استوار است.

Relying Party (RP) اپلیکیشن یا سرویسی است که برای احراز هویت کاربران خود به OpenID Provider اعتماد می‌کند. هر اپلیکیشن سازمانی که با OIDC یکپارچه شده باشد، یک Relying Party محسوب می‌شود.

Endpointهای حیاتی OIDC

پروتکل OpenID Connect مجموعه‌ای از Endpointهای استاندارد تعریف کرده که ارتباط بین اجزای مختلف سیستم را استاندارد می‌کنند.

Authorization Endpoint اولین نقطه تماس در جریان احراز هویت است. RP کاربر را به این Endpoint در سمت OP هدایت می‌کند تا فرآیند لاگین آغاز شود. این درخواست شامل پارامترهایی مانند client_id، response_type، scope و redirect_uri خواهد بود.

Token Endpoint محلی است که RP پس از دریافت Authorization Code، آن را با یک درخواست سمت سرور (Back-channel) به این Endpoint ارسال می‌کند و در ازای آن ID Token و Access Token دریافت می‌نماید.

UserInfo Endpoint اطلاعات تکمیلی پروفایل کاربر را ارائه می‌دهد. RP می‌تواند با ارسال Access Token معتبر به این Endpoint، اطلاعاتی مانند نام، ایمیل و سایر Claims کاربر را دریافت کند.

Discovery Endpoint یکی از ویژگی‌های هوشمندانه OIDC است. با فراخوانی آدرس /.well-known/openid-configuration روی دامنه OP، تمام اطلاعات پیکربندی شامل آدرس Endpointها، الگوریتم‌های پشتیبانی‌شده و کلیدهای عمومی امضا به‌صورت خودکار در اختیار RP قرار می‌گیرد. این قابلیت فرآیند یکپارچه‌سازی را به‌شدت ساده‌تر می‌کند.

مفهوم Scope و Claims

Scope مجموعه‌ای از مجوزهایی است که RP از OP درخواست می‌کند. مهم‌ترین Scope در OIDC مقدار openid است که حضور آن در درخواست، جریان را از یک درخواست ساده OAuth به یک درخواست OIDC تبدیل می‌کند. Scopeهای استاندارد دیگر شامل profile (اطلاعات پایه کاربر)، email (آدرس ایمیل)، address (آدرس فیزیکی) و phone (شماره تلفن) هستند.

Claims اطلاعات واقعی درباره کاربر هستند که درون ID Token یا پاسخ UserInfo Endpoint قرار می‌گیرند. هر Claim یک جفت نام-مقدار است؛ مانند sub (شناسه یکتای کاربر)، name (نام کامل)، email (آدرس ایمیل) و iat (زمان صدور توکن). سازمان‌ها می‌توانند Claims سفارشی نیز تعریف کنند تا اطلاعات خاص حوزه کسب‌وکار خود را منتقل نمایند.

مقایسه احراز هویت سنتی با رمز عبور و احراز هویت مدرن OIDC ترکیب‌شده با FIDO2 در سازمان

ID Token: قلب تپنده پروتکل OIDC

ID Token مهم‌ترین مفهومی است که OpenID Connect به OAuth 2.0 افزوده و تفاوت بنیادین این دو پروتکل را رقم زده است. بدون درک عمیق ID Token، پیاده‌سازی صحیح OIDC غیرممکن خواهد بود.

ساختار JWT در ID Token

ID Token یک توکن از نوع JSON Web Token (JWT) است که از سه بخش مجزا تشکیل شده و هر بخش با کاراکتر نقطه (.) از بخش بعدی جدا می‌شود.

بخش اول Header است که اطلاعات مربوط به الگوریتم امضا و نوع توکن را شامل می‌شود. بخش دوم Payload حاوی Claims یعنی اطلاعات واقعی درباره کاربر و جلسه احراز هویت است. بخش سوم Signature امضای رمزنگاری‌شده‌ای است که یکپارچگی و اصالت توکن را تضمین می‌کند.

Claims ضروری و معنای آنها

iss (Issuer): شناسه یکتای OpenID Provider صادرکننده توکن. RP باید این مقدار را با آدرس مورد انتظار OP مقایسه کند تا از جعلی نبودن توکن اطمینان حاصل نماید.

sub (Subject): شناسه یکتای کاربر نزد OP. این مقدار برای هر کاربر منحصر‌به‌فرد و ثابت است و RP باید از آن برای شناسایی کاربر در سیستم خود استفاده کند.

aud (Audience): شناسه client_id اپلیکیشن RP که توکن برای آن صادر شده. RP باید تأیید کند که مقدار aud با شناسه خودش مطابقت دارد تا از حمله Token Replay جلوگیری شود.

exp (Expiration): زمان انقضای توکن به‌صورت Unix Timestamp. پس از این زمان، توکن معتبر نیست و RP نباید آن را بپذیرد.

nonce: مقدار تصادفی که RP در درخواست اولیه ارسال کرده و OP آن را در ID Token بازمی‌گرداند. این مکانیزم از حمله Replay جلوگیری می‌کند.

amr (Authentication Methods References): آرایه‌ای از روش‌های احراز هویت استفاده‌شده. مثلاً مقدار ["fido2", "face"] نشان می‌دهد کاربر با کلید امنیتی FIDO2 و تأیید بیومتریک چهره احراز هویت شده است. این Claim برای سیاست‌های امنیتی مبتنی بر ریسک بسیار ارزشمند تلقی می‌شود.

اعتبارسنجی ID Token: مراحلی که نباید نادیده گرفته شوند

RP هنگام دریافت ID Token باید مراحل اعتبارسنجی مشخصی را طی کند. ابتدا باید امضای JWT را با کلید عمومی OP (قابل دریافت از JWKS Endpoint) تأیید نماید. سپس باید مقادیر iss، aud و exp را بررسی کند. مقدار nonce باید با مقداری که در درخواست اولیه ارسال شده مطابقت داشته باشد. اگر هر یک از این بررسی‌ها با شکست مواجه شود، RP باید توکن را رد کرده و جلسه احراز هویت را نامعتبر اعلام کند.

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

پیاده‌سازی OIDC در محیط سازمانی فراتر از نوشتن چند خط کد است. این فرآیند شامل برنامه‌ریزی معماری، پیکربندی زیرساخت و مدیریت چرخه حیات توکن‌ها می‌شود.

گام اول: انتخاب و پیکربندی OpenID Provider

اولین تصمیم در مسیر پیاده‌سازی، انتخاب OpenID Provider مناسب است. سازمان‌ها می‌توانند از راهکارهای ابری مانند Azure AD یا راهکارهای On-Premise استفاده کنند. برای سازمان‌هایی که حاکمیت داده و نگهداری اطلاعات هویت در داخل کشور اهمیت دارد، استفاده از محصولات داخلی مانند سامانه احراز هویت نشانه (محصول شرکت رهسا) گزینه‌ای مطمئن محسوب می‌شود. نشانه به‌عنوان یک OpenID Provider سازمانی، علاوه بر پشتیبانی کامل از استاندارد OIDC، قابلیت یکپارچه‌سازی با احراز هویت FIDO2 و مدیریت چندعاملی را فراهم کرده است.

پیکربندی OP شامل تعریف Realm یا Tenant سازمانی، تنظیم الگوریتم‌های امضای توکن (ترجیحاً RS256 یا ES256)، تعیین مدت زمان اعتبار توکن‌ها و فعال‌سازی Endpointهای لازم خواهد بود.

گام دوم: ثبت و پیکربندی Relying Partyها

هر اپلیکیشن سازمانی که قرار است از SSO مبتنی بر OIDC استفاده کند، باید به‌عنوان یک Client در OP ثبت شود. این فرآیند شامل موارد زیر خواهد بود:

تعریف client_id یکتا برای هر اپلیکیشن ضروری است. تولید client_secret برای اپلیکیشن‌های Confidential (سمت سرور) انجام می‌شود. ثبت redirect_uriهای مجاز بسیار حائز اهمیت امنیتی بوده و باید دقیقاً مطابق آدرس واقعی اپلیکیشن باشند. تعیین Scopeهای مجاز و Grant Typeهای مجاز نیز باید متناسب با نیاز هر اپلیکیشن صورت بگیرد.

گام سوم: پیاده‌سازی سمت اپلیکیشن

برای پیاده‌سازی OIDC در سمت اپلیکیشن، استفاده از کتابخانه‌های استاندارد و آزموده‌شده به‌جای پیاده‌سازی دستی پروتکل توصیه می‌شود.

گام چهارم: مدیریت جلسه و خروج یکپارچه

مدیریت صحیح جلسه (Session) یکی از پیچیده‌ترین جنبه‌های SSO سازمانی است. وقتی کاربر وارد OP می‌شود، دو نوع جلسه ایجاد خواهد شد: جلسه OP (در سمت سرور احراز هویت مرکزی) و جلسه RP (در سمت هر اپلیکیشن). هماهنگی این دو جلسه، به‌ویژه هنگام خروج (Logout)، اهمیت بالایی دارد.

OIDC مکانیزم‌هایی برای Single Logout (SLO) تعریف کرده است. در Front-Channel Logout، OP یک iframe مخفی در مرورگر کاربر بارگذاری می‌کند که به Logout URL هر RP متصل درخواست ارسال می‌نماید. در Back-Channel Logout، OP مستقیماً یک Logout Token به Endpoint هر RP ارسال می‌کند. روش Back-Channel قابل‌اعتمادتر است زیرا به مرورگر کاربر وابسته نیست.

امنیت در OpenID Connect: تهدیدها و راهکارها

هرچند OIDC ذاتاً از مکانیزم‌های امنیتی قوی برخوردار است، پیاده‌سازی نادرست می‌تواند آسیب‌پذیری‌های جدی ایجاد کند. شناخت تهدیدها و اعمال راهکارهای مناسب برای هر سازمانی ضروری به‌شمار می‌رود.

حملات رایج و راهکارهای مقابله

حمله Token Theft (سرقت توکن): اگر ID Token یا Access Token به دست مهاجم بیفتد، امکان جعل هویت کاربر وجود دارد. برای مقابله باید مدت اعتبار توکن‌ها کوتاه نگه داشته شود (ID Token حداکثر ۱۵ دقیقه)، از توکن‌های Sender-Constrained استفاده شود و انتقال توکن‌ها فقط از طریق HTTPS انجام گیرد.

حمله Authorization Code Injection: مهاجم تلاش می‌کند یک Authorization Code معتبر را وارد جلسه کاربر دیگری کند. استفاده از PKCE و پارامتر state این حمله را خنثی می‌سازد.

حمله Redirect URI Manipulation: اگر اعتبارسنجی redirect_uri در OP دقیق نباشد، مهاجم می‌تواند Authorization Code را به سرور خود هدایت کند. OP باید تطابق دقیق (Exact Match) URI ثبت‌شده را بررسی نماید و از الگوهای Wildcard پرهیز کند.

حمله ID Token Substitution: مهاجم یک ID Token معتبر صادرشده برای اپلیکیشن دیگر را به RP هدف ارسال می‌کند. بررسی دقیق Claim aud و nonce این حمله را ناکام می‌گذارد.

بهترین رویه‌های امنیتی OIDC

ذخیره‌سازی امن توکن‌ها اولویت بالایی دارد. در اپلیکیشن‌های وب، توکن‌ها باید در HttpOnly Cookies با فلگ‌های Secure و SameSite ذخیره شوند نه در LocalStorage یا SessionStorage مرورگر. در اپلیکیشن‌های موبایل، استفاده از Keychain (iOS) یا Keystore (Android) الزامی است.

چرخش توکن‌ها (Token Rotation) باید فعال باشد. هربار که Refresh Token استفاده می‌شود، OP باید یک Refresh Token جدید صادر و قبلی را باطل کند. این مکانیزم از سوءاستفاده از Refresh Tokenهای سرقت‌شده جلوگیری می‌نماید.

نظارت و ثبت رویدادها (Audit Logging) نقش حیاتی در شناسایی حملات دارد. تمام رویدادهای احراز هویت شامل ورود موفق، ناموفق، صدور توکن و خروج باید با جزئیات کامل ثبت شوند.

یکپارچه‌سازی OIDC با FIDO2: احراز هویت بدون رمز عبور

ترکیب OpenID Connect با استاندارد FIDO2 آینده احراز هویت سازمانی را شکل می‌دهد. این یکپارچه‌سازی نقاط قوت هر دو فناوری را در کنار هم قرار داده و تجربه‌ای هم‌زمان امن‌تر و ساده‌تر ایجاد می‌کند.

چرا OIDC به‌تنهایی کافی نیست؟

OpenID Connect مسئولیت «چگونگی» احراز هویت را به OpenID Provider واگذار کرده و خودش درباره روش احراز هویت بی‌نظر است. OP می‌تواند کاربر را با رمز عبور، OTP، بیومتریک یا هر روش دیگری احراز هویت کند. اما اگر OP از رمز عبور سنتی استفاده کند، تمام آسیب‌پذیری‌های مرتبط با رمز عبور (فیشینگ، Brute Force، Credential Stuffing) همچنان باقی می‌مانند. FIDO2 این حلقه مفقوده را تکمیل می‌کند.

FIDO2 چگونه لایه احراز هویت OIDC را تقویت می‌کند؟

استاندارد FIDO2 شامل دو مؤلفه WebAuthn (پروتکل تعامل مرورگر با Authenticator) و CTAP2 (پروتکل تعامل دستگاه با Authenticator خارجی) مبتنی بر رمزنگاری نامتقارن عمل می‌کند. به جای ارسال یک رمز مشترک، کاربر یک جفت کلید عمومی-خصوصی تولید می‌نماید. کلید خصوصی هیچ‌گاه دستگاه کاربر را ترک نمی‌کند و کلید عمومی در سمت سرور ذخیره می‌شود.

وقتی FIDO2 به‌عنوان روش احراز هویت در OP پیاده‌سازی شود، جریان OIDC به این صورت تغییر می‌کند: کاربر از RP به OP هدایت می‌شود، OP به جای نمایش فرم رمز عبور یک چالش WebAuthn به مرورگر ارسال می‌کند، کاربر با لمس کلید امنیتی USB، اسکن اثر انگشت یا تأیید چهره پاسخ چالش را امضا می‌نماید، OP امضا را با کلید عمومی ذخیره‌شده تأیید می‌کند و ID Token صادر می‌شود.

انواع Authenticatorهای FIDO2 در محیط سازمانی

سازمان‌ها می‌توانند از تجهیزات متنوعی برای احراز هویت FIDO2 در جریان OIDC استفاده کنند. کلیدهای امنیتی USB/NFC مانند محصولات نشانه توکن، بالاترین سطح امنیت را فراهم می‌کنند زیرا یک دستگاه فیزیکی اختصاصی هستند که بدون حضور فیزیکی غیرقابل استفاده‌اند. گوشی‌های هوشمند از طریق محصولاتی مانند نشانه موبایل می‌توانند به‌عنوان Authenticator FIDO2 عمل کنند و با بهره‌گیری از حسگرهای بیومتریک داخلی، تجربه کاربری بسیار روانی ارائه دهند. کارت‌های شناسایی NFC/RFID نیز گزینه‌ای مناسب برای سازمان‌هایی هستند که قبلاً از کارت‌های شناسایی فیزیکی استفاده می‌کنند.

OIDC و مدیریت هویت و دسترسی (IAM) در سازمان

OpenID Connect یک پروتکل مستقل نیست بلکه بخشی از اکوسیستم بزرگ‌تر مدیریت هویت و دسترسی (IAM) محسوب می‌شود. درک جایگاه OIDC در این اکوسیستم به سازمان‌ها کمک می‌کند تا از حداکثر قابلیت‌های آن بهره‌مند شوند.

OIDC به‌عنوان لایه Federation در IAM

در یک معماری IAM جامع، OIDC نقش لایه Federation (ارتباط فدرال هویت) را ایفا می‌کند. این لایه وظیفه انتقال امن اطلاعات هویت بین دامنه‌های مختلف اعتماد را بر عهده دارد. مثلاً وقتی یک سازمان می‌خواهد به شرکای تجاری خود اجازه دسترسی به پورتال اختصاصی‌اش را بدهد، OIDC امکان Federation بین Identity Provider شریک و Service Provider سازمان را فراهم می‌سازد.

یکپارچه‌سازی OIDC با RBAC و ABAC

سیستم‌های کنترل دسترسی مبتنی بر نقش (RBAC) و مبتنی بر ویژگی (ABAC) می‌توانند از Claims موجود در ID Token برای تصمیم‌گیری‌های مجوزدهی استفاده کنند. OP می‌تواند Claims سفارشی مانند roles (نقش‌های کاربر)، department (واحد سازمانی) و clearance_level (سطح محرمانگی) را در ID Token درج نماید. RP بر اساس این Claims تصمیم می‌گیرد کاربر به کدام بخش‌ها و عملیات دسترسی داشته باشد.

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

چرخه حیات هویت و OIDC

مدیریت چرخه حیات هویت شامل فرآیندهای Onboarding (استخدام و ایجاد حساب)، تغییرات نقش (ارتقا، جابجایی واحد) و Offboarding (خروج از سازمان) خواهد بود. OIDC در هر مرحله نقش ایفا می‌کند. هنگام Onboarding، حساب کاربر در OP ایجاد و Authenticatorهای FIDO2 ثبت می‌شوند. هنگام تغییر نقش، Claims مربوط به نقش و دسترسی در OP به‌روزرسانی می‌شوند و ID Tokenهای جدید این تغییرات را منعکس خواهند کرد. هنگام Offboarding، حساب کاربر در OP غیرفعال یا حذف می‌شود و تمام جلسات فعال از طریق مکانیزم Single Logout خاتمه می‌یابند.

مقایسه OIDC با سایر پروتکل‌های هویت

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

OIDC در مقابل SAML 2.0

SAML 2.0 پروتکلی مبتنی بر XML است که از سال ۲۰۰۵ در محیط‌های سازمانی استفاده می‌شود. این پروتکل قابلیت‌های قدرتمندی برای Federation بین سازمانی دارد، اما ساختار XML آن پیچیده و حجیم است. پردازش اسناد XML نیازمند کتابخانه‌های تخصصی بوده و احتمال بروز آسیب‌پذیری‌های مرتبط با XML Parsing (مانند XXE) وجود دارد.

OIDC با استفاده از JSON و REST API ساختاری بسیار ساده‌تر و مدرن‌تر ارائه می‌دهد. پیاده‌سازی آن در اپلیکیشن‌های وب مدرن، موبایل و SPA به‌مراتب راحت‌تر است. Discovery Endpoint امکان پیکربندی خودکار را فراهم می‌کند و حجم داده‌های تبادلی کمتر خواهد بود.

با این حال، SAML هنوز در بسیاری از سازمان‌های بزرگ و سیستم‌های قدیمی (Legacy) استفاده می‌شود. بهترین رویکرد برای سازمان‌ها استفاده از یک Identity Provider مانند نشانه است که هر دو پروتکل را به‌صورت همزمان پشتیبانی کند تا سازگاری با سیستم‌های قدیمی حفظ شده و به‌تدریج مهاجرت به OIDC صورت بگیرد.

OIDC در مقابل OAuth 2.0 خالص

همان‌طور که در ابتدای مقاله توضیح داده شد، OAuth 2.0 یک فریم‌ورک مجوزدهی است نه احراز هویت. استفاده از OAuth 2.0 بدون OIDC برای احراز هویت، آسیب‌پذیری‌هایی مانند Confused Deputy Attack ایجاد می‌کند. در این حمله، یک اپلیکیشن مخرب می‌تواند Access Token دریافتی از کاربر را به اپلیکیشن دیگری ارائه دهد و جعل هویت انجام دهد. ID Token با Claim aud دقیقاً همین مشکل را حل کرده زیرا هر ID Token فقط برای یک RP مشخص معتبر خواهد بود.

ویژگی OAuth 2.0 SAML 2.0 OpenID Connect
هدف اصلی مجوزدهی احراز هویت احراز هویت + مجوزدهی
فرمت داده JSON XML JSON (JWT)
مناسب برای موبایل بله محدود بله
مناسب برای SPA بله (با PKCE) خیر بله (با PKCE)
Discovery خودکار خیر محدود بله
Single Logout خیر بله بله
پشتیبانی از FIDO2 غیرمستقیم غیرمستقیم مستقیم (amr Claim)
پیچیدگی پیاده‌سازی متوسط بالا متوسط-پایین

چک‌لیست پیاده‌سازی OIDC سازمانی

پیاده‌سازی موفق OIDC در سطح سازمانی نیازمند برنامه‌ریزی دقیق و توجه به جزئیات فنی و عملیاتی متعددی است. این چک‌لیست نقشه راه پیاده‌سازی را ترسیم می‌کند.

فاز ارزیابی و برنامه‌ریزی

در این فاز تیم فنی سازمان باید فهرست کاملی از تمام اپلیکیشن‌هایی که قرار است به SSO متصل شوند تهیه کند. برای هر اپلیکیشن باید نوع Client (Confidential یا Public)، جریان مناسب OIDC و Scopeهای مورد نیاز مشخص شوند. همچنین الزامات انطباقی و قانونی سازمان (مانند ملزومات سامانه حاکمیتی یا GDPR) باید بررسی شده و OpenID Provider متناسب انتخاب شود.

فاز استقرار و پیکربندی

استقرار OP در محیط Production باید با رعایت اصول High Availability انجام شود. حداقل دو نمونه (Instance) از سرویس OP در پشت Load Balancer قرار بگیرند تا در صورت خرابی یک نمونه، سرویس‌دهی متوقف نشود. پایگاه داده هویت‌ها باید با مکانیزم Replication پشتیبان‌گیری شود. گواهی‌های TLS باید به‌درستی نصب شده و تمام ارتباطات از طریق HTTPS صورت بگیرد.

تنظیم مدت اعتبار توکن‌ها باید بر اساس سیاست امنیتی سازمان انجام شود. پیشنهاد عمومی این است که ID Token حداکثر ۱۵ دقیقه، Access Token حداکثر ۱ ساعت و Refresh Token حداکثر ۲۴ ساعت اعتبار داشته باشند. برای سناریوهای حساس مانند سیستم‌های مالی، این مقادیر باید کوتاه‌تر تعیین شوند.

فاز آزمایش و انتقال

قبل از انتقال کاربران به سیستم جدید، آزمایش‌های جامعی شامل تست جریان‌های مختلف احراز هویت، تست Single Logout، تست Token Refresh، تست سناریوهای خطا (OP در دسترس نبودن، توکن منقضی‌شده) و تست بار (Load Testing) باید انجام شوند.

انتقال کاربران ترجیحاً به‌صورت تدریجی و گروه‌گروه صورت بگیرد. ابتدا تیم IT و کاربران فنی منتقل شوند، سپس واحدهای دیگر به‌تدریج اضافه گردند. داشتن مکانیزم Rollback (بازگشت به سیستم قبلی) در مراحل اولیه انتقال ضروری است.

فاز نگهداری و بهبود مستمر

پس از استقرار موفق، نظارت مداوم بر عملکرد و امنیت سیستم OIDC اهمیت حیاتی دارد. داشبوردهای مانیتورینگ باید متریک‌هایی مانند تعداد احراز هویت موفق و ناموفق، میانگین زمان پاسخ OP، تعداد توکن‌های صادرشده و الگوهای غیرعادی (مانند تلاش‌های مکرر ناموفق از یک IP) را نمایش دهند.

به‌روزرسانی منظم نرم‌افزار OP و کتابخانه‌های OIDC Client و بازبینی دوره‌ای سیاست‌های امنیتی نیز بخش جدایی‌ناپذیر نگهداری سیستم خواهند بود.

آینده OpenID Connect و نقش آن در معماری Zero Trust

OpenID Connect در حال تکامل مداوم است و نسخه‌ها و افزونه‌های جدیدی در حال توسعه هستند که آینده احراز هویت سازمانی را شکل خواهند داد.

OIDC و Verifiable Credentials

یکی از جالب‌ترین تحولات آینده، یکپارچه‌سازی OIDC با Verifiable Credentials (VC) و مفهوم هویت خود-حاکم (Self-Sovereign Identity) است. پروتکل OpenID for Verifiable Credential Issuance (OID4VCI) و OpenID for Verifiable Presentations (OID4VP) در حال استانداردسازی هستند و امکان ارائه و تأیید مدارک هویتی دیجیتال (مانند گواهینامه، مدرک تحصیلی یا مجوز دسترسی) را از طریق زیرساخت OIDC فراهم خواهند کرد.

OIDC در معماری Zero Trust

در معماری Zero Trust که اصل «هیچ‌کس و هیچ‌چیز به‌طور پیش‌فرض مورد اعتماد نیست» بر آن حاکم بوده، OIDC نقش مؤلفه کلیدی تأیید مستمر هویت را ایفا می‌کند. هر درخواست دسترسی باید با یک توکن معتبر و به‌روز همراه باشد و Claims موجود در ID Token اطلاعات زمینه‌ای (Context) لازم برای تصمیم‌گیری سیاست‌های دسترسی مبتنی بر ریسک را فراهم می‌کنند.

ترکیب OIDC با FIDO2 و Passkeys در معماری Zero Trust به سازمان‌ها امکان می‌دهد هم‌زمان اصل «تأیید همیشگی» و «حداقل دسترسی» را اجرا کنند. Claim amr در ID Token به Policy Engine اجازه می‌دهد بر اساس قدرت روش احراز هویت استفاده‌شده، سطح دسترسی را تعیین نماید. مثلاً دسترسی به داده‌های حساس فقط زمانی مجاز باشد که کاربر با کلید امنیتی FIDO2 احراز هویت شده باشد.

مسیر مهاجرت تدریجی سازمان‌ها

بسیاری از سازمان‌ها هنوز از روش‌های سنتی احراز هویت استفاده می‌کنند و مهاجرت یک‌شبه به OIDC نه ممکن است و نه عاقلانه. مسیر پیشنهادی شامل این مراحل خواهد بود: در مرحله اول، یک OpenID Provider مرکزی مستقر شود و اپلیکیشن‌های جدید مستقیماً با OIDC یکپارچه گردند. در مرحله دوم، احراز هویت چندعاملی فعال شود و کاربران با ثبت Authenticatorهای FIDO2 آشنا گردند. در مرحله سوم، اپلیکیشن‌های قدیمی به‌تدریج به OIDC منتقل شوند. در مرحله نهایی، رمزهای عبور به‌طور کامل حذف شوند و احراز هویت بدون رمز عبور مبتنی بر FIDO2 جایگزین گردد.

جمع‌بندی و توصیه‌های عملی

OpenID Connect امروز استاندارد بلامنازع احراز هویت مدرن محسوب می‌شود و هر سازمانی که به دنبال امنیت بالاتر، تجربه کاربری بهتر و مدیریت هویت کارآمدتر است، باید پیاده‌سازی OIDC را در اولویت قرار دهد. ترکیب این پروتکل با FIDO2 قدرتمندترین لایه احراز هویت ممکن را ایجاد می‌کند. لایه‌ای که هم در برابر فیشینگ مقاوم است، هم تجربه کاربری روانی ارائه می‌دهد و هم با الزامات معماری Zero Trust سازگار خواهد بود.

موفقیت در پیاده‌سازی OIDC سازمانی مستلزم انتخاب OpenID Provider مناسب، طراحی صحیح معماری، رعایت بهترین رویه‌های امنیتی و آموزش کاربران است. سامانه‌هایی مانند نشانه (neshane.co) با ارائه راهکار جامع IAM و SSO مبتنی بر OIDC و FIDO2، مسیر این مهاجرت را برای سازمان‌های ایرانی هموار کرده‌اند.

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

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

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

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

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

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

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

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