Open Authorization কি? এবং এটি যেভাবে কাজ করে



Open Authorization কি:
আপনি যদি ভার্চুয়াল দুনিয়ায় “Sign in with Google” এরকম কোন বাটন দেখে থাকেন এবং একবার হলেও তাতে ক্লিক করে থাকেন তবে আপনিও Open Authorization (OAuth) সার্ভিসের একজন ব্যাবহারকারী হয়ে গেছেন।

সহজ এবং দ্রুততার জন্য বর্তমানে অনেক সাইটেই এর ব্যাবহার দেখা যাচ্ছে। যা খুব দ্রুত বাড়ছে। হয়তো লক্ষ করে দেখেছেন বড় বড় সাইটের পাশাপাশি ছোট পরিসরের ওয়েবসাইটগুলোতে আলাদা একাউন্ট না খুলেই গুগল, ফেসবুক, ইয়াহু, মাইক্রোসফট একাউন্ট দিয়েই লগিন করা যায়। OAuth এর কাজ মুলত আপনাকে কোন ওয়েবসাইটে লগিন করার ক্ষেত্রে অন্য একটি সাইটের একাউন্টের তথ্য ব্যাবহার করে লগিন করার সুবিধা দেয়া, তাও আবার কোন ধরনের পাসোয়ার্ড ছাড়াই।

মুলত দুটি কারনে OAuth লগিন পদ্ধতিটি খুব জনপ্রিয়তা পেয়েছে। প্রথমত এটি কোন ওয়েব সাইটে একাউন্ট খোলা এবং লগিন করার ঝামেলা থেকে মুক্ত করে দেয়। এবং সর্বাধিক নিরাপত্তা নিশ্চিত করে পুরো প্রক্রিয়াটি সম্পন্ন করে সাইটটি ব্যাবহার উপযোগী করতে মাত্র কয়েক সেকেন্ড সময় লাগে। তাছাড়া এতে ইমেইল-পাসোয়ার্ড টাইপ করার কোন ঝামেলা নাই।

এক্ষেত্রে আপনার ফেসবুক আইডিটি ব্রাউজারে লগিন করা থাকলেই হবে। এবং পুরো প্রক্রিয়াটি সম্পুর্ন নিরাপদ। পাসোয়ার্ড চুরি হবার কোন ভয় নেই (অপরিচিত এবং অবিশ্বস্ত সাইটের ক্ষেত্রে ভিন্যতা হতে পারে।)


উদাহরণঃ
যেমন ধরি, alibaba.com -এ আমি কেনাকাটা করতে চাই। আমরা জানি এখানে কেনাকাটা করতে হলে এই সাইটে আগে একটি একাউন্ট খোলার প্রয়োজন হয়। কিন্তু এখানে OAuth এর ব্যাবস্থা থাকায় আমি চাইলে নাম, ইমেইল, দুই-দুইবার পাসোয়ার্ড টাইপ করে একাউন্ট খোলার পরিবর্তে “Sign In With Facebook” বাটনটা ব্যাবহার করে সেকেন্ডেই লগিন করে ফেলতে পারি।

 

এই সাইটের জন্য কোন আলাদা ইমেইল/পাসোয়ার্ড মনে রাখার ঝামেলা নাই। মজার না পদ্ধতি টা??


   
 



# আবার ধরি, জনপ্রিয় ক্লাউড স্টোরেজ ওয়েবসাইট Dropbox ব্যাবহার করতে চাই। গতানুগতিক পদ্ধতিতে তার জন্য অবশ্যই আমাকে ফুল নেম, ইমেল, পাসওয়ার্ড লিখতে হবে, তারপর মেইলের ইনবক্সে গিয়ে ভেরিফিকেশন করতে করতে হবে। তাছাড়া গতানুগতিক পদ্ধতিতে পরবর্তীতে আবার ড্রুপবক্সে লগিন করার সময় কোন পাসওয়ার্ড এবং কোন মেইল দিয়ে রেজিস্ট্রেশন করেছিলাম তা মনে রাখতে হবে (কারন আমাদের প্রত্যেকেরই ইমেইল একাউন্টের সংখা একাধিক )

কিন্তু ড্রুপবক্সে OAuth সাপোর্ট করার কারনে শুধুমাত্র আমার জিমেইল একাউন্টটিকেই একটি ড্রুপবক্স একাউন্ট হিসেবে ব্যাবহার করতে পারি, ইমেইল-পাসওয়ার্ড টাইপ করার ঝামেলা না করেই।


এভাবে যেসব সাইটে OAuth সাপোর্ট করে সবগুলোতে একটি জিমেইল অথবা ফেসবুক একাউন্ট ব্যাবহার করেই ব্যাবহার করতে পারি। অর্থাৎ একটি সাইটের একাউন্টই আমার ব্যাবহার করা সবগুলো সাইটের একাউন্ট হিসেবে কাজ করছে। এখন মোটামুটি প্রায় সব বড় বড় ওয়েবসাইটেই এই সুবিধা দেয়। 





OAuth কিভাবে কাজ করেঃ
আপনি যখন "Sign with Facebook" বাটনে ক্লিক করেন তখন এটি প্রথমবার একটি পপ-আপ উইন্ডোর মাধ্যমে আপনার ফেসবুক একাউন্ট থেকে আপনার নাম, ইমেইল এড্রেস, ইত্যাদি তথ্য সংগ্রহ করার জন্য অনুমতি চায় (ফেসবুক/গুগল/বিশ্বস্ত সাইটগুলো কখনোই আপনার স্পর্শকাতর তথ্য যেমন পাসওয়ার্ড দিবে না। তাই ভয় নাই) আনুমতি দেয়ার পর উক্ত ওয়েবসাইট আপনার ফেসবুক থেকে নেয়া নাম,ইমেইল দিয়ে স্বয়ংক্রিয়ভাবে একটি একাউন্ট তরি করে। পরবর্তিতে যখন আবার সেই সাইটে লগিন করতে যাবেন তখন এটি প্রথমেই দেখবে এই পরিচয়ে ইতোমদ্ধে একটি একাউন্ট আছে এবং সেটা একই ফেসবুক আইডির মাধ্যমেই অথেন্টিকেশন করা আছে। তাই নতুন একাউন্ট না খুলে আগের একাউন্টে সে তখন এক্সেস দিয়ে দিবে। এতে কোন পাসওয়ার্ড দেয়া লাগবে না। ফেসবুক একাউন্টটাই একটা পাসোয়ার্ড হসেবে কাজ করবে।

এই অথেন্টিকেশন পদ্ধতিটা প্রচলিত পাসওয়ার্ড দেয়ার পদ্ধতি থেকে একেবারেই ভিন্ন। এখানে OAuth সার্ভিসটা কখনোই আপনার ফেসবুকের পাসওয়ার্ড জানবে না। কিন্তু  প্রশ্ন হতে পারে- তাহলে কিভাবে সে একাউন্টের তথ্য পায়?

সার্ভিসটি প্রথমে ফেসবুককে রিকোয়েস্ট করে আপনার নাম, ইমেইল এবং অন্যান্য প্রয়োজনীয় তথ্য দেখার জন্য। তখন ফেসবুক তাকে কতগুলো নম্বর দিয়ে তৈরি একটি এক্সেস টোকেন দেয়। এই টোকেনের বিশেষত্ত হচ্ছে এই টোকেনটি মাত্র একবারই ব্যাবহার করা হয়। প্রথমবার যখন ড্রুপবক্স আপনার নাম আর ইমেইল সংগ্রহ করে ফেলছে তার পরই এই টোকেনের প্রয়োজন শেষ হয়ে গেছে। তাছারা এক্ষেত্রে OAuth শুধুমাত্র আপনার বেসিক কিছু তথ্য যেমন নাম,এমেইল,জন্ম তারিখ, এধরনে তথ্য ছাড়া আর কিছু দেখার পারমিশন পায় না। এক্সেস টোকেন OAuth কে একাউন্টের সেসব তথ্য দেখার পরমিশন দিবে সেগুলো ব্যাতিত আর কিছুই দেখার পারমিশন পাবে না।


(এখানেই প্রথম প্রকাশিত)

Comments

জনপ্রিয় পোস্টগুলো

রিসেন্ট ক্লিয়ার করা উচিৎ নয় যে কারনে!! (আইওএস)

ফ্রী VPS এবং উবুন্টু ডেস্কটপ। সাথে এনড্রয়েড কানেক্ট