OAuth 2.0 প্রোটোকলে মোট চারটি প্রধান উপাদান রয়েছে, যা একে কার্যকরী ও নিরাপদ করে তোলে। এগুলি হলো Resource Owner, Client, Authorization Server, এবং Resource Server। প্রতিটি উপাদান OAuth 2.0-এর একটি গুরুত্বপূর্ণ ভূমিকা পালন করে এবং একে একটি কার্যকর অথেনটিকেশন ও অথোরাইজেশন সিস্টেম হিসেবে কাজ করতে সহায়ক করে। চলুন, প্রতিটি উপাদানের ভূমিকা বিস্তারিতভাবে দেখি।
1. Resource Owner (রিসোর্স মালিক)
ভূমিকা:
Resource Owner (রিসোর্স মালিক) হল সেই ব্যক্তি বা সত্ত্বা যার রিসোর্স বা তথ্য অ্যাক্সেস করার অনুমতি দেওয়া হচ্ছে। সাধারণত, এটি একজন ব্যবহারকারী, যিনি একটি অ্যাপ্লিকেশন বা সার্ভিসে লগ ইন করার মাধ্যমে তৃতীয় পক্ষের অ্যাপ্লিকেশন বা সিস্টেমকে তার তথ্য অ্যাক্সেস করতে অনুমতি দেন।
ভূমিকার বর্ণনা:
- ব্যবহারকারী: সাধারণত, এটি এমন এক ব্যক্তি যিনি তাদের সোশ্যাল মিডিয়া, ইমেইল, বা অন্য কোন অ্যাকাউন্টের মাধ্যমে তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিতে তথ্য অ্যাক্সেস করার অনুমতি দেন।
- তথ্যের মালিক: Resource Owner হচ্ছে সেই ব্যক্তি যার তথ্য বা রিসোর্সের উপর নিয়ন্ত্রণ রয়েছে, যেমন ব্যক্তিগত তথ্য, ডকুমেন্ট, ফাইল, প্রোফাইল ইত্যাদি।
উদাহরণ:
একটি ব্যবহারকারী যিনি তাদের ফেসবুক প্রোফাইলের তথ্য অ্যাক্সেস করতে অন্য একটি অ্যাপ্লিকেশনকে অনুমতি দেন।
2. Client (ক্লায়েন্ট)
ভূমিকা:
Client (ক্লায়েন্ট) হল সেই অ্যাপ্লিকেশন বা সার্ভিস যা রিসোর্স মালিকের (ব্যবহারকারীর) তথ্য অ্যাক্সেস করতে চায়। এটি ব্যবহারকারীর পক্ষ থেকে অনুমতি প্রাপ্তির জন্য Authorization Server-এর মাধ্যমে রিসোর্সে অ্যাক্সেস পেতে চেষ্টা করে।
ভূমিকার বর্ণনা:
- তৃতীয় পক্ষের অ্যাপ্লিকেশন: ক্লায়েন্ট সাধারণত কোনো তৃতীয় পক্ষের অ্যাপ্লিকেশন হয়ে থাকে, যেমন একটি মোবাইল অ্যাপ্লিকেশন, ওয়েব অ্যাপ্লিকেশন, অথবা API ক্লায়েন্ট, যা অন্য কোনও সিস্টেম বা সার্ভিসে নির্দিষ্ট ডেটা অ্যাক্সেস করার চেষ্টা করে।
- অ্যাক্সেস টোকেন: ক্লায়েন্ট এই অ্যাক্সেস পেতে Authorization Server-এ রিকোয়েস্ট পাঠায় এবং অ্যাক্সেস টোকেন লাভ করে। এই টোকেনের মাধ্যমে, এটি Resource Server থেকে নির্দিষ্ট রিসোর্স অ্যাক্সেস করতে পারে।
উদাহরণ:
ফেসবুক লগিন ব্যবহার করে একটি থার্ড-পার্টি অ্যাপ্লিকেশন (যেমন, একটি গেম অ্যাপ্লিকেশন) ব্যবহারকারীকে তাদের ফেসবুক প্রোফাইলের ডেটা অ্যাক্সেস করতে সক্ষম হয়।
3. Authorization Server (অথোরাইজেশন সার্ভার)
ভূমিকা:
Authorization Server (অথোরাইজেশন সার্ভার) হল সেই সার্ভার যা Resource Owner থেকে অনুমতি গ্রহণ করে এবং Client (অ্যাপ্লিকেশন) কে Access Token প্রদান করে। এটি ব্যবহারকারীর অথেনটিকেশন পরিচালনা করে এবং নির্দিষ্ট স্কোপের জন্য অনুমতি প্রদান করে।
ভূমিকার বর্ণনা:
- অথেনটিকেশন এবং অথোরাইজেশন: Authorization Server সাধারণত ব্যবহারকারীর অথেনটিকেশন এবং অনুমতি প্রদান করে। এটি একটি নিরাপদ সার্ভার যা অ্যাক্সেস টোকেন প্রদান করে।
- Access Token প্রদান: ব্যবহারকারী যদি তাদের তথ্য অ্যাক্সেস করতে অনুমতি দেন, তবে Authorization Server একটি অ্যাক্সেস টোকেন তৈরি করে এবং এটি ক্লায়েন্টকে প্রদান করে, যা ব্যবহারকারী বা ক্লায়েন্টকে Resource Server থেকে নির্দিষ্ট রিসোর্স অ্যাক্সেস করতে দেয়।
উদাহরণ:
গুগল OAuth সার্ভার, যেখানে গুগল ব্যবহারকারীকে তার গুগল অ্যাকাউন্টের তথ্য শেয়ার করতে তৃতীয় পক্ষের অ্যাপ্লিকেশনকে অনুমতি দেয় এবং একটি অ্যাক্সেস টোকেন প্রদান করে।
4. Resource Server (রিসোর্স সার্ভার)
ভূমিকা:
Resource Server (রিসোর্স সার্ভার) হল সেই সার্ভার যেখানে রিসোর্স বা তথ্য সংরক্ষিত থাকে এবং এটি Access Token যাচাই করার পর রিসোর্স প্রদান করে। এটি এমন সার্ভার যা ক্লায়েন্ট থেকে প্রাপ্ত অ্যাক্সেস টোকেন যাচাই করে এবং যাচাই সঠিক হলে নির্দিষ্ট তথ্য বা রিসোর্স প্রদান করে।
ভূমিকার বর্ণনা:
- রিসোর্স হোস্টিং: Resource Server হল সেই সার্ভার যা ব্যবহারকারীর তথ্য বা রিসোর্স রাখে, যেমন ফাইল, ডেটাবেস, বা অন্য কোন গুরুত্বপূর্ণ ডেটা।
- অ্যাক্সেস টোকেন যাচাই: Resource Server-এ একটি Access Token পাঠানো হয়, এবং সার্ভারটি নিশ্চিত করে যে এই টোকেনটি বৈধ এবং সঠিক অনুমতি অনুযায়ী রিসোর্সে অ্যাক্সেস প্রদান করা যায় কিনা।
উদাহরণ:
গুগল ড্রাইভ বা ফেসবুক গ্রাফ API, যেখানে একটি তৃতীয় পক্ষের অ্যাপ্লিকেশন যদি গুগল ড্রাইভ বা ফেসবুকের ডেটা অ্যাক্সেস করতে চায়, তবে প্রথমে Authorization Server থেকে অ্যাক্সেস টোকেন গ্রহণ করতে হবে এবং তারপর Resource Server-এ পাঠিয়ে তথ্য গ্রহণ করতে হবে।
সারাংশ
- Resource Owner (রিসোর্স মালিক): সেই ব্যক্তি বা সত্ত্বা যার তথ্য বা রিসোর্স অ্যাক্সেস করার অনুমতি দেওয়া হচ্ছে।
- Client (ক্লায়েন্ট): তৃতীয় পক্ষের অ্যাপ্লিকেশন বা সার্ভিস যা রিসোর্স মালিকের তথ্য অ্যাক্সেস করতে চায়।
- Authorization Server (অথোরাইজেশন সার্ভার): সার্ভার যা ব্যবহারকারীর অনুমতি নিয়ে অ্যাক্সেস টোকেন প্রদান করে।
- Resource Server (রিসোর্স সার্ভার): সার্ভার যা রিসোর্স বা তথ্য সংরক্ষণ করে এবং Access Token যাচাই করার পর তথ্য প্রদান করে।
OAuth 2.0 প্রোটোকলের এই চারটি উপাদান একসাথে কাজ করে একটি নিরাপদ এবং কার্যকরী অথেনটিকেশন ও অথোরাইজেশন সিস্টেম তৈরি করতে।
Read more