Authentication এর মৌলিক ধারণা (Cookie-based, JWT, OAuth)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) ASP.NET Core Authentication এবং Authorization |
209
209

Authentication হলো এমন একটি প্রক্রিয়া, যা নিশ্চিত করে যে একটি অ্যাপ্লিকেশনে প্রবেশকারী ব্যবহারকারী বৈধ এবং অনুমোদিত কিনা। Authentication সঠিকভাবে কাজ করার মাধ্যমে অ্যাপ্লিকেশনটি নিশ্চিত হয় যে ব্যবহারকারী কে। এটি একটি নিরাপত্তা ব্যবস্থার অন্যতম গুরুত্বপূর্ণ ধাপ।

ASP.NET Core-এ Authentication বিভিন্ন পদ্ধতি ব্যবহার করে ইমপ্লিমেন্ট করা যায়, যেমন Cookie-based Authentication, JWT (JSON Web Token) এবং OAuth


Authentication কীভাবে কাজ করে

Authentication সাধারণত তিনটি ধাপে কাজ করে:

  1. Credential সংগ্রহ করা: ব্যবহারকারী তার ক্রেডেনশিয়াল (যেমন ইউজারনেম এবং পাসওয়ার্ড) প্রদান করে।
  2. Credential যাচাই করা: অ্যাপ্লিকেশন বা Authentication সার্ভার ক্রেডেনশিয়াল যাচাই করে।
  3. Access প্রদান করা: ক্রেডেনশিয়াল বৈধ হলে ব্যবহারকারীকে সিস্টেমে প্রবেশ করার অনুমতি দেওয়া হয়।

Authentication সফল হলে সাধারণত একটি Token বা Session তৈরি হয়, যা ব্যবহারকারীকে সিস্টেমে অনুমোদিত রাখতে ব্যবহৃত হয়।


Cookie-based Authentication

ধারণা

Cookie-based Authentication হলো ক্লাসিক্যাল Authentication পদ্ধতি, যেখানে ব্যবহারকারীর লগইন সফল হলে সার্ভারে একটি সেশন তৈরি হয় এবং ক্লায়েন্টের ব্রাউজারে একটি Cookie পাঠানো হয়। এই Cookie প্রতিটি অনুরোধে সার্ভারে ফেরত পাঠানো হয়, যা ব্যবহারকারীকে যাচাই করতে সাহায্য করে।

বৈশিষ্ট্য

  • সার্ভার সেশনের অবস্থা ট্র্যাক করে।
  • ক্লায়েন্ট ব্রাউজারে Cookie সংরক্ষণ করা হয়।
  • সাধারণত ছোট অ্যাপ্লিকেশনের জন্য কার্যকর।

কাজের ধাপ

  1. ব্যবহারকারী লগইন করে এবং সার্ভারে সেশন তৈরি হয়।
  2. সার্ভার থেকে একটি Cookie ক্লায়েন্টে পাঠানো হয়।
  3. ক্লায়েন্ট প্রতিটি অনুরোধের সাথে Cookie পাঠায় এবং সার্ভার এটি যাচাই করে।

উদাহরণ

services.AddAuthentication("CookieAuth")
    .AddCookie("CookieAuth", options =>
    {
        options.LoginPath = "/Account/Login";
        options.Cookie.Name = "AuthCookie";
    });

JWT (JSON Web Token)

ধারণা

JWT (JSON Web Token) একটি টোকেন-ভিত্তিক Authentication পদ্ধতি, যেখানে সার্ভার একটি সাইন করা টোকেন জেনারেট করে এবং ক্লায়েন্টে পাঠায়। এই টোকেনটি প্রতিটি অনুরোধের সাথে সার্ভারে ফেরত পাঠানো হয় এবং যাচাই করা হয়।

বৈশিষ্ট্য

  • Stateless Authentication পদ্ধতি (কোনো সেশন সংরক্ষণ করা হয় না)।
  • টোকেনটি ক্লায়েন্টে সংরক্ষণ করা হয় (সাধারণত LocalStorage বা Cookie তে)।
  • RESTful API এবং মাইক্রোসার্ভিসের জন্য উপযুক্ত।

কাজের ধাপ

  1. ব্যবহারকারী লগইন করে এবং সার্ভার একটি JWT টোকেন তৈরি করে।
  2. ক্লায়েন্টে টোকেন সংরক্ষণ করা হয়।
  3. প্রতিটি অনুরোধে টোকেন Authorization Header-এর মাধ্যমে পাঠানো হয়।
  4. সার্ভার টোকেন যাচাই করে এবং প্রবেশাধিকার প্রদান করে।

উদাহরণ

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,
        ValidIssuer = "yourIssuer",
        ValidAudience = "yourAudience",
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yourSecretKey"))
    };
});

OAuth

ধারণা

OAuth (Open Authorization) হলো একটি ওপেন স্ট্যান্ডার্ড প্রোটোকল, যা তৃতীয় পক্ষের অ্যাপ্লিকেশনকে ব্যবহারকারীর ডেটা অ্যাক্সেস করার অনুমতি দেয়, কিন্তু তাদের পাসওয়ার্ড শেয়ার করতে হয় না। এটি টোকেন ভিত্তিক Authentication পদ্ধতি।

বৈশিষ্ট্য

  • বহিরাগত সিস্টেমের মাধ্যমে অনুমোদন (যেমন Google, Facebook)।
  • নিরাপদ ডেটা শেয়ারিং।
  • ব্যবহারকারীর ডেটার উপর নিয়ন্ত্রণ।

কাজের ধাপ

  1. ব্যবহারকারী একটি তৃতীয় পক্ষের পরিষেবায় লগইন করে।
  2. তৃতীয় পক্ষ একটি Access Token প্রদান করে।
  3. ক্লায়েন্ট এই টোকেন ব্যবহার করে সার্ভারের ডেটা অ্যাক্সেস করে।

উদাহরণ

ASP.NET Core-এ OAuth ইমপ্লিমেন্ট করার জন্য Microsoft.AspNetCore.Authentication.OAuth প্যাকেজ ব্যবহার করা হয়।

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
})
.AddGoogle(options =>
{
    options.ClientId = "yourClientId";
    options.ClientSecret = "yourClientSecret";
});

Authentication এর তুলনা

পদ্ধতিবৈশিষ্ট্যব্যবহারের ক্ষেত্র
Cookie-basedসার্ভারে সেশন সংরক্ষণ এবং ক্লায়েন্টে Cookie ব্যবহার করে।ছোট ওয়েব অ্যাপ্লিকেশন।
JWTStateless, ক্লায়েন্টে টোকেন সংরক্ষণ এবং প্রতিটি অনুরোধে পাঠানো হয়।RESTful API এবং মাইক্রোসার্ভিস।
OAuthতৃতীয় পক্ষের পরিষেবা থেকে Access Token ব্যবহার করে।বহিরাগত পরিষেবার মাধ্যমে ডেটা অ্যাক্সেস।

Authentication এর সুবিধা

  • নিরাপত্তা: ব্যবহারকারীর বৈধতা নিশ্চিত করে।
  • স্কেলযোগ্যতা: JWT এবং OAuth-এর মতো পদ্ধতি সার্ভার লোড কমায়।
  • মডুলারিটি: বিভিন্ন Authentication স্কিম সহজেই ইমপ্লিমেন্ট করা যায়।

Authentication অ্যাপ্লিকেশনের নিরাপত্তার মূল ভিত্তি এবং এটি ব্যবহারকারীর অভিজ্ঞতা উন্নত করার পাশাপাশি ডেটার সুরক্ষাও নিশ্চিত করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion