OAuth এবং OpenID Connect Integration

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) Authentication এবং Authorization |
237
237

OAuth এবং OpenID Connect হলো দুটি জনপ্রিয় অথেন্টিকেশন ও অথরাইজেশন প্রোটোকল যা আধুনিক ওয়েব অ্যাপ্লিকেশন এবং API নিরাপত্তায় গুরুত্বপূর্ণ ভূমিকা পালন করে। ASP.NET Core অ্যাপ্লিকেশনগুলিতে নিরাপত্তা সংক্রান্ত কাজের জন্য এই প্রোটোকলগুলির ইন্টিগ্রেশন খুবই সহজ এবং শক্তিশালী।

OAuth কী?

OAuth (Open Authorization) একটি অথরাইজেশন ফ্রেমওয়ার্ক যা ইউজারের ক্রেডেনশিয়াল না নিয়ে তৃতীয় পক্ষের অ্যাপ্লিকেশনকে ইউজারের রিসোর্স অ্যাক্সেসের অনুমতি দেয়। এই প্রোটোকল মূলত অ্যাপ্লিকেশনের মধ্যে সুরক্ষিত ডেটা শেয়ার করার জন্য ব্যবহৃত হয়।

উদাহরণস্বরূপ, আপনি যদি একটি অ্যাপ্লিকেশনে গুগল বা ফেসবুক অ্যাকাউন্ট ব্যবহার করে লগ ইন করেন, তবে এটি OAuth প্রোটোকলের মাধ্যমে ঘটে। OAuth ইউজারকে তার ক্রেডেনশিয়াল (যেমন, পাসওয়ার্ড) সরাসরি শেয়ার না করে তৃতীয় পক্ষের অ্যাপ্লিকেশনকে এক্সেস টোকেন প্রদান করে। এই টোকেনটি ব্যবহার করে অ্যাপ্লিকেশন নির্দিষ্ট রিসোর্স (যেমন, ইউজারের প্রোফাইল বা ফটো) অ্যাক্সেস করতে পারে।


OpenID Connect কী?

OpenID Connect (OIDC) হল OAuth 2.0 এর উপর একটি লেয়ার যা অথেন্টিকেশন প্রদান করে। OAuth শুধুমাত্র অথরাইজেশন দিয়ে থাকে, তবে OpenID Connect ইউজারের পরিচয় যাচাই করার জন্য একটি শীর্ষ স্তরের প্রটোকল সরবরাহ করে। এটি ইউজারের লগইন প্রক্রিয়া সহজ করে তোলে এবং অ্যাপ্লিকেশনকে নিশ্চিত করতে সহায়তা করে যে তারা যে ইউজারের পরিচয় যাচাই করছে, সেই ইউজারের আসলই বা না।

যদি OAuth একটি এক্সেস টোকেন প্রদান করে, তবে OpenID Connect একটি ID Token প্রদান করে যা ইউজারের পরিচয় নিশ্চিত করে।


OAuth এবং OpenID Connect ইন্টিগ্রেশন ASP.NET Core-এ

ASP.NET Core-এ OAuth এবং OpenID Connect ইন্টিগ্রেশন করার জন্য, আপনি ASP.NET Core Identity এবং Authentication Middleware ব্যবহার করতে পারেন। এর মাধ্যমে আপনি গুগল, ফেসবুক, গিটহাব বা অন্য কোনো আইডেন্টিটি প্রোভাইডারের সাথে সিঙ্ক্রোনাইজ করতে পারবেন।


OAuth এবং OpenID Connect কনফিগারেশন

  1. NuGet প্যাকেজ ইনস্টলেশন:

    প্রথমে, ASP.NET Core অ্যাপ্লিকেশনে OAuth এবং OpenID Connect ইন্টিগ্রেশন করার জন্য Microsoft.AspNetCore.Authentication.OAuth এবং Microsoft.AspNetCore.Authentication.OpenIdConnect প্যাকেজ ইনস্টল করুন।

    dotnet add package Microsoft.AspNetCore.Authentication.OAuth
    dotnet add package Microsoft.AspNetCore.Authentication.OpenIdConnect
    
  2. Startup.cs কনফিগারেশন:

    Startup.cs ফাইলে Authentication Middleware কনফিগার করা হবে। এখানে OpenID Connect প্রোভাইডার কনফিগার করা হচ্ছে।

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options =>
        {
            options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
        .AddCookie(options =>
        {
            options.LoginPath = "/Account/Login";
        })
        .AddOpenIdConnect(options =>
        {
            options.Authority = "https://identityprovider.com"; // Identity provider URL
            options.ClientId = "YourClientId";
            options.ClientSecret = "YourClientSecret";
            options.ResponseType = "code";
            options.SaveTokens = true;
            options.Scope.Add("openid");
            options.Scope.Add("profile");
            options.Scope.Add("email");
            options.CallbackPath = "/signin-oidc";
        });
    }
    

    এখানে:

    • Authority: এখানে আপনাকে প্রোভাইডারের অথেন্টিকেশন URL দিতে হবে (যেমন গুগল বা মাইক্রোসফট অ্যাকাউন্টের URL)।
    • ClientId এবং ClientSecret: এই দুটি আপনি প্রোভাইডারের ডেভেলপার কনসোল থেকে পাবেন।
    • CallbackPath: যেখানে প্রোভাইডার রিডাইরেক্ট করবে যখন অথেন্টিকেশন সফল হবে।
  3. Authentication চ্যালেঞ্জ:

    আপনি যখন ইউজারকে অথেন্টিকেট করতে চান, তখন ChallengeAsync মেথড ব্যবহার করতে হবে।

    public async Task<IActionResult> Login()
    {
        await HttpContext.ChallengeAsync(OpenIdConnectDefaults.AuthenticationScheme, new AuthenticationProperties
        {
            RedirectUri = "/"
        });
        return RedirectToAction("Index", "Home");
    }
    

    এই কোডটি ইউজারকে OpenID Connect প্রোভাইডারে রিডাইরেক্ট করবে।

  4. Logout:

    Logout প্রক্রিয়াটি এমনভাবে কনফিগার করা হয় যাতে ইউজারকে সিস্টেম থেকে লগ আউট করার পর প্রোভাইডারের সেশনও শেষ হয়ে যায়।

    public async Task<IActionResult> Logout()
    {
        await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
        await HttpContext.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme, new AuthenticationProperties
        {
            RedirectUri = "/"
        });
        return RedirectToAction("Index", "Home");
    }
    

OAuth এবং OpenID Connect ব্যবহারের সুবিধা

  • নিরাপত্তা: ইউজারের পাসওয়ার্ড কখনো তৃতীয় পক্ষের অ্যাপ্লিকেশনের কাছে সরাসরি শেয়ার করা হয় না, ফলে নিরাপত্তা নিশ্চিত হয়।
  • সহজ লগইন: ইউজারদের জন্য বিভিন্ন সোসাল প্ল্যাটফর্ম যেমন গুগল, ফেসবুক, গিটহাব ইত্যাদি থেকে লগইন করার সুবিধা প্রদান করা হয়।
  • Scalability: এটি বিভিন্ন অ্যাপ্লিকেশন এবং সার্ভিসের মধ্যে একক লগইন ব্যবস্থা (SSO) প্রদান করতে সক্ষম।
  • ডেটা শেয়ারিং: প্রোভাইডার বা সিস্টেমের বাইরে ডেটা শেয়ার করা সহজ হয়ে যায় এবং এই প্রক্রিয়াটি নিরাপদ থাকে।

সারাংশ

OAuth এবং OpenID Connect আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির নিরাপত্তা এবং ইউজার অথেন্টিকেশন সহজ এবং নিরাপদ করে তোলে। ASP.NET Core-এ এই দুটি প্রোটোকলকে ইন্টিগ্রেট করা অনেক সহজ এবং এটি একটি স্কেলেবল অথেন্টিকেশন ব্যবস্থা প্রদান করে, যা ব্যবহারকারীদের তাদের সামাজিক অ্যাকাউন্টের মাধ্যমে দ্রুত এবং নিরাপদ লগইন করার সুযোগ দেয়।

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

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

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

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