OpenID Connect (OIDC) হলো একটি প্রোটোকল যা OAuth 2.0 এর উপরে নির্মিত, এবং এটি ব্যবহারকারীর অথেনটিকেশন (authentication) এর জন্য একটি নিরাপদ সমাধান প্রদান করে। এটি মূলত OAuth 2.0-কে এক্সটেন্ড করে এবং ব্যবহারকারীর পরিচয় যাচাই করার পাশাপাশি তাদের প্রোফাইল তথ্যের অ্যাক্সেসের জন্য অনুমতি প্রদান করে।
OpenID Connect-এর ভূমিকা এবং OAuth 2.0 এর সাথে এর ইন্টিগ্রেশন খুবই গুরুত্বপূর্ণ কারণ এটি আধুনিক অ্যাপ্লিকেশন এবং সিস্টেমগুলিতে নিরাপদ অথেনটিকেশন এবং অথোরাইজেশন ব্যবস্থা সহজ করে।
OpenID Connect এর ভূমিকা
OpenID Connect মূলত OAuth 2.0 এর উপর ভিত্তি করে তৈরি এবং এটি একটি authentication স্তর যোগ করে যা ব্যবহারকারীর পরিচয় যাচাই করে। যেখানে OAuth 2.0 মূলত authorization প্রদান করে (অর্থাৎ, অনুমতি দেয় একটি অ্যাপ্লিকেশন বা সার্ভিসকে রিসোর্স অ্যাক্সেস করার জন্য), OpenID Connect এই প্রক্রিয়াতে ব্যবহারকারীর পরিচয় যাচাই করার মাধ্যমে authentication সিস্টেম যুক্ত করে।
OpenID Connect মূলত OAuth 2.0-এর দুটি সমস্যার সমাধান করে:
- Authentication: OAuth 2.0 শুধুমাত্র অনুমতি প্রদান করে কিন্তু ব্যবহারকারীর পরিচয় যাচাই করার জন্য কিছু সরবরাহ করে না।
- ID Token: OpenID Connect একটি ID Token প্রদান করে যা ব্যবহারকারীর পরিচয় সম্পর্কিত তথ্য ধারণ করে এবং অ্যাপ্লিকেশন বা সার্ভিসগুলিকে ব্যবহারকারীকে সঠিকভাবে শনাক্ত করতে সাহায্য করে।
OAuth 2.0 এবং OpenID Connect এর মধ্যে সম্পর্ক
OAuth 2.0 এবং OpenID Connect-এ কিছু মৌলিক পার্থক্য রয়েছে, তবে OpenID Connect, OAuth 2.0 এর উপর ভিত্তি করে কাজ করে এবং এটি একটি authentication layer যোগ করে।
- OAuth 2.0:
- মূলত authorization এর জন্য ব্যবহৃত হয়।
- এটি একটি access token প্রদান করে যা রিসোর্স বা ডেটা অ্যাক্সেসের অনুমতি দেয়।
- OAuth 2.0 একেবারে নিরপেক্ষ এবং এটি অ্যাপ্লিকেশনগুলিকে অনুমতি দেয় তৃতীয় পক্ষের সার্ভিস বা API থেকে নির্দিষ্ট ডেটা অ্যাক্সেস করতে, তবে এটি ব্যবহারকারীর পরিচয় যাচাই বা শনাক্ত করার জন্য কিছুই প্রদান করে না।
- OpenID Connect:
- OAuth 2.0-এর উপর ভিত্তি করে, এটি authentication যোগ করে।
- এটি একটি ID Token প্রদান করে যা ব্যবহারকারীর শনাক্তকরণের জন্য প্রয়োজনীয় তথ্য ধারণ করে।
- ID Token ব্যবহারকারীকে শনাক্ত করার জন্য এবং লগইন ব্যবস্থাকে কার্যকরী করতে সহায়ক।
OAuth 2.0 এবং OpenID Connect এর ইন্টিগ্রেশন
OpenID Connect এবং OAuth 2.0 একসাথে কাজ করে, তবে তাদের উদ্দেশ্য এবং ব্যবহারের ক্ষেত্র ভিন্ন। OpenID Connect OAuth 2.0 কে authentication এর জন্য ব্যবহার করে এবং ID Token ব্যবহার করে ব্যবহারকারীর পরিচয় যাচাই করার জন্য একটি নিরাপদ পদ্ধতি প্রদান করে।
- OAuth 2.0 এর সাথে OpenID Connect এর ইন্টিগ্রেশন:
- OAuth 2.0 এর মাধ্যমে ব্যবহারকারী একটি Authorization Code বা Implicit Flow ব্যবহার করে Authorization Server থেকে access token প্রাপ্ত করে।
- OpenID Connect-এ এই প্রবাহের মধ্যে ID Token অন্তর্ভুক্ত করা হয়, যা ব্যবহারকারীর শনাক্তকরণ তথ্য ধারণ করে। এটি JSON Web Token (JWT) ফর্ম্যাটে থাকতে পারে।
- ID Token ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারী সম্পর্কে বিভিন্ন তথ্য যেমন নাম, ইমেইল ঠিকানা, এবং অন্যান্য প্রোফাইল তথ্য প্রদান করে।
- Authorization Code Flow:
OpenID Connect ব্যবহারকারীর authentication চেক করার জন্য Authorization Code Flow ব্যবহার করে।- প্রথমে, ব্যবহারকারী Authorization Server-এ রিডিরেক্ট হয়।
- Authorization Server ব্যবহারকারীর অনুমতি চায় এবং কোড প্রদান করে।
- ক্লায়েন্ট অ্যাপ্লিকেশন এই কোডটি Authorization Server-এ পাঠিয়ে access token এবং ID token প্রাপ্ত করে।
- ID token ব্যবহারকারীর শনাক্তকরণের তথ্য প্রদান করে, যা ক্লায়েন্টকে ব্যবহারকারীকে সঠিকভাবে শনাক্ত করতে সহায়ক।
- Implicit Flow:
কিছুক্ষেত্রে, Implicit Flow ব্যবহৃত হয় যেখানে টোকেন সরাসরি ব্রাউজারে পাঠানো হয় (অথবা ক্লায়েন্ট সাইড অ্যাপ্লিকেশনে)। যদিও এটি কম নিরাপদ, তবে OpenID Connect-এর সাথে এটি ID Token সরাসরি পাঠানোর জন্য উপযুক্ত। - Refresh Token:
OAuth 2.0 এবং OpenID Connect উভয়েই Refresh Tokens ব্যবহার করে। যদি access token এর মেয়াদ শেষ হয়ে যায়, তবে ক্লায়েন্ট অ্যাপ্লিকেশনটি Refresh Token ব্যবহার করে নতুন access token এবং ID Token প্রাপ্ত করতে পারে।
OpenID Connect এবং OAuth 2.0 এর মধ্যে মূল পার্থক্য
| বিষয় | OAuth 2.0 | OpenID Connect |
|---|---|---|
| ভূমিকা | Authorization (অথোরাইজেশন) | Authentication (অথেনটিকেশন) |
| প্রধান উদ্দেশ্য | API এবং রিসোর্স অ্যাক্সেস অনুমতি প্রদান | ব্যবহারকারীর পরিচয় যাচাই এবং শনাক্তকরণ |
| Token | Access Token (অ্যাক্সেস টোকেন) | Access Token + ID Token (অ্যাক্সেস টোকেন + আইডি টোকেন) |
| যত্ন নেওয়া হয় | অ্যাপ্লিকেশনগুলির জন্য অনুমতি প্রদান | ব্যবহারকারীর শনাক্তকরণ এবং প্রোফাইল তথ্য প্রদান |
| Scope | নির্দিষ্ট রিসোর্স বা ডেটা অ্যাক্সেস | authentication এবং profile তথ্য (openid scope) |
সারসংক্ষেপ
OpenID Connect হলো OAuth 2.0 এর একটি এক্সটেনশন যা authentication এর জন্য ডিজাইন করা। OAuth 2.0 কেবল authorization প্রদান করে, যেখানে OpenID Connect এর মাধ্যমে ব্যবহারকারীর identity যাচাই করা হয়। OpenID Connect-এর সাথে OAuth 2.0 এর ইন্টিগ্রেশন ব্যবহারকারীর পরিচয় এবং অ্যাক্সেস নিয়ন্ত্রণ সিস্টেমের একটি শক্তিশালী সমাধান প্রদান করে। OpenID Connect ব্যবহারের মাধ্যমে ক্লায়েন্ট অ্যাপ্লিকেশনগুলি নিরাপদভাবে ব্যবহারকারীর প্রোফাইল তথ্য অ্যাক্সেস করতে পারে, সেই সাথে নিরাপদভাবে তাদের সিস্টেমে লগ ইন করতে সক্ষম হয়।
Read more