در دنیای OpenID Connect و OAuth 2.0، کلیدهای امضا اساس اعتماد هستند. آنها اطمینان میدهند که توکنهای صادر شده توسط ارائهدهنده هویت (IdP) معتبر هستند و دستکاری نشدهاند. مدیریت این کلیدها، چه به صورت دستی و چه به صورت خودکار، جنبه مهمی از اجرای امن IdentityServer است.
این مقاله به بررسی دلایل فنی چرخش کلید، نحوه مدیریت آن در Duende IdentityServer و بهترین روشها برای پیادهسازی راهکارهای هویت سطح تولید میپردازد.
در هسته اصلی خود، یک ارائهدهنده OpenID Connect مانند Duende IdentityServer توکنهای JSON Web (JWT) را صادر میکند که از نظر رمزنگاری امضا شدهاند. در حالی که یک JWT میتواند به طور تئوری در قالب بدون امضا ایجاد شود، این امر یک خطر امنیتی ایجاد میکند و آن را در برابر دستکاری آسیبپذیر میسازد. به عبارت دیگر: برای هرگونه استفاده عملی و امن، یک JWT باید امضا شود.
هنگامی که یک برنامه کاربردی یا API یک توکن امضا شده دریافت میکند، میتواند امضا را با استفاده از کلید عمومی منتشر شده در endpoint JSON Web Key Set (JWKS) تأیید کند. فرآیند امضا بر اساس رمزنگاری نامتقارن استوار است که معمولاً از الگوریتمهای RSA یا ECDSA استفاده میکند. Duende IdentityServer کلید خصوصی را در اختیار دارد و از آن برای امضای توکنها استفاده میکند، در حالی که برنامههای کاربردی و APIها از کلید عمومی مربوطه برای تأیید امضاها استفاده میکنند. این جداسازی یک مدل امنیتی قدرتمند را فراهم میکند: کلید خصوصی هرگز از ارائهدهنده هویت (IdP) شما خارج نمیشود، در حالی که هر طرفی میتواند اعتبار توکن را تأیید کند.
مشاهده مطلب اصلی