آشنایی با احراز هویت متمرکز مبتنی بر توکن
یکی از مکانیسم هایی که برای تامین امنیت برنامه ها وجود دارد، تایید هویت
مبتنی بر توکن است. به جای استفاده از کوکی ها، از توکن برای تایید اعتبار
کاربر برای هر درخواست ارسالی به سرور استفاده می شود. می خواهیم ببینیم که
این رویکرد چگونه کار می کند و چه مزایایی را ارائه می دهد.
جریان کنترل دسترسی هنگامی شروع می شود که کاربر با نام کاربری و رمز عبور
خود وارد سیستم می شود. اطلاعات هویتی کاربر (اعتبار نامه) به یک سرویس
امنیتی مبتنی بر توکن ارسال می شوند. این سرویس امنیتی مسئول تایید هویت
کاربر است. در صورت موفقیت آمیز بودن تایید هویت اعتبار، یک توکن(نشانه)
امضا شده برای ارسال به مشتری در جواب درخواست ایشان (client) ایجاد می
کند. توکن می تواند شامل اطلاعات کاربر و اطلاعات claim باشد، و روی سرور
مستقر نشده باشد. برنامه مشتری توکن را ذخیره می کند و آن را به همراه هر
درخواست برای دسترسی به منابع به سمت سرور ارسال می کند. برای مثال، مشتری
ممکن است برای دریافت اطلاعات، یک درخواست به یک نقطه انتهایی(endpoint) یک
API ارسال کند، سرور توکن دریافت شده را بررسی و تایید می کند و همراه با
داده ارسالی، پاسخ مشتری را می دهد.
حال که یک دید سطح بالا از احراز هویت بر مبنای توکن پیدا کردید، اجازه
بدهیم بیان کنیم که چرا باید این نوع احراز هویت را انتخاب کنیم. سیستم هایی
با معماری های مدرن اغلب دارای چندین برنامه و API هستند. آنها نیاز دارند
تا از مرورگرها و بسترهای بومی مبتنی بر تلفن همراه پشتیبانی کنند. تایید
هویت مبتنی بر کوکی به خوبی در سیستم های مبتنی بر تک دامنه ها و زیر دامنه
های مربوطه کار می کند. اما این سیستم برای عبور از مرزهای وسیع برنامه ها
و پشتیبانی از مشتری های مبتنی بر تلفن همراه مناسب نیست.
تایید هویت مبتنی بر توکن یک استاندارد در حال توسعه برای برنامه های تک
صفحه ای، برنامه های مبتنی بر تلفن همراه، API های وب و اینترنت اشیاء است
و همچنین از کلاینت های وب مبتنی بر سرور های سنتی پشتیبانی می کند. این
روش یک مکانیسم تایید هویت متمرکزی ارائه می کند که در کل سیستم ما می
تواند کار کند. این سیستم مقیاس پذیری را فراهم می کند و ما را از پیاده
سازی متدهای تایید هویت جداگانه برای هر برنامه نجات می دهد. از آنجا که
این روش از یک رویکرد متمرکز استفاده می کند، تایید هویت مبتنی بر توکن به
ما این امکان را می دهد تا از قابلیت های ورود به سیستم واحد برخوردار
باشیم. ما می توانیم با اطلاعات کاربری خود وارد یکی از برنامه ها شویم و
بدون نیاز به ورود مجدد، به سایر قسمت های سیستم نیز دسترسی پیدا کنیم.
سرانجام، تایید هویت مبتنی بر توکن مزیت stateless بودن (بی وضعیت بودن) را
در اختیار ما قرار می دهد. هر کدام از توکن های مستقل و جامع در سمت مشتری
ذخیره می شود. این داده دارای اطلاعات لازم برای تایید هویت کاربر همراه با
اقلام اطلاعاتی ادعا شده (claim) کاربر است. توکن با هر بار درخواست ارسال
می گردد، بنابراین، دفعات مدیریت وضعیت سرور کمتر خواهد گردید.
منبع:
Lynda.com - ASP.NET.Core.Security
احراز هویت متمرکز مبتنی بر توکن