Authentication এবং Authorization দুটি গুরুত্বপূর্ণ সিকিউরিটি কনসেপ্ট যা অ্যাপ্লিকেশনে ইউজারের সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। যদিও অনেক সময় এগুলোকে একসাথে ব্যবহার করা হয়, তবে এগুলির মধ্যে স্পষ্ট পার্থক্য রয়েছে।
Authentication হলো একটি প্রক্রিয়া যার মাধ্যমে সিস্টেম বা অ্যাপ্লিকেশন নিশ্চিত করে যে, ইউজারটি কে। এটি মূলত ইউজারের পরিচয় যাচাই করার প্রক্রিয়া। Authentication সফল হলে, অ্যাপ্লিকেশন জানবে ইউজারটি প্রকৃতপক্ষে সেই ব্যক্তি কি না।
ধরা যাক, একজন ইউজার username এবং password দিয়ে লগইন করছে। অ্যাপ্লিকেশনটি ইউজারের প্রমাণীকরণ করবে এবং এটি জানাবে যে, ইউজারটি আসলে যে ব্যক্তি দাবি করছে।
if (User.Identity.IsAuthenticated)
{
// ইউজার সঠিকভাবে প্রমাণিত
return View();
}
else
{
// ইউজার সঠিকভাবে প্রমাণিত নয়
return RedirectToAction("Login");
}
এখানে User.Identity.IsAuthenticated যাচাই করছে যে, ইউজারটি প্রমাণিত কি না।
Authorization হলো একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশন বা সিস্টেম নির্ধারণ করে যে, প্রমাণিত ইউজারটি কী কী কাজ বা অ্যাক্সেস করতে পারবে। এটি ইউজারের এক্সেস রাইটস বা অনুমতিগুলো নিয়ন্ত্রণ করে, যেমন কোন ফিচার বা ডেটাতে তাদের অ্যাক্সেস থাকবে।
ধরা যাক, একটি অ্যাপ্লিকেশনে Admin রোলের ইউজারকে বিশেষ কিছু অ্যাক্সেস দেওয়া হয়।
[Authorize(Roles = "Admin")]
public IActionResult AdminDashboard()
{
return View();
}
এখানে, শুধুমাত্র Admin রোলের ইউজাররা AdminDashboard অ্যাক্সেস করতে পারবে।
বিষয় | Authentication | Authorization |
---|---|---|
সংজ্ঞা | ইউজারের পরিচয় যাচাই করা | ইউজারের কাজ বা অ্যাক্সেস অনুমোদন করা |
কাজ | ইউজারের identity যাচাই করে, তাকে প্রমাণিত করে | ইউজারের নির্দিষ্ট কাজ বা রিসোর্সে অ্যাক্সেস অনুমোদন |
প্রক্রিয়া | ইউজারের username এবং password যাচাই | ইউজারের role বা claim এর ভিত্তিতে অনুমোদন |
উদাহরণ | ইউজার লগইন করতে পারে কিনা তা যাচাই করা | ইউজার কোন পৃষ্ঠায় অ্যাক্সেস পাবে কিনা তা নির্ধারণ করা |
উদাহরণ প্রযুক্তি | Cookies, JWT, OAuth, Basic Authentication | Role-based Authorization, Claims-based Authorization, Policy-based Authorization |
ASP.Net MVC এবং ASP.Net Core এ Authentication এবং Authorization ব্যবহারের জন্য কয়েকটি সাধারণ পদ্ধতি রয়েছে:
ASP.Net Core এ Authentication এবং Authorization পরিচালনা করার জন্য ASP.Net Core Identity বা JWT Bearer Tokens ব্যবহৃত হয়।
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options => {
options.LoginPath = "/Account/Login";
});
services.AddAuthorization(options => {
options.AddPolicy("AdminPolicy", policy => policy.RequireRole("Admin"));
});
}
ASP.Net MVC তে [Authorize] অ্যাট্রিবিউট ব্যবহার করে Authorization পরিচালনা করা হয়।
[Authorize(Roles = "Admin")]
public ActionResult AdminOnlyPage()
{
return View();
}
সারাংশ: