রিফ্রেশ টোকেন কমপক্ষে দুটি উদ্দেশ্যে পরিবেশন করে। প্রথমত, রিফ্রেশ টোকেন হ'ল এক প্রকার 'প্রমাণ' যা ইতিমধ্যে একটি OAuth2 ক্লায়েন্ট রয়েছে তাদের ডেটা অ্যাক্সেস করার জন্য ব্যবহারকারীদের কাছ থেকে অনুমতি পেয়েছে এবং তাই ব্যবহারকারীকে পুরো OAuth2 প্রবাহের বাইরে যাওয়ার প্রয়োজন ছাড়াই আবার নতুন অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে পারে। এবং দ্বিতীয়ত, দীর্ঘায়িত অ্যাক্সেস টোকেনের তুলনায় এটি সুরক্ষার পুরো প্রবাহকে বাড়িয়ে তুলতে সহায়তা করে। আমি এই দুটি বিষয়ই আরও কিছুটা স্পর্শ করব।
ব্যবহারকারীকে বিরক্ত না করার উপায় হিসাবে টোকেনকে রিফ্রেশ করুন
প্রথম উদাহরণ সম্পর্কে একটি উদাহরণ দিয়ে কথা বলা যাক। মনে করুন আপনি, একজন ব্যবহারকারী, তৃতীয় পক্ষের ক্লায়েন্ট ওয়েব অ্যাপ্লিকেশন ব্যবহার করছেন যা আপনার ইউটিউব অ্যাকাউন্ট ডেটার সাথে ইন্টারেক্ট করতে চায়। আপনি একবার আপনার ইউটিউব ডেটা ব্যবহারের জন্য ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অনুমতি দিলে, আপনি কি ক্লায়েন্ট অ্যাপ্লিকেশনটি আপনাকে অনুমতি দেওয়ার জন্য অনুরোধ করতে চান? আবারএটির ইউটিউব টোকেনের মেয়াদ কখন শেষ? ইউটিউব টোকেনের মেয়াদ শেষ হওয়ার সময়টি খুব কম কিছু ছিল, যেমন 5 মিনিটের মতো happens ক্লায়েন্ট অ্যাপ্লিকেশন আপনাকে কমপক্ষে প্রতি 5 মিনিটে আপনার অনুমতি দেওয়ার জন্য অনুরোধ করাতে একটু বিরক্তিকর হবে! OAuth2 এই 'সমস্যার' জন্য যে সমাধানটির প্রস্তাব দেয় তা হ'ল রিফ্রেশ টোকেন। রিফ্রেশ টোকেন ব্যবহার করে, অ্যাক্সেস টোকেন অল্প সময়ের জন্য থাকতে পারে (যা অ্যাক্সেস টোকেন ফাঁস হয়ে যায় বা কোনওভাবে চুরি হয়ে গেলে কাঙ্ক্ষিত) এবং রিফ্রেশ টোকেন দীর্ঘ (ইআর) লাইভ থাকতে পারে, ক্লায়েন্টকে নতুন অ্যাক্সেস পাওয়ার সুযোগ দেয় টোকেন যখন ব্যবহারকারীর অনুমতি (আবার) প্রয়োজন ছাড়াই মেয়াদ শেষ হয়।
তবে কেন রিফ্রেশ টোকেন? যদি বিন্দুটি যদি অনুমতিগুলির অনুরোধের সাথে ব্যবহারকারীকে ত্রুটিযুক্ত না করা হয়, তবে ক্লায়েন্টটি কেবল "আরে, অনুমোদনের সার্ভার, আমি আরও একটি অ্যাক্সেস টোকেন চাই না কেন" এখন বলতে পারি না! "! বা, "আরে অনুমোদনের সার্ভার, এখানে আমার মেয়াদ উত্তীর্ণ টোকেন, আমাকে একটি নতুন দিন!"! ওয়েল, রিফ্রেশ টোকেন এক ধরণের "প্রুফ" হিসাবে কাজ করে যা ক্লায়েন্টকে কোনও কোনও মৌলিক সময়ে সময়ে ব্যবহারকারীর দ্বারা অ্যাক্সেস দেয়। এই "প্রমাণ "টি রিফ্রেশ টোকেন আকারে ডিজিটালভাবে অনুমোদনের সার্ভার দ্বারা স্বাক্ষরিত হয়েছে। ক্লায়েন্টকে রিফ্রেশ টোকন উপস্থাপনের মাধ্যমে, অনুমোদনের সার্ভারটি যাচাই করতে পারে যে ক্লায়েন্টটি অতীতে এক পর্যায়ে প্রাপ্ত হয়েছিল, ব্যবহারকারীর কাছ থেকে অনুমতি পেয়েছিল এবং ক্লায়েন্টকে আবার ব্যবহারকারীকে অনুরোধ করতে হবে না।
সুরক্ষা বাড়ানোর উপায় হিসাবে টোকেনকে রিফ্রেশ করুন
তবে এটি প্রশ্ন উত্থাপন করে, "আচ্ছা, রিফ্রেশ টোকেনটি ফাঁস হয়ে গেলে বা চুরি হয়ে গেলে বা কেবল কোনও দূষিত ক্লায়েন্ট অ্যাপ্লিকেশন রাখে যা ব্যবহারকারীর অনুরোধে এড়াতে পারে না? আক্রমণকারী কেবল চালিয়ে যেতে পারে না? অনির্দিষ্টকালের জন্য বৈধ অ্যাক্সেস টোকন অর্জন করতে রিফ্রেশ টোকেন ব্যবহার করুন (বা এটি শেষ না হওয়া পর্যন্ত)? এই প্রশ্নটি আমার উল্লেখ করা দ্বিতীয় উদ্দেশ্য নিয়ে আলোচনা করার দিকে পরিচালিত করে, রিফ্রেশ টোকেনগুলি আরও সুরক্ষিত প্রবাহকে অবদান রাখে।
অ্যাক্সেস টোকেনগুলির সাথে উত্থাপিত সমস্যাটি হ'ল, একবার অধিগ্রহণ করার পরে তারা কেবল কখনও রিসোর্স সার্ভারে উপস্থাপিত হয় (উদাহরণস্বরূপ ইউটিউব)। সুতরাং যদি অ্যাক্সেস টোকেনটি চুরি হয় বা আপস করা হয় তবে আপনি কীভাবে রিসোর্স সার্ভারকে সেই টোকেনকে বিশ্বাস না করতে বলবেন? ঠিক আছে, আপনি সত্যিই পারবেন না। এটি করার একমাত্র উপায় হ'ল অনুমোদনের সার্ভারে প্রাইভেট সাইনিং কীটি পরিবর্তন করা (প্রথম যে জায়গায় টোকেনটিতে স্বাক্ষর করা কী)। আমি ভাবছি এটি করা অসুবিধাজনক এবং কিছু ক্ষেত্রে (যেমন Auth0) সমর্থিত নয়।
অন্যদিকে, রিফ্রেশ টোকেনগুলি প্রায়শই অনুমোদনের সার্ভারের কাছে উপস্থাপন করা প্রয়োজন, এবং তাই যদি কারও সাথে আপস করা হয় তবে এটি সম্পূর্ণরূপে রিফ্রেশ টোকনটি বাতিল বা অস্বীকার করা তুচ্ছ এবং কোনও স্বাক্ষর কীগুলি পরিবর্তন করতে হবে না।