OAuth এবং OpenID Connect ইন্টিগ্রেশন

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) Authentication এবং Authorization |
204
204

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

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


OAuth 2.0 প্রটোকল

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

OAuth 2.0 সাধারণত এই প্রক্রিয়া অনুসরণ করে:

  1. ইউজার অথেন্টিকেশন: ইউজার তাদের পরিচয় প্রদান করে (উদাহরণস্বরূপ, গুগল বা ফেসবুকের মাধ্যমে লগ ইন)।
  2. অথোরাইজেশন কোড: যদি ইউজার লগ ইন করে তবে OAuth সার্ভার একটি অথোরাইজেশন কোড প্রদান করে।
  3. অ্যাক্সেস টোকেন: অ্যাপ্লিকেশন এই কোডের মাধ্যমে OAuth সার্ভার থেকে অ্যাক্সেস টোকেন পায়, যা API রিকোয়েস্টে ব্যবহার করা হয়।

OpenID Connect (OIDC)

OpenID Connect (OIDC) হল OAuth 2.0 এর উপর ভিত্তি করে তৈরি একটি অথেন্টিকেশন প্রটোকল। OIDC OAuth 2.0 এর মাধ্যমে পরিচয়ের যাচাই (Authentication) করার ক্ষমতা প্রদান করে, যা মূলত একটি ব্যবহৃত টোকেনের মাধ্যমে ব্যবহারকারীর তথ্য পাওয়া যায়।

OIDC একটি "ID Token" প্রদান করে, যা ব্যবহারকারীর পরিচয় নিশ্চিত করার জন্য ব্যবহৃত হয়। এর মাধ্যমে, ক্লায়েন্ট অ্যাপ্লিকেশনটি ব্যবহারকারীর পরিচয় ও প্রোফাইল তথ্য পেতে পারে। এই প্রক্রিয়া সাধারণত OAuth 2.0 এর অ্যাক্সেস টোকেন ব্যবহার করে হয়।


OAuth এবং OpenID Connect ইন্টিগ্রেশন ASP.Net MVC-তে

ASP.Net MVC-তে OAuth এবং OpenID Connect ইন্টিগ্রেট করতে, IdentityServer4 অথবা ASP.Net Core Identity ব্যবহার করা যেতে পারে। তবে এখানে, OAuth 2.0 এবং OpenID Connect ইন্টিগ্রেট করতে OAuth 2.0 প্রোভাইডার (যেমন গুগল, ফেসবুক) ব্যবহার করে একটি সাধারণ উদাহরণ দেয়া হলো।

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

প্রথমে, ASP.Net MVC অ্যাপ্লিকেশনে OAuth এবং OpenID Connect এর সাপোর্টের জন্য কিছু NuGet প্যাকেজ ইনস্টল করতে হবে। এগুলোর মধ্যে সবচেয়ে জনপ্রিয় হল Microsoft.Owin.Security.OAuth এবং Microsoft.Owin.Security.OpenIdConnect

Install-Package Microsoft.Owin.Security.OAuth
Install-Package Microsoft.Owin.Security.OpenIdConnect

2. Authentication Middleware কনফিগার করা

পরবর্তী ধাপে, OAuth এবং OpenID Connect কনফিগার করার জন্য Startup.cs ফাইলে মডিফিকেশন করতে হবে।

public void Configuration(IAppBuilder app)
{
    // OAuth2 Authentication
    app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new PathString("/token"),
        Provider = new OAuthProvider(),
        AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
        AllowInsecureHttp = true
    });

    // OpenID Connect Authentication
    app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
    {
        ClientId = "your-client-id",
        Authority = "https://your-identity-provider.com",
        RedirectUri = "https://your-redirect-uri",
        ResponseType = "id_token token",
        Scope = "openid profile",
        SignInAsAuthenticationType = "Cookies",
        Notifications = new OpenIdConnectAuthenticationNotifications
        {
            AuthenticationFailed = context =>
            {
                // Handle authentication failure
                return Task.CompletedTask;
            }
        }
    });
}

এখানে, OAuth সার্ভার এবং OpenID Connect সার্ভার কনফিগার করা হয়েছে। ClientId, Authority, এবং RedirectUri এর মান আপনার OAuth/OpenID প্রোভাইডার থেকে পাওয়া যাবে।

3. Authentication Callback হ্যান্ডলিং

OpenID Connect সার্ভার থেকে সফলভাবে প্রাপ্ত ID Token এবং Access Token হ্যান্ডল করার জন্য আপনি AuthenticationCallback মেথড ব্যবহার করতে পারেন।

public ActionResult Callback(string id_token, string access_token)
{
    if (!string.IsNullOrEmpty(id_token))
    {
        var payload = ParseIdToken(id_token);
        // User details from payload
        var userName = payload["preferred_username"];
    }

    return RedirectToAction("Index", "Home");
}

এখানে, id_token থেকে ব্যবহারকারীর পরিচয় এবং অন্যান্য তথ্য উদ্ধার করা হয়েছে।

4. Token Validation

একটি নিরাপদ অ্যাপ্লিকেশন তৈরি করার জন্য, Access Token এবং ID Token এর ভ্যালিডেশন নিশ্চিত করতে হবে। এটি সাধারণত একটি JWT টোকেন (JSON Web Token) হিসেবে হবে, যেটি টোকেন ভ্যালিডেশন লাইব্রেরির মাধ্যমে যাচাই করা হয়।


সারমর্ম

OAuth 2.0 এবং OpenID Connect দুটি গুরুত্বপূর্ণ প্রটোকল যা ব্যবহারকারীর অথেন্টিকেশন এবং অথোরাইজেশন নিশ্চিত করে। ASP.Net MVC-তে OAuth এবং OpenID Connect ইন্টিগ্রেশন সাধারণত ব্যবহারকারীর নিরাপদ লগইন এবং API অ্যাক্সেস নিয়ন্ত্রণে ব্যবহৃত হয়। OAuth 2.0 দ্বারা অ্যাক্সেস টোকেন এবং OpenID Connect দ্বারা ID Token পাওয়া যায়, যা ব্যবহারকারীর পরিচয় যাচাই করতে সাহায্য করে। ASP.Net MVC অ্যাপ্লিকেশনে OAuth এবং OpenID Connect ইন্টিগ্রেট করতে Owin Middleware এবং Identity Server ব্যবহার করা যেতে পারে, যা নিরাপদ এবং স্কেলেবল অ্যাপ্লিকেশন তৈরিতে সহায়ক।

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

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

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

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