OAuth 2.0 একটি নমনীয় অথেনটিকেশন এবং অথোরাইজেশন প্রোটোকল, যা বিভিন্ন ধরনের অ্যাপ্লিকেশন এবং সিস্টেমের জন্য উপযুক্ত। এর মধ্যে কয়েকটি বিশেষ ফ্লো রয়েছে, যা বিভিন্ন ধরনের ক্লায়েন্ট অ্যাপ্লিকেশন এবং পরিস্থিতির জন্য উপযোগী। এই ফ্লোগুলি ব্যবহারকারী এবং ক্লায়েন্টের মধ্যে অথেনটিকেশন এবং অ্যাক্সেস অনুমতি আদান-প্রদান করার জন্য ব্যবহৃত হয়।
নিচে OAuth 2.0 এর প্রধান ফ্লোগুলির বিস্তারিত আলোচনা করা হলো:
1. Authorization Code Grant (অথোরাইজেশন কোড গ্রান্ট)
এই ফ্লোটি ওয়েব অ্যাপ্লিকেশনগুলির জন্য সবচেয়ে নিরাপদ এবং সবচেয়ে বেশি ব্যবহৃত। এটি সাধারণত Server-Side Web Apps এবং Single Page Applications (SPA) এ ব্যবহৃত হয় যেখানে নিরাপত্তা একটি বড় চিন্তা।
প্রক্রিয়া:
- ব্যবহারকারী ক্লায়েন্ট অ্যাপ্লিকেশনে লগ ইন করেন এবং অ্যাপ্লিকেশনটি ব্যবহারকারীকে অথোরাইজেশন সার্ভারে রিডিরেক্ট করে।
- ব্যবহারকারী তার পরিচয় এবং অনুমতি দেয় এবং অথোরাইজেশন সার্ভার একটি অথোরাইজেশন কোড প্রদান করে।
- ক্লায়েন্ট অ্যাপ্লিকেশন সেই কোডটি অথোরাইজেশন সার্ভারে পাঠায় এবং অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন পায়।
- ক্লায়েন্ট অ্যাপ্লিকেশন টোকেনটি ব্যবহার করে রিসোর্স সার্ভারে থেকে ব্যবহারকারীর তথ্য অ্যাক্সেস করে।
ব্যবহৃত ক্ষেত্রে:
- সার্ভার সাইড ওয়েব অ্যাপ্লিকেশন
- নিরাপত্তা সর্বোচ্চ থাকতে হবে
- ব্যবহারকারীর অনুমতি একাধিক রিসোর্স অ্যাক্সেস করার জন্য
2. Implicit Grant (ইমপ্লিসিট গ্রান্ট)
Implicit Grant ফ্লোটি সাধারণত Client-Side Web Applications বা Single Page Applications (SPA) এর জন্য ব্যবহৃত হয়। এটি দ্রুত অ্যাক্সেস প্রদান করে তবে নিরাপত্তা সুরক্ষা কিছুটা কম হতে পারে, কারণ অ্যাক্সেস টোকেন সরাসরি ব্যবহারকারীর ব্রাউজারে প্রদান করা হয়।
প্রক্রিয়া:
- ব্যবহারকারী ক্লায়েন্ট অ্যাপ্লিকেশনে লগ ইন করেন এবং অ্যাপ্লিকেশনটি ব্যবহারকারীকে অথোরাইজেশন সার্ভারে রিডিরেক্ট করে।
- ব্যবহারকারী তাদের অনুমতি দেয় এবং অথোরাইজেশন সার্ভার সরাসরি অ্যাক্সেস টোকেন প্রদান করে।
- ক্লায়েন্ট অ্যাপ্লিকেশন এই টোকেন ব্যবহার করে রিসোর্স সার্ভার থেকে তথ্য অ্যাক্সেস করে।
ব্যবহৃত ক্ষেত্রে:
- ক্লায়েন্ট সাইড অ্যাপ্লিকেশন (SPA)
- দ্রুত টোকেন প্রদান
- নিরাপত্তা কিছুটা কম, কারণ টোকেন সরাসরি ক্লায়েন্ট সাইডে চলে আসে
3. Resource Owner Password Credentials Grant (রিসোর্স ওনার পাসওয়ার্ড ক্রেডেনশিয়ালস গ্রান্ট)
এই ফ্লোটি সাধারণত তখন ব্যবহৃত হয় যখন ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যবহারকারী একে অপরকে পুরোপুরি বিশ্বাস করে এবং ব্যবহারকারীর পাসওয়ার্ড সরাসরি ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা গ্রহণ করা হয়। এটি মোবাইল অ্যাপ্লিকেশন বা ডেস্কটপ অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত, যেখানে ব্যবহারকারী সরাসরি তাদের পাসওয়ার্ড প্রদান করে।
প্রক্রিয়া:
- ব্যবহারকারী পাসওয়ার্ড এবং ইউজারনেম ক্লায়েন্ট অ্যাপ্লিকেশনকে প্রদান করেন।
- ক্লায়েন্ট অ্যাপ্লিকেশন এই তথ্য ব্যবহার করে অথোরাইজেশন সার্ভারে রিকোয়েস্ট পাঠায়।
- অথোরাইজেশন সার্ভার সরাসরি অ্যাক্সেস টোকেন প্রদান করে।
- ক্লায়েন্ট অ্যাপ্লিকেশন এই টোকেন ব্যবহার করে রিসোর্স সার্ভার থেকে তথ্য অ্যাক্সেস করে।
ব্যবহৃত ক্ষেত্রে:
- ক্লায়েন্ট এবং ব্যবহারকারীর মধ্যে পূর্ণ বিশ্বাস
- মোবাইল অ্যাপ্লিকেশন
- সরাসরি ইউজারনেম এবং পাসওয়ার্ড ব্যবহার
4. Client Credentials Grant (ক্লায়েন্ট ক্রেডেনশিয়ালস গ্রান্ট)
এই ফ্লোটি সাধারণত অ্যাপ্লিকেশন-টু-অ্যাপ্লিকেশন (server-to-server) যোগাযোগের জন্য ব্যবহৃত হয়, যেখানে কোনও ব্যবহারকারী নেই। এটি সার্ভিস-টু-সার্ভিস অথোরাইজেশনের জন্য উপযোগী।
প্রক্রিয়া:
- ক্লায়েন্ট অ্যাপ্লিকেশন সরাসরি অথোরাইজেশন সার্ভারে রিকোয়েস্ট পাঠায়, যেখানে
client_idএবংclient_secretসহ অ্যাক্সেস টোকেন রিকোয়েস্ট করা হয়। - অথোরাইজেশন সার্ভার অ্যাক্সেস টোকেন প্রদান করে।
- ক্লায়েন্ট অ্যাপ্লিকেশন এই টোকেন ব্যবহার করে রিসোর্স সার্ভার থেকে তথ্য অ্যাক্সেস করে।
ব্যবহৃত ক্ষেত্রে:
- সার্ভিস-টু-সার্ভিস যোগাযোগ
- API অ্যাক্সেস
- যখন ব্যবহারকারীর উপস্থিতি নেই
5. Device Authorization Grant (ডিভাইস অথোরাইজেশন গ্রান্ট)
এই ফ্লোটি সাধারণত ডিভাইস বা টেলিভিশন অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয় যেখানে সরাসরি কীবোর্ড বা পাসওয়ার্ড ইনপুটের মাধ্যমে ব্যবহারকারীর অথেনটিকেশন করা কঠিন।
প্রক্রিয়া:
- ডিভাইস ব্যবহারকারীকে একটি কোড এবং URL প্রদর্শন করে।
- ব্যবহারকারী তার মোবাইল বা কম্পিউটার ব্যবহার করে এই URL-এ গিয়ে কোডটি প্রদান করেন।
- অথোরাইজেশন সার্ভার এই কোডের মাধ্যমে অ্যাক্সেস টোকেন প্রদান করে।
- ডিভাইসটি সেই টোকেন ব্যবহার করে রিসোর্স সার্ভার থেকে তথ্য অ্যাক্সেস করে।
ব্যবহৃত ক্ষেত্রে:
- টেলিভিশন এবং অন্য ডিভাইস অ্যাপ্লিকেশন
- সহজ অথেনটিকেশন
সারাংশ
OAuth 2.0 এর বিভিন্ন প্রোটোকল ফ্লো বিভিন্ন অ্যাপ্লিকেশন এবং পরিস্থিতি অনুযায়ী ব্যবহৃত হয়। বিভিন্ন ফ্লো ব্যবহারকারীর অ্যাক্সেস অনুমতির ধরন, নিরাপত্তা এবং প্রয়োগের প্রকার অনুযায়ী কাস্টমাইজ করা যায়। এসব ফ্লো ব্যবহারকারীর এবং ক্লায়েন্ট অ্যাপ্লিকেশনের মধ্যে সুরক্ষিত তথ্য আদান-প্রদান নিশ্চিত করতে সহায়ক।
Read more