OAuth 2.0 প্রোটোকল ব্যবহার করার সময়, Access Token একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান। এটি ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারীর রিসোর্স অ্যাক্সেস করার অনুমতি দেয়। Access Token সাধারণত Authorization Server থেকে সংগ্রহ করা হয়, এবং এটি সাধারনত একটি সীমিত সময়ের জন্য বৈধ থাকে।
যখন আপনি Access Token সরাসরি সংগ্রহ করতে চান, এটি একটি সাধারণ প্রক্রিয়া যা নিচে ব্যাখ্যা করা হয়েছে।
Access Token সরাসরি সংগ্রহ করার পদ্ধতি
Authorization Code Flow (যেমন ওয়েব অ্যাপ্লিকেশনগুলির জন্য):
এই ফ্লোতে প্রথমে আপনি ব্যবহারকারীকে Authorization Server-এ রিডিরেক্ট করেন, যেখানে তারা অ্যাক্সেস অনুমতি দেয়। তারপর ব্যবহারকারী অ্যাক্সেস কোড পাবেন, যা আপনি একটি Access Token এ রূপান্তর করতে পারেন।
প্রক্রিয়া:
- Authorization Request:
ব্যবহারকারীকে Authorization Server-এ পাঠান, যেখানে তারা তাদের অ্যাক্সেস অনুমতি দেয়। - Authorization Code:
ব্যবহারকারী অনুমতি দিলে Authorization Server একটি কোড প্রদান করবে। - Access Token Exchange:
সেই Authorization কোডটি ক্লায়েন্ট অ্যাপ্লিকেশন Access Token-এ রূপান্তর করতে Authorization Server-এ পাঠায়।
উদাহরণ:
POST https://authorization-server.com/oauth/token Content-Type: application/x-www-form-urlencoded client_id=CLIENT_ID &client_secret=CLIENT_SECRET &code=AUTHORIZATION_CODE &redirect_uri=REDIRECT_URI &grant_type=authorization_codeএখানে:
client_idএবংclient_secretক্লায়েন্ট অ্যাপ্লিকেশনের পরিচয়।codeহল Authorization Code।redirect_uriহল সেই URI যেখানে কোডটি পাঠানো হয়েছিল।grant_type=authorization_codeনিশ্চিত করে যে এটি Authorization Code Flow।
- Authorization Request:
Implicit Flow (যেমন ক্লায়েন্ট সাইড অ্যাপ্লিকেশনগুলির জন্য):
এই ফ্লোতে, Access Token সরাসরি ব্যবহারকারী থেকে ক্লায়েন্ট সাইড অ্যাপ্লিকেশনে পাঠানো হয়, কারণ সিকিউরিটি ইস্যু কম থাকে।
প্রক্রিয়া:
- Authorization Request:
ব্যবহারকারীকে সরাসরি Authorization Server-এ পাঠান, যেখানে তারা অনুমতি দেয়। - Access Token:
Authorization Server সরাসরি Access Token প্রদান করবে (কোনো Authorization Code ছাড়া)।
উদাহরণ:
URL এ Access Token সরাসরি পাওয়া যায়:https://authorization-server.com/oauth/authorize? response_type=token& client_id=CLIENT_ID& redirect_uri=REDIRECT_URI& scope=read- Authorization Request:
Resource Owner Password Credentials Flow (যেমন ট্রাস্টেড অ্যাপ্লিকেশনগুলির জন্য):
এই ফ্লোতে, ব্যবহারকারীর পাসওয়ার্ড সরাসরি অ্যাপ্লিকেশন দ্বারা সংগ্রহ করা হয়, এবং এক্ষেত্রে Authorization Server টোকেন সরবরাহ করে।
প্রক্রিয়া:
- User Credentials:
ব্যবহারকারীর ইউজারনেম এবং পাসওয়ার্ড সরাসরি সংগ্রহ করুন। - Request Token:
ব্যবহারকারীর তথ্য Authorization Server-এ পাঠান।
উদাহরণ:
POST https://authorization-server.com/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=password &username=USER_NAME &password=USER_PASSWORD &client_id=CLIENT_ID &client_secret=CLIENT_SECRET- User Credentials:
Client Credentials Flow (যেমন সার্ভিস-টু-সার্ভিস অথোরাইজেশন):
এই ফ্লোটি যখন ব্যবহারকারী নেই এবং শুধুমাত্র সার্ভিস অ্যাক্সেসের প্রয়োজন হয়, তখন এটি Access Token সরাসরি ক্লায়েন্টের মাধ্যমে পাওয়া যায়।
প্রক্রিয়া:
- Client Authentication:
ক্লায়েন্ট সরাসরি Authorization Server-এ পাঠায়client_idএবংclient_secret। - Request Token:
Authorization Server অ্যাক্সেস টোকেন প্রদান করবে।
উদাহরণ:
POST https://authorization-server.com/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials &client_id=CLIENT_ID &client_secret=CLIENT_SECRET- Client Authentication:
Access Token ব্যবহারের পরবর্তী পদক্ষেপ
একবার আপনি Access Token সংগ্রহ করলে, এটি সাধারণত HTTP হেডারে পাঠানো হয় API বা রিসোর্স সার্ভারে রিকোয়েস্ট করার জন্য। উদাহরণ:
GET https://api.example.com/user
Authorization: Bearer ACCESS_TOKENএখানে:
ACCESS_TOKENহলো সরাসরি সংগ্রহ করা Access Token।Authorizationহেডার ব্যবহার করা হয় টোকেন প্রেরণের জন্য।
সারসংক্ষেপ
- Access Token সরাসরি সংগ্রহ করা OAuth 2.0 প্রোটোকলের বিভিন্ন প্রবাহের মাধ্যমে সম্ভব। উদাহরণস্বরূপ, Authorization Code Flow, Implicit Flow, Resource Owner Password Credentials Flow, এবং Client Credentials Flow।
- Access Token সংগ্রহ করার পরে এটি নিরাপদভাবে ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে রিসোর্স অ্যাক্সেস করতে সহায়ক।
Read more