برای ساختن یک برنامه ایمن، باید هویت کاربرانی را که قصد دارند به بخش
های محفاظت شده دسترسی پیدا کنند، تأیید کنیم. احراز هویت فرآیندی است که
در آن اطمینان میدهیم کاربر همان شخصی است که ادعا می کند. در برنامه
نمونه خود، دسترسی به پورتال دانش آموزان را به گونه ای محدود می کنیم که
فقط کاربران احراز هویت شده به آن بخش دسترسی داشته باشند. این کار به این
دلیل است که پورتال، اطلاعات محافظت شده ای مانند نمرات دانش آموزان را
نمایش می دهد. دانشآموزان ابتدا باید حسابهای کاربری با مشخصات لازم برای
ورود ایجاد کنند و سپس هویت خود را در صفحه ورود به سیستم تأیید کنند.
رویکردهای مختلفی برای پیاده سازی احراز هویت وجود دارد، و ما دو گزینه
پیشنهادی را بررسی خواهیم کرد.
اولین رویکرد اضافه کردن احراز هویت محلی مبتنی بر کوکی با ASP.NET Core identity است.
سپس
به احراز هویت مبتنی بر توکن می پردازیم. هنگامی که یک کاربر با موفقیت
تایید اعتبار گردید و هویت خود را تأیید کرد، ما باید کارهایی را که کاربر
مجاز به انجام آن در برنامه هست، کنترل کنیم.
مجوز(Authorization)
فرآیندی است که مشخص می کند کاربر چه حقوق خاصی در برنامه ما دارد یعنی در
اصل اجازه انجام چه کار هایی را در سیستم دارد.
به عنوان مثال،
دانشجویان یک کلاس مشخص تنها مجاز به "مشاهده" نمرات تعیین شده توسط اساتید
خود هستند. و به هیچ عنوان آنها مجاز به افزودن یا ویرایش این نمرات
نیستند. از سوی دیگر، اساتید می توانند نمرات دانشجویان را اضافه و ویرایش
کنند. این نمونه ای از مجوز مبتنی بر نقش است. هنگام پیاده سازی مجوز، باید
اصل "حداقل امتیاز" را اعمال کنیم. این بدان معناست که یک کاربر فقط باید
مجوز انجام کارهای خود را داشته باشد و هیچ مجوز و دسترسی دیگری فراتر از
آن وجود ندارد.