OAuth 2.0 এর একটি মূল ধারণা হল Authorization Endpoints এবং Token Endpoints, যা বিভিন্ন OAuth ফ্লোতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এই দুটি এন্ডপয়েন্টের মধ্যে পার্থক্য এবং তাদের কাজ কী, তা বুঝতে হলে প্রথমে জানতে হবে এই দুটি এন্ডপয়েন্টের ভূমিকা।
1. Authorization Endpoint
Authorization Endpoint হলো সেই URL বা এন্ডপয়েন্ট যেখানে ব্যবহারকারীরা তাদের অ্যাকাউন্ট এবং অনুমতির মাধ্যমে অ্যাক্সেস কোডের জন্য অনুরোধ করেন। এটি সাধারণত ব্যবহারকারীর ব্রাউজারে রিডিরেক্ট করা হয়, এবং এখানে ব্যবহারকারী তাদের অ্যাকাউন্টে লগইন করে নির্দিষ্ট তৃতীয় পক্ষের অ্যাপ্লিকেশনকে তাদের ডেটা অ্যাক্সেস করতে অনুমতি দেন।
Authorization Endpoint-এর কাজ:
- ব্যবহারকারীর অথেনটিকেশন (authentication) এবং অথোরাইজেশন (authorization) সম্পাদন করা হয়।
- এই এন্ডপয়েন্টে পৌঁছানোর পর, ব্যবহারকারী অ্যাপ্লিকেশনটির জন্য অনুমতি প্রদান করেন, এবং এরপরে সার্ভার একটি authorization code প্রদান করে।
- এটি ব্যবহারকারীকে তাদের অ্যাকাউন্টে লগইন করায় এবং তার পর অ্যাপ্লিকেশনকে অ্যাক্সেস টোকেন পেতে সাহায্য করে।
Authorization Endpoint এর একটি উদাহরণ:
https://authorization-server.com/auth?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=read_profile&state=xyz123এখানে:
response_type=code: এই কোডটি নির্দেশ করে যে অ্যাপ্লিকেশন একটি authorization code পেতে চায়।client_id: ক্লায়েন্ট অ্যাপ্লিকেশনের ইউনিক আইডি।redirect_uri: সেই URL যেখানে ব্যবহারকারী অনুমোদনের পর ফিরে আসবে।scope: নির্দিষ্ট অনুমতির তালিকা (যেমন পঠন, লেখা ইত্যাদি)।state: সেশন হাইজ্যাকিং প্রতিরোধ করতে ব্যবহৃত একটি অদৃশ্য ভ্যালু।
2. Token Endpoint
Token Endpoint হল সেই URL বা এন্ডপয়েন্ট যেখানে ক্লায়েন্ট অ্যাপ্লিকেশনটি authorization code এর মাধ্যমে access token পেতে রিকোয়েস্ট করে। Authorization Endpoint থেকে authorization code পাওয়ার পর, ক্লায়েন্ট এই কোডটি Token Endpoint-এ পাঠায় এবং সেখানে access token (অথবা refresh token) পাওয়া যায়, যা ব্যবহারকারী বা অ্যাপ্লিকেশনের নামের সাথে সম্পর্কিত একটি সুরক্ষিত অনুমতি চিহ্ন।
Token Endpoint এর কাজ:
- ক্লায়েন্ট অ্যাপ্লিকেশনটি authorization code অথবা client credentials (যদি প্রয়োজন হয়) পাঠায়।
- সার্ভার এই তথ্য যাচাই করে এবং একটি access token প্রদান করে যা ব্যবহৃত হবে রিসোর্স অ্যাক্সেস করতে।
- এটি সাধারণত ক্লায়েন্টের জন্য একটি client_id এবং client_secret ব্যবহার করে যাচাই করা হয়, যা সার্ভারকে ক্লায়েন্ট অ্যাপ্লিকেশনটির প্রকৃততা নিশ্চিত করতে সাহায্য করে।
Token Endpoint-এর একটি উদাহরণ:
https://authorization-server.com/tokenএই এন্ডপয়েন্টে ক্লায়েন্ট সাধারণত HTTP POST রিকোয়েস্ট ব্যবহার করে, যেখানে তারা authorization code, client_id, client_secret, এবং redirect_uri পাঠায়। উদাহরণস্বরূপ:
POST /token HTTP/1.1
Host: authorization-server.com
Content-Type: application/x-www-form-urlencoded
code=AUTHORIZATION_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&redirect_uri=REDIRECT_URI&grant_type=authorization_codeএখানে:
code: Authorization Endpoint থেকে প্রাপ্ত authorization code।client_id: ক্লায়েন্ট অ্যাপ্লিকেশনের ইউনিক আইডি।client_secret: ক্লায়েন্ট অ্যাপ্লিকেশনের গোপন কোড যা সার্ভার যাচাই করে।redirect_uri: সঠিক রিডিরেক্ট URI যাচাই করা হয়।grant_type=authorization_code: এই ভ্যালুটি নির্দেশ করে যে এটি একটি authorization code ফ্লো।
এটি সফল হলে, সার্ভার একটি access token এবং (যদি প্রয়োজন হয়) একটি refresh token প্রদান করবে।
প্রধান পার্থক্য
| বৈশিষ্ট্য | Authorization Endpoint | Token Endpoint |
|---|---|---|
| কাজ | ব্যবহারকারীকে অনুমতি দিতে এবং authorization code প্রাপ্তি | authorization code অথবা client credentials দিয়ে access token প্রাপ্তি |
| ব্রাউজার রিডিরেক্ট | ব্যবহারকারীকে ব্রাউজারে রিডিরেক্ট করা হয় | ক্লায়েন্ট অ্যাপ্লিকেশন সার্ভারে HTTP POST রিকোয়েস্ট পাঠায় |
| উত্তর | authorization code প্রদান করা হয় | access token (এবং refresh token) প্রদান করা হয় |
| অথেনটিকেশন প্রক্রিয়া | ব্যবহারকারীকে লগইন এবং অনুমতি দেওয়ার প্রক্রিয়া | ক্লায়েন্ট অ্যাপ্লিকেশনের প্রকৃততা যাচাই করে |
সারসংক্ষেপ
- Authorization Endpoint হল সেই পয়েন্ট যেখানে ব্যবহারকারী তাদের অ্যাকাউন্টে লগইন করেন এবং তৃতীয় পক্ষের অ্যাপ্লিকেশনকে তাদের রিসোর্স অ্যাক্সেস করার অনুমতি দেন। এরপর সার্ভার একটি authorization code প্রদান করে।
- Token Endpoint হল সেই পয়েন্ট যেখানে ক্লায়েন্ট অ্যাপ্লিকেশন authorization code বা অন্যান্য যাচাইকরণ তথ্য ব্যবহার করে access token পায়, যা রিসোর্সে অ্যাক্সেস করতে ব্যবহৃত হয়।
OAuth 2.0 ফ্লোতে এই দুটি এন্ডপয়েন্ট অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ যোগাযোগ এবং অ্যাক্সেস নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
Read more