OAuth 2.0-এ Scope এবং Permission দুইটি গুরুত্বপূর্ণ ধারণা, যেগুলি ব্যবহারকারীর তথ্য এবং রিসোর্সে অ্যাক্সেস নিয়ন্ত্রণ করতে সহায়ক। এগুলি অ্যাপ্লিকেশনগুলোকে শুধুমাত্র নির্দিষ্ট এবং অনুমোদিত কাজগুলো করার অনুমতি দেয়, এবং ব্যবহারকারীর নিরাপত্তা ও গোপনীয়তা রক্ষা করে।
Scope (স্কোপ)
Scope হল OAuth 2.0-এ ব্যবহৃত একটি পরামিতি যা নির্ধারণ করে যে, কোন রিসোর্স বা ডেটা অ্যাক্সেস করার জন্য ক্লায়েন্ট অ্যাপ্লিকেশনকে কোন অনুমতি দেওয়া হবে। এর মাধ্যমে, আপনি নির্দিষ্ট করতে পারেন কোন অ্যাক্সেস টোকেনটি কোন ধরনের তথ্য বা রিসোর্সের জন্য বৈধ।
Scope এর কাজ:
- নির্দিষ্ট অ্যাক্সেস অনুমোদন: OAuth 2.0-এ scope ব্যবহারকারীকে শুধুমাত্র কিছু নির্দিষ্ট রিসোর্স বা অ্যাকশনে অ্যাক্সেস দেয়। উদাহরণস্বরূপ, গুগল অ্যাকাউন্টের জন্য আপনি শুধুমাত্র email এবং profile রিসোর্স অ্যাক্সেস করতে পারেন, তবে calendar বা contacts অ্যাক্সেস নাও করতে পারেন।
- ডেটার সংরক্ষণ এবং শেয়ারিং: Scope সেট করে দেয় কোন ডেটা বা রিসোর্স অ্যাক্সেস করতে হবে এবং কোন ডেটা অ্যাক্সেস করা যাবে না। যেমন, ব্যবহারকারীর সোশ্যাল মিডিয়া ডেটা বা প্রোফাইল ইত্যাদি।
- ব্যবহারকারীর সম্মতি: ব্যবহারকারী যখন OAuth 2.0 এর মাধ্যমে লগ ইন করেন, তখন তাকে স্কোপের মাধ্যমে ব্যাখ্যা করা হয় যে অ্যাপ্লিকেশনটি কোন ধরনের ডেটা বা রিসোর্স অ্যাক্সেস করতে চাচ্ছে, এবং সে সম্মতি দেওয়ার সুযোগ পায়।
Scope উদাহরণ:
ধরা যাক, একটি গুগল অ্যাপ্লিকেশন profile, email, এবং calendar ডেটা অ্যাক্সেস করতে চায়। OAuth 2.0 অ্যাক্সেস টোকেনের জন্য স্কোপ হবে:
scope=email profile calendarএভাবে, ক্লায়েন্ট অ্যাপ্লিকেশন নির্দিষ্ট রিসোর্সের জন্য অ্যাক্সেস পাবেন এবং এর বাইরে কিছু অ্যাক্সেস করতে পারবেন না।
Permission (অনুমতি)
Permission হল অ্যাপ্লিকেশনের দ্বারা প্রদত্ত access rights বা অধিকার, যা নির্ধারণ করে কিভাবে অ্যাক্সেস টোকেনটি ব্যবহার করে ডেটা শেয়ার বা অ্যাক্সেস করা যাবে। Permission সাধারণত scope অনুযায়ী প্রাপ্ত হয়, তবে এটি আরও স্পষ্ট করে দেয় কোন কার্যক্রম বা কাজ করা যাবে এবং কোনটি নয়।
Permission এর কাজ:
- প্রথমবার অ্যাক্সেসের জন্য অনুমতি: একটি ক্লায়েন্ট অ্যাপ্লিকেশন যখন OAuth 2.0 মাধ্যমে ডেটা বা রিসোর্স অ্যাক্সেসের জন্য আবেদন করে, তখন ব্যবহারকারীকে ওই অ্যাপ্লিকেশনটি কোন ধরনের অ্যাক্সেসের অনুমতি প্রদান করবে তা স্পষ্টভাবে দেখানো হয়। এটি ক্লায়েন্টের কাছে শুধুমাত্র নির্দিষ্ট কার্যক্রমের অনুমতি দেয়।
- অ্যাক্সেস সীমাবদ্ধতা: ক্লায়েন্ট অ্যাপ্লিকেশন শুধুমাত্র নির্দিষ্ট permission অনুযায়ী কাজ করতে পারে, যেমন কেবলমাত্র ডেটা পড়া (read), লেখা (write), বা প্রয়োগ করা (execute) অনুমতি। এটি একটি নিরাপদ এবং সীমিত অ্যাক্সেস প্রোটোকল তৈরি করে।
Permission উদাহরণ:
ধরা যাক, একটি অ্যাপ্লিকেশন Google Drive-এর ফাইল আপলোড করতে চাচ্ছে, তবে তার write permission থাকা প্রয়োজন। গুগল অ্যাপ্লিকেশনটি OAuth 2.0 এর মাধ্যমে আবেদন করলে স্কোপ হতে পারে:
scope=drive.fileএবং সেই অ্যাক্সেস টোকেনটি তখন শুধুমাত্র Google Drive-এর ফাইল আপলোড করার জন্য অনুমতি দেবে।
Scope এবং Permission এর মধ্যে পার্থক্য
- Scope সাধারণত অ্যাক্সেসের ধরণ নির্ধারণ করে, অর্থাৎ কি ধরনের রিসোর্স বা ডেটা অ্যাক্সেস করা যাবে।
- Permission নির্ধারণ করে ব্যবহারকারী বা অ্যাপ্লিকেশনকে কি ধরনের কার্যক্রম করতে অনুমতি দেয়া হবে, যেমন পড়া, লেখা বা সম্পাদনা।
যেহেতু Scope-এর মাধ্যমে অ্যাপ্লিকেশনকে শুধুমাত্র নির্দিষ্ট ডেটা বা রিসোর্স অ্যাক্সেস করতে দেওয়া হয়, সেখানে Permission নির্দিষ্ট করে দেয় যে অ্যাপ্লিকেশনটি কী করতে পারবে (যেমন শুধুমাত্র পড়া, সম্পাদনা ইত্যাদি)।
Scope এবং Permission এর নিরাপত্তায় ভূমিকা
- নিরাপত্তা বৃদ্ধি: Scope এবং Permission এর মাধ্যমে, OAuth 2.0 অ্যাপ্লিকেশনগুলোকে নির্দিষ্ট অনুমতির ভিত্তিতে অ্যাক্সেস প্রদান করে, যা ব্যবহারকারীর গোপনীয়তা এবং নিরাপত্তা রক্ষা করে। উদাহরণস্বরূপ, যদি অ্যাপ্লিকেশনটি শুধুমাত্র ব্যবহারকারীর প্রোফাইল তথ্য চায়, তবে এটি অন্যান্য ডেটা যেমন ইমেইল বা ক্যালেন্ডারের অ্যাক্সেসের জন্য অনুমতি চাইবে না, যা নিরাপত্তার জন্য ভাল।
- অ্যাক্সেস নিয়ন্ত্রণ: একে অপরের থেকে আলাদা স্কোপ এবং পারমিশনের মাধ্যমে, অ্যাপ্লিকেশনগুলি শুধুমাত্র যে তথ্য বা রিসোর্সগুলির জন্য অনুমোদিত তা অ্যাক্সেস করতে পারে, তাই এটি অ্যাক্সেসের সীমাবদ্ধতা প্রদান করে।
সারসংক্ষেপ
- Scope: OAuth 2.0-এ scope হলো অ্যাপ্লিকেশনটির অ্যাক্সেস করার জন্য প্রয়োজনীয় রিসোর্স বা ডেটার একটি নির্দিষ্ট সেট। এটি নির্দেশ করে কোন তথ্য বা রিসোর্স অ্যাক্সেস করা যাবে এবং কোনটি নয়।
- Permission: Permission হলো সেই অনুমতি যা ক্লায়েন্ট অ্যাপ্লিকেশনটি পায় এবং নির্ধারণ করে অ্যাপ্লিকেশনটি কি ধরনের কার্যক্রম বা কাজ করতে পারবে (যেমন পড়া, লেখা, সম্পাদনা)।
এটি একটি শক্তিশালী নিরাপত্তা ফিচার, যা ব্যবহারকারীদের গোপনীয়তা রক্ষা করতে এবং সীমিত অ্যাক্সেসের মাধ্যমে নিরাপদ তথ্য শেয়ারিং নিশ্চিত করতে সাহায্য করে।
Read more