Authentication এবং Authorization এর মধ্যে পার্থক্য

Web Development - এএসপি ডট (ASP.Net) - Authentication এবং Authorization |

Authentication এবং Authorization দুটি গুরুত্বপূর্ণ সিকিউরিটি কনসেপ্ট যা অ্যাপ্লিকেশনে ইউজারের সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। যদিও অনেক সময় এগুলোকে একসাথে ব্যবহার করা হয়, তবে এগুলির মধ্যে স্পষ্ট পার্থক্য রয়েছে।


Authentication (প্রমাণীকরণ)

Authentication হলো একটি প্রক্রিয়া যার মাধ্যমে সিস্টেম বা অ্যাপ্লিকেশন নিশ্চিত করে যে, ইউজারটি কে। এটি মূলত ইউজারের পরিচয় যাচাই করার প্রক্রিয়া। Authentication সফল হলে, অ্যাপ্লিকেশন জানবে ইউজারটি প্রকৃতপক্ষে সেই ব্যক্তি কি না।

Authentication এর পদ্ধতি:

  • Username এবং Password: সাধারণত ইউজারের পরিচয় যাচাই করার জন্য username এবং password ব্যবহার করা হয়।
  • OTP (One-Time Password): ইউজারের পরিচয় নিশ্চিত করতে এককালীন পাসওয়ার্ড পাঠানো হয়।
  • OAuth: তৃতীয় পক্ষের মাধ্যমে Authentication করা হয়, যেমন Google, Facebook বা Microsoft একাউন্টের মাধ্যমে লগইন করা।
  • JWT (JSON Web Token): একটি token ব্যবহার করে ইউজারের পরিচয় যাচাই করা হয়।

Authentication এর উদাহরণ:

ধরা যাক, একজন ইউজার username এবং password দিয়ে লগইন করছে। অ্যাপ্লিকেশনটি ইউজারের প্রমাণীকরণ করবে এবং এটি জানাবে যে, ইউজারটি আসলে যে ব্যক্তি দাবি করছে।

if (User.Identity.IsAuthenticated)
{
    // ইউজার সঠিকভাবে প্রমাণিত
    return View();
}
else
{
    // ইউজার সঠিকভাবে প্রমাণিত নয়
    return RedirectToAction("Login");
}

এখানে User.Identity.IsAuthenticated যাচাই করছে যে, ইউজারটি প্রমাণিত কি না।


Authorization (অনুমোদন)

Authorization হলো একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশন বা সিস্টেম নির্ধারণ করে যে, প্রমাণিত ইউজারটি কী কী কাজ বা অ্যাক্সেস করতে পারবে। এটি ইউজারের এক্সেস রাইটস বা অনুমতিগুলো নিয়ন্ত্রণ করে, যেমন কোন ফিচার বা ডেটাতে তাদের অ্যাক্সেস থাকবে।

Authorization এর পদ্ধতি:

  • Role-based Authorization: ইউজারের role অনুযায়ী অ্যাক্সেস প্রদান করা হয়। যেমন, Admin, User, Guest ইত্যাদি।
  • Claims-based Authorization: ইউজারের claims অনুযায়ী তাদের অনুমতি দেয়া হয়, যেমন, age, subscription level ইত্যাদি।
  • Policy-based Authorization: একাধিক শর্তের ভিত্তিতে অনুমতি প্রদান করা হয়।

Authorization এর উদাহরণ:

ধরা যাক, একটি অ্যাপ্লিকেশনে Admin রোলের ইউজারকে বিশেষ কিছু অ্যাক্সেস দেওয়া হয়।

[Authorize(Roles = "Admin")]
public IActionResult AdminDashboard()
{
    return View();
}

এখানে, শুধুমাত্র Admin রোলের ইউজাররা AdminDashboard অ্যাক্সেস করতে পারবে।


Authentication এবং Authorization এর মধ্যে পার্থক্য

বিষয়AuthenticationAuthorization
সংজ্ঞাইউজারের পরিচয় যাচাই করাইউজারের কাজ বা অ্যাক্সেস অনুমোদন করা
কাজইউজারের identity যাচাই করে, তাকে প্রমাণিত করেইউজারের নির্দিষ্ট কাজ বা রিসোর্সে অ্যাক্সেস অনুমোদন
প্রক্রিয়াইউজারের username এবং password যাচাইইউজারের role বা claim এর ভিত্তিতে অনুমোদন
উদাহরণইউজার লগইন করতে পারে কিনা তা যাচাই করাইউজার কোন পৃষ্ঠায় অ্যাক্সেস পাবে কিনা তা নির্ধারণ করা
উদাহরণ প্রযুক্তিCookies, JWT, OAuth, Basic AuthenticationRole-based Authorization, Claims-based Authorization, Policy-based Authorization

Authentication এবং Authorization এর সম্পর্ক

  • Authentication এবং Authorization একসাথে কাজ করে সিস্টেম সিকিউরিটি নিশ্চিত করতে। প্রথমে Authentication সম্পন্ন হয়, যেখানে ইউজারটি প্রমাণিত হয়। তারপর Authorization প্রক্রিয়ায়, প্রমাণিত ইউজারটি তার রোল বা পারমিশন অনুযায়ী নির্দিষ্ট কাজগুলো করতে পারে।
  • Authentication শুধুমাত্র identity যাচাই করে, যখন Authorization নির্ধারণ করে ইউজারের নির্দিষ্ট permissions বা rights

ASP.Net এ Authentication এবং Authorization ব্যবহার

ASP.Net MVC এবং ASP.Net Core এ Authentication এবং Authorization ব্যবহারের জন্য কয়েকটি সাধারণ পদ্ধতি রয়েছে:

১. ASP.Net Core Authentication

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 Authorization

ASP.Net MVC তে [Authorize] অ্যাট্রিবিউট ব্যবহার করে Authorization পরিচালনা করা হয়।

[Authorize(Roles = "Admin")]
public ActionResult AdminOnlyPage()
{
    return View();
}

সারাংশ:

  • Authentication ইউজারের পরিচয় যাচাই করার প্রক্রিয়া, যা নিশ্চিত করে যে ইউজারটি প্রকৃতপক্ষে কে।
  • Authorization ইউজারের অনুমতি যাচাই করে, যা সিদ্ধান্ত নেয় ইউজার কী করতে পারবে।
Content added By
Promotion