آموزش Authentication مبتنی بر Claims در Asp.net Core 2.2
ابزار Identity در ASP Core مسئولیت تشخیص هویت و کنترل دسترسی را به عهده دارد. این ابزار در نسخههای قبل هم وجود داشت اما مانند سایر قسمتها بازنویسی شده است. در اینجا به سه روش اصلی کنترل دسترسی در Idenity Core میپردازیم.
روش Role-Based
در این روش کاربر بر اساس سمتی که دارد به بخشهایی از سایت دسترسی پیدا میکند. مثلاً دسترسی به بخش مدیریت سایت فقط برای کاربرهایی با سمت Admin میسر است. در اینجا ما یک جدول برای نگهداری سمتها و یک جدول هم برای نگهداری رابطه بین کاربران با هر سمت داریم و یک کاربر میتواند چندین سمت داشته باشد.
روش Claims-Based
نسخهٔ جدید ASP Core تأکید زیادی به استفاده از این روش دارد. در این روش یک کاربر میتواند چند هویت داشته باشد. هر هویت مشخصههای خودش را دارد. دسترسیهای یک کاربر بر اساس مشخصههای هر هویت فرق میکند. مثلاً شما برای گرفتن وام به بانک مراجعه میکنید و برای شناسایی کارت ملی ارائه میکنید. مشخصات کارت ملی بخشی از مشخصات شما شامل نام و تاریخ تولد را نشان میدهد و یکی از هویتهای شما محسوب میشود. حالا اگر بخواهید وام دانشجویی بگیرید باید ثابت کنید دانشجو هستید. در این مرحله کارت دانشجویی ارائه میکنید که شامل نام دانشگاه و شمارهٔ دانشجویی است. در سیستم Claims-Based انواع مشخصات شما در یک جدول key/value ذخیره میشود و بعداً میتوانید دسترسی به اکشنها و کنترلر ها را بر اساس آن محدود کنید.
روش Policy-Based
این شیوه ترکیبی از روشهای قبل است. میتوانید برای اجرای هرکدام از اکشنها یک سیاست یا Policy تعریف کنید که میتواند شامل مجموعه از سمتها و مشخصههای هویتی (Claims) باشد.علاوه بر اینها چند روش دیگر هم وجود دارد و باید گفت نسخهٔ جدید از هر نظر کامل است. بهطورکلی پیاده کردن سیستم امنیتی پیچیده است و بهتر است همیشه از Identity استفاده کنید. این سیستم بسیاری از نکات مهم مانند رمزنگاری را بهخوبی رعایت کرده است و سطح امنیت سایت را به میزان قابلتوجهی بالا میبرد.
مواردی که در این آموزش یاد خواهید گرفت:
- آشنایی به Clean Architecture و پیادهسازی آن در پروژه طبق معماری Clean Architecture
- نگهداری لاگین کاربر در یک مدت خاص
- سفارشیسازی Claim ها
- کانفیگ و پیادهسازی Claim ها و Authentication
- دسترسی به موارد Claim ها از طریق Identity
سرفصلهای دوره آموزشی:
– جلسه اول:
توضیحاتی در مورد Clean Architecture، ایجاد پروژه، لایهبندی پروژه، ایجاد دیتابیس
– جلسه دوم:
ایجاد Interface مربوط به کاربران، تعریف Service برای Interface، اضافه کردن قالب به پروژه (جهت پروژه محور بودن آموزش)
– جلسه سوم:
پیکربندی Authentication، پیادهسازی Claim در پروژه و دسترسی به Claim ها از طریق Identity
نوشته آموزش Authentication مبتنی بر Claims در Asp.net Core 2.2 اولین بار در دانشجویار پدیدار شد.
آموزش Authentication مبتنی بر Claims در Asp.net Core 2.2 : این عنوان و سرفصل ها را اعلام کردید اما مطالب مرتبط با سرفصل ها را مشخص نکردید چطور قابل استفاده است .