این مقاله نحوه پیادهسازی احراز هویت چند مرحلهای (Step Up Authentication) با استفاده از پروتکل OAuth 2.0 Step Up Authentication Challenge Protocol (RFC 9470) را نشان میدهد. برنامه از ASP.NET Core برای پیادهسازی API، برنامه وب و ارائهدهنده هویت استفاده میکند. Duende IdentityServer برای پیادهسازی استاندارد OpenID Connect و همچنین OAuth DPoP token binding و سایر استانداردهای OAuth استفاده میشود.
این راه حل از چندین کانتینر در یک محیط میزبانی کانتینر استفاده میکند و Azure Container Apps به عنوان راه حل ترجیحی برای استقرار در فضای ابری پیشنهاد میشود. API به توکنهای دسترسی نیاز دارد و OAuth DPoP token binding را اجباری میکند. برنامه وب از OpenID Connect برای احراز هویت استفاده میکند و همچنین نیاز به توکنهای دسترسی DPoP دارد. در صورت دریافت پاسخ 401، برنامه وب راهی برای احراز هویت مجدد با استفاده از احراز هویت و شناسایی مورد نیاز ارائه میدهد.
ارائهدهنده هویت باید درخواست احراز هویت چند مرحلهای را مدیریت کند. این کار با استفاده از کلاس پایه AuthorizeInteractionResponseGenerator در Duende IdentityServer پیادهسازی شده است. این کلاس تمام درخواستهای ورود به سیستم، نه فقط درخواستهای مرحلهای را مدیریت میکند. هنگام پیادهسازی این ویژگی، پشتیبانی و آزمایش از چندین جریان ورود به سیستم ضروری است. ارائهدهنده هویت از ASP.NET Core Identity با یک پایگاه داده SQL Server استفاده میکند. پایگاه داده با استفاده از سرویس .NET Worker و مهاجرتهای Entity Framework Core مهاجرت داده میشود.
برنامهها به صورت محلی با استفاده از Microsoft Aspire اجرا و تنظیم میشوند که پیچیدگی ایجاد و میزبانی کانتینرهای محلی را کاهش میدهد و همچنین استقرار محیطهای حرفهای مانند Azure Container Apps را آسان میکند. برای اعتبارسنجی الزامات سطح احراز هویت و سطح شناسایی احراز هویت از AuthorizationHandler استفاده میشود. این هندلر بررسی میکند که آیا ادعاهای مورد نیاز دارای مقدار مورد نیاز هستند یا خیر.
مشاهده مطلب اصلی