ID Token হলো একটি বিশেষ ধরনের টোকেন যা OpenID Connect (OIDC) প্রোটোকল থেকে আসা একটি অংশ। এটি একটি JSON Web Token (JWT) যা ব্যবহারকারী বা সত্ত্বার পরিচয় সম্পর্কে তথ্য প্রদান করে। ID Token সাধারণত OAuth 2.0 প্রোটোকলের সাথে ব্যবহৃত হয় এবং এর উদ্দেশ্য হলো ব্যবহারকারীর প্রমাণীকরণ নিশ্চিত করা।
ID Token মূলত ব্যবহারকারীর সঠিক পরিচয় যাচাই করতে ব্যবহৃত হয়, এবং এটি সিস্টেমে লগ ইন করা ব্যবহারকারীর সম্পর্কিত প্রমাণীকরণ সম্পর্কিত তথ্য ধারণ করে। এটি নিরাপদভাবে স্বাক্ষরিত হয় এবং এক্সচেঞ্জ করা যায় যাতে ম্যান-ইন-দ্য-মিডল (MITM) আক্রমণ থেকে সুরক্ষা থাকে।
ID Token এর স্ট্রাকচার
ID Token মূলত একটি JWT (JSON Web Token) যা তিনটি অংশে বিভক্ত থাকে: Header, Payload, এবং Signature।
- Header: এটি সাধারণত কোন এলগরিদম ব্যবহৃত হবে এবং কিসের জন্য সাইন করা হয়েছে তা নির্দেশ করে। উদাহরণস্বরূপ,
HS256বাRS256এলগরিদম হতে পারে। - Payload: এটি মূলত ডেটা ধারণ করে, এবং এর মধ্যে সাধারণত Claims থাকে। Claims বিভিন্ন ধরনের হতে পারে:
- Registered Claims: যেমন
iss(issuer),sub(subject),aud(audience),exp(expiry time),iat(issued at time) ইত্যাদি। - Public Claims: এটি ব্যবহারকারীর কিছু নির্দিষ্ট তথ্য, যেমন ব্যবহারকারীর নাম বা ইমেইল ঠিকানা ধারণ করতে পারে।
- Private Claims: কাস্টম ডেটা যা আপনার অ্যাপ্লিকেশন অনুযায়ী নির্ধারণ করা হয়।
- Registered Claims: যেমন
- Signature: ID Token এর সিগনেচার অংশটি JWT Header এবং Payload থেকে তৈরি হয় এবং একটি গোপন সিক্রেট কিওর মাধ্যমে সাইন করা হয়। এটি নিশ্চিত করে যে টোকেনটি পরিবর্তিত হয়নি এবং প্রামাণিক।
উদাহরণ:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.A5M8zxwMk8-TnxElXBV3Xb64lW72wtd9dxwGH1LOebcএটি একটি Base64URL-encoded JWT যা তিনটি অংশে বিভক্ত: Header, Payload এবং Signature।
ID Token এর প্রধান বৈশিষ্ট্যসমূহ
- ব্যবহারকারীর পরিচয় যাচাই করা:
ID Token ব্যবহারকারী সম্পর্কে তথ্য প্রদান করে, যেমন প্রমাণীকৃত ব্যবহারকারীর নাম, ইমেইল ঠিকানা, লগ ইন করা সময় ইত্যাদি। এটি মূলত প্রমাণীকরণ নিশ্চিত করার জন্য ব্যবহৃত হয়। OAuth 2.0-এ Authorization Code Flow বা Implicit Flow ব্যবহারকারীর লগ ইন প্রক্রিয়ায় ID Token প্রদান করে। - JWT ফরম্যাট:
ID Token একটি JWT (JSON Web Token) এবং এটি সিগনেচারের মাধ্যমে সুরক্ষিত থাকে। সিগনেচার ব্যবহারকারী টোকেনের নিরাপত্তা নিশ্চিত করে, এবং এটি প্রমাণ করে যে টোকেনটি ম্যানিপুলেট বা পরিবর্তন করা হয়নি। - সম্মতি প্রদান:
ID Token সাধারণত OpenID Connect এর মাধ্যমে প্রদান করা হয়। OpenID Connect হল একটি প্রোটোকল যা OAuth 2.0 এর উপর ভিত্তি করে ব্যবহারকারীর প্রমাণীকরণ এবং অ্যাক্সেস প্রদান করে। - One-Time Login (Single Sign-On):
ID Token ব্যবহারকারীর লগ ইন সম্পন্ন হওয়ার পর এটি একবার ব্যবহার করা যায়। এর মাধ্যমে Single Sign-On (SSO) তৈরি করা হয়, যেখানে ব্যবহারকারী একবার লগ ইন করে একাধিক অ্যাপ্লিকেশন বা সার্ভিসে অ্যাক্সেস পেতে পারেন। এটি ব্যবহারকারীর অভিজ্ঞতা সহজতর করে। - অ্যাপ্লিকেশন অনুমতি:
ID Token-এর মাধ্যমে ক্লায়েন্ট অ্যাপ্লিকেশনগুলি সিস্টেমের সাথে একত্রিত হয়ে একটি সুরক্ষিত অথেনটিকেশন প্রক্রিয়া গ্রহণ করে এবং ব্যবহারকারীর পরিচয় যাচাই করার পরই অ্যাক্সেস প্রদান করে।
ID Token এর প্রয়োগ
- Single Sign-On (SSO):
- ID Token-এর প্রধান প্রয়োগ হলো Single Sign-On (SSO) ব্যবস্থা। যখন ব্যবহারকারী একটি অ্যাপ্লিকেশন বা সিস্টেমে লগ ইন করে, তখন তাকে আবার অন্য অ্যাপ্লিকেশনে লগ ইন করতে হয় না। ID Token ব্যবহার করে একাধিক অ্যাপ্লিকেশন বা সার্ভিসে একই লগ ইন সেশন থেকে প্রবেশ করা যায়।
- উদাহরণ: গুগল বা ফেসবুকের মাধ্যমে একটি ওয়েব অ্যাপ্লিকেশন লগ ইন করার পর, একই লগিন তথ্য দিয়ে অন্য কোন অ্যাপ্লিকেশনে সাইন ইন করা যায়।
- OAuth 2.0 এবং OpenID Connect এর মাধ্যমে প্রমাণীকরণ:
- ID Token সাধারণত OpenID Connect প্রোটোকলের মাধ্যমে ব্যবহৃত হয়, যা OAuth 2.0 এর উপর ভিত্তি করে কাজ করে। এটি একটি প্রমাণীকরণ সিস্টেম এবং ব্যবহারকারীকে অ্যাপ্লিকেশন অথবা সেবা ব্যবহারের জন্য একটি নিরাপদ লগিন প্রদান করে।
- উদাহরণ: একটি ওয়েব অ্যাপ্লিকেশন গুগল OAuth এর মাধ্যমে ব্যবহারকারীকে প্রমাণীকরণ করার জন্য ID Token গ্রহণ করে এবং সেটি ব্যবহারকারীর পরিচয় যাচাই করে।
- ব্যবহারকারীর মেটাডেটা এবং প্রোফাইল তথ্য:
- ID Token প্রমাণীকরণের পরে, এটি ব্যবহারকারীর মেটাডেটা (যেমন নাম, ইমেইল, ইত্যাদি) বা প্রোফাইল সম্পর্কিত তথ্য অ্যাপ্লিকেশনে প্রদান করে।
- উদাহরণ: একটি অ্যাপ্লিকেশন ব্যবহারকারীর নাম এবং ইমেইল আইডি ID Token থেকে সরাসরি গ্রহণ করে, যাতে তা পাসওয়ার্ড ছাড়াই ব্যবহারকারীকে চিহ্নিত করা যায়।
- API অ্যাক্সেস কন্ট্রোল:
- ID Token ব্যবহৃত হয় বিভিন্ন API-এ অ্যাক্সেস কন্ট্রোলের জন্য, যেখানে প্রমাণীকরণের জন্য শুধুমাত্র ID Token প্রদান করা হয় এবং এটি ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারীর পরিচয় যাচাই করতে সাহায্য করে।
সারাংশ
ID Token হলো OAuth 2.0 এবং OpenID Connect প্রোটোকলের একটি গুরুত্বপূর্ণ অংশ, যা ব্যবহারকারীর প্রমাণীকরণ নিশ্চিত করতে ব্যবহৃত হয়। এটি JSON Web Token (JWT) ফরম্যাটে আসে এবং ব্যবহারকারীর পরিচয় সম্পর্কিত তথ্য প্রদান করে। ID Token-এর মাধ্যমে সিস্টেমে লগ ইন করতে সহায়তা করা হয়, এবং এটি Single Sign-On (SSO) ব্যবস্থায় গুরুত্বপূর্ণ ভূমিকা রাখে। এর নিরাপত্তা সিগনেচার এবং JWT ফরম্যাটের মাধ্যমে নিশ্চিত করা হয়, যা ব্যবহারকারীর তথ্য সুরক্ষিত রাখে।
Read more