پیادهسازی مجوز مبتنی بر نقش Keycloak با Blazor WebAssembly و Web API
نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۰۴ ۰۸:۳۴
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
AddOidcAuthentication در کلاس Program برای پیکربندی ارائهدهنده OIDC با مرجع، شناسه مشتری و محدودههای صحیح استفاده میشود. UserOptions.RoleClaim به "role" تنظیم میشود تا با نگاشت Keycloak مطابقت داشته باشد.@Authorize با پارامتر Roles برای محدود کردن دسترسی به صفحات خاص Blazor بر اساس نقشها استفاده میشود (به عنوان مثال، @attribute [Authorize(Roles = "Administrator")] در صفحه "/weather").<AuthorizeView> برای نمایش مشروط عناصر UI بر اساس نقشها استفاده میشود (به عنوان مثال، پنهان کردن منوی "Weather" برای کاربران "Visitor").MultipleRoleClaimsPrincipalFactory سفارشی برای مدیریت claim "role" ایجاد میشود که Keycloak آن را به عنوان آرایهای از رشتهها ارسال میکند. این کارخانه آرایه را به چندین claim جداگانه تبدیل میکند، همانطور که توسط سیستم مجوز داتنت انتظار میرود.AddAccountClaimsPrincipalFactory برای ثبت کارخانه سفارشی در کلاس Program استفاده میشود.[Authorize(Roles = "Administrator")] برای محافظت از نقاط پایانی API استفاده میشود و دسترسی را به کاربرانی با نقشهای خاص محدود میکند.