Skip to content

SSO & OAuth

আধুনিক ইন্টারনেটে আমরা প্রায়ই "Login with Google" বা "Login with Facebook" দেখি। এই সুবিধাগুলো নিশ্চিত করার পেছনে কাজ করে SSO এবং OAuth

1. SSO (Single Sign-On)

SSO হলো এমন একটি মেকানিজম যার মাধ্যমে একজন ইউজার একবার লগইন করে একই ইকোসিস্টেমের বা অর্গানাইজেশনের অনেকগুলো আলাদা অ্যাপ ব্যবহার করতে পারেন।

  • উদাহরণ: আপনি জিমেইলে (Gmail) লগইন করলে আপনাকে আলাদা করে ইউটিউব (YouTube) বা গুগল ড্রাইভে (Drive) লগইন করতে হয় না।
  • সুবিধা: ইউজার এক্সপেরিয়েন্স ভালো হয় এবং মাল্টিপল পাসওয়ার্ড মনে রাখার ঝামেলা থাকে না।

2. OAuth (Open Authorization)

OAuth হলো একটি ওপেন স্ট্যান্ডার্ড যার মাধ্যমে একটি অ্যাপ্লিকেশন অন্য একটি সার্ভিস থেকে ইউজারের ডেটা (যেমন: প্রোফাইল ড্রাইভ বা ইমেইল) আদান-প্রদান করার অনুমতি পায় ইউজারের পাসওয়ার্ড ছাড়াই।

প্রধান চরিত্রসমূহ:

  1. Resource Owner: ইউজার নিজে।
  2. Client: যে অ্যাপটি ইউজারের ডেটা নিতে চায় (যেমন: Spotify)।
  3. Authorization Server: যে সার্ভার পারমিশন দেয় (যেমন: Google)।
  4. Resource Server: যেখানে ইউজারের ডেটা আসলে থাকে।

কিভাবে কাজ করে (OAuth Flow):

  1. ক্লায়েন্ট অ্যাপ ইউজারকে অথরাইজেশন সার্ভারে পাঠায়।
  2. ইউজার কনসেন্ট (Consent) দেয় যে সে ডাটা শেয়ার করতে রাজি।
  3. সার্ভার একটি Authorization Code দেয়।
  4. ক্লায়েন্ট সেই কোড এবং নিজের সিক্রেট পাঠিয়ে একটি Access Token নেয়।
  5. সবশেষে টোকেন দিয়ে ইউজারের ডেটা এক্সেস করে।

3. OAuth বনাম OpenID Connect (OIDC)

  • OAuth: এটি শুধুমাত্র Authorization (কি কি দেখার অধিকার আছে) এর জন্য।
  • OpenID Connect: এটি OAuth এর ওপর একটি লেয়ার যা Authentication (ইউজার আসলে কে) নিশ্চিত করে। এটি "ID Token" প্রদান করে।

NOTE

পেমেন্ট গেটওয়ে বা সোশ্যাল লগইন ইমপ্লিমেন্ট করার জন্য OAuth 2.0 হলো ইন্ডাস্ট্রি স্ট্যান্ডার্ড। এটি সিস্টেমের পারমিশন ম্যানেজমেন্টকে অনেক বেশি সিকিউর এবং স্ট্যান্ডার্ড করে তোলে।

Released under the MIT License.