‫معرفی و تاریخچه‫ ‎Asp.net Core Identity

  • ایمان محمدی
  • ‫۹ ماه قبل، سه شنبه ۱ مهر ۱۳۹۹، ساعت ۱۰:۰۰
  • برنامه نویسی سمت سرور

ASP.NET Core Identity یک سیستم احراز و سطح دسترسی کاربران است که با اصول استاندارد و رعایت نکات امنیتی پیاده سازی شده است. کاربران می توانند با یک نام کاربری و رمز ورود، نام کاربری ایجاد کنند و یا می توانند از ارائه دهنده ورود به سیستم خارجی استفاده کنند مانند Facebook  Google استفاده کنند.

در این مقاله می خواهیم مروری سریع بر تاریخجه این کتابخانه که اولین بار با نام Membership معرفی شد، داشته باشیم :

2005: ASP.NET Membership - ASP.NET 2.0

برای ایجاد جداول باید برنامه aspnet_regsql.exe را اجرا می کردیم و پس از انتخاب دیتابیس جداول مربوطه ساخته می شد و از طریق فایل پیکربندی به برنامه معرفی می شد. در این نسخه هیچ گونه قابلیت سفارشی سازی وجود نداشت.

2011: ASP.NET Simple Membership - ASP.NET 4.5 Web Forms + MVC 4

با EntityFramework  پیاده سازی شده بود همچنین تغییراتی داده شده بود تا با رویکرد MVC سازگار شود.

2012: ASP.NET Universal Providers - ASP.NET 4.5 

پشتیبانی از ارائه دهنده های مختلف از جمله Microsoft Azure SQL Database و SQL Server Compact هدف این نسخه بود.

ASP.NET Identity

بعد از تغییراتی که برای همسو شدن با توسعه دهندگان جهانی از جمله سورس باز شدن ASP.NET MVC، استفاده از کتابخانه های سورس باز رایج، تدوین استاندارد OWIN و ... رخ داد، سیستم مدیریت کاربران برای رفع مشکلات و پاسخگویی به نیاز های جدید کاربران به صورت کامل بازنویسی شد.

2013: ASP.NET Identity 1

تغییرات دراین نسخه به شرح زیر بودند:

  • یک سیستم هویت واحد در تمام بخش های دات نت از جمله ASP.NET MVC, Web Forms, Web Pages, Web API, and SignalR قابل استفاده است.
  • اطلاعات کاربران قابل توسعه است ازجمله افزودن آدرس، تاریخ تولد و ...
  • سفارشی سازی نوع و نحوه ذخیره سازی که می توانید از انواع دیتابیس های رابطه ای و NoSql استفاده کنید.
  • قابلیت تعیین سطح دسترسی برای کاربران 
  • افزودن اطلاعات بیشتری به توکن کاربر توسط Claim ها
  • قابلیت ورود از تامین کننده های خارجی از جمله گوگل،‌ فیس بوک
  • یکپارچگی با OWIN
  • خارج شدن از فریمورک دات نت و استفاده از پکیج های نوگت برای توسعه سریع تر


Identity در این نسخه شامل سه پکیج  زیر می باشد:

Microsoft.AspNet.Identity.Core
Microsoft.AspNet.Identity.EntityFramework
Microsoft.AspNet.Identity.Owin

2014: ASP.NET Identity 2

در نسخه دوم این قابلیت ها اضافه شد:

  • احراز هویت دو مرحله ای نام کاربری و رمز عبور به همراه عامل دوم که می تواند پیامک یا ایمیل باشد.
  • مسدود سازی کاربر پس از چندین بار تلاش ناموفق
  • تایید کاربر از طریق ایمیل
  • بازیابی رمز عبور توسط خود کاربر
  • افزودن Security Stamp برای کنترل خروج کاربر از همه جا
  • قابلیت تعیین نوع کلید اصلی، نسخه قبلی کلید string بود
  • توسعه پارامترهای اعتبار سنجی رمز عبور حروف بزرگ و کوچک، اعداد ،‌علایم خاص و ...


2015: ASP.NET Identity 3

برای نسخه سوم 3.0.0-rc1-final برای  vNext منتشر شد ولی توسعه این نسخه به علت برنامه ریزی جدید و ارائه فریمورک نسخه Core متوقف شد.

2016: ASP.NET Core Identity 1

این نسخه در اصل نسخه سوم بود ولی به جهت تغییر فریم ورک به نسخه اول Core تغییر نام داده شد. قابلیت خاصی به این نسخه اضافه نشده است، باگ ها برطرف شدند و وابستگی ها مطابق .Net Core اصلاح شد و پکیج Owin هم حذف گردید.

Microsoft.AspNetCore.Identity .EntityFrameworkCore
Microsoft.AspNetCore.Identity

2017: ASP.NET Core Identity 2.0

در این نسخه ساختار داخلی Identity تغییرات زیادی  داشته و سعی بر آن شده است استفاده از Identity و سفارشی سازی آن ساده تر باشد.

  • قابلیت استفاده از TOTP به عنوان عامل دوم 2FA اضافه شد. اطلاعات بیشتر
  • برای تنظیمات رمز عبور گزینه RequiredUniqueChars اضافه شد.

2018: ASP.NET Core Identity 2.1

در این نسخه با استفاده از امکان جدید Razor Class Library که در .Net Core معرفی شد بخش UI با قابلیت پشتیبانی از scaffolding  ارایه شد. اطلاعات بیشتر

2019: ASP.NET Core Identity 3

در این نسخه قابلیت جدیدی اضافه نشده است. با توجه تغییرات ساختاری و معرفی متاپکیج Microsoft.AspNetCore.App در نسخه سوم .Net Core برای وابستگی ها اصلی پکیجی نصب نمی شود مثلا برای افزودن سرویس AddIdentity  و یا سرویس SignInManager ولی برای استفاده از نسخه Identity بر روی EFCore باید پکیج زیر را نصب کنیم:

Microsoft.AspNetCore.Identity .EntityFrameworkCore


منابع:

docs.microsoft.com

devblogs.microsoft.com