ताज़ा टोकन कम से कम दो उद्देश्यों को पूरा करता है। सबसे पहले, ताज़ा टोकन एक तरह का 'प्रूफ' है जिसे एक OAuth2 क्लाइंट को अपने डेटा तक पहुंचने के लिए उपयोगकर्ता से पहले ही अनुमति मिल चुकी है , और इसलिए पूरे OAuth2 प्रवाह के माध्यम से उपयोगकर्ता को जाने की आवश्यकता के बिना फिर से एक नए एक्सेस टोकन का अनुरोध कर सकता है। और दूसरा, यह लंबे समय तक एक्सेस टोकन के साथ तुलना करने पर सुरक्षा के पूरे प्रवाह को बढ़ाने में मदद करता है। मैं इन दोनों बिंदुओं पर थोड़ा और विस्तार से बात करूंगा।
उपयोगकर्ता को कष्टप्रद नहीं करने के लिए एक साधन के रूप में ताज़ा करें
एक उदाहरण के साथ पहले उद्देश्य के बारे में बात करते हैं। मान लीजिए, एक उपयोगकर्ता, एक तृतीय पक्ष क्लाइंट वेब एप्लिकेशन का उपयोग कर रहा था, जो आपके YouTube खाते के डेटा के साथ सहभागिता करना चाहता था। एक बार जब आप अपने YouTube डेटा का उपयोग करने के लिए क्लाइंट एप्लिकेशन को अनुमति प्रदान करते हैं, तो क्या आप चाहते हैं कि क्लाइंट ऐप आपको फिर से आपकी अनुमति के लिए संकेत देजब इसका YouTube टोकन समाप्त हो गया? यदि YouTube टोकन समाप्ति समय बहुत कम था, तो 5 मिनट की तरह क्या होता है। यह कम से कम हर 5 मिनट में आपकी अनुमति के लिए मुवक्किल को परेशान करने पर आपको थोड़ा परेशान करेगा! OAuth2 ने इस 'समस्या' का जो प्रस्ताव रखा है, वह ताज़ा है। ताज़ा टोकन का उपयोग करके, एक्सेस टोकन अल्पकालिक रह सकता है (जो कि एक्सेस के लीक होने या किसी तरह चोरी हो जाने की स्थिति में वांछनीय है), और ताज़ा टोकन लंबे समय तक (एर) -lived रह सकता है, जिससे क्लाइंट को एक नया एक्सेस मिल सकेगा टोकन जब उपयोगकर्ता की अनुमति (फिर से) की आवश्यकता के बिना समाप्त हो जाता है।
लेकिन एक ताज़ा टोकन क्यों? यदि बिंदु उपयोगकर्ता को अनुमति अनुरोधों के साथ बग नहीं करने के लिए है, तो क्लाइंट केवल "अरे, प्राधिकरण सर्वर, मुझे एक और टोकन क्यों नहीं चाहिए?" कह सकता है। या, "अरे ऑथराइजेशन सर्वर, यहां मेरा एक्सपायर टोकन है, मुझे एक नया दे दो!"। खैर, ताज़ा टोकन एक तरह के "प्रमाण" के रूप में कार्य करता है, जो क्लाइंट को किसी मूल बिंदु पर समय पर उपयोगकर्ता द्वारा पहुंच प्रदान किया जाता है। यह "प्रमाण" प्राधिकरण सर्वर द्वारा डिजिटल रूप से हस्ताक्षरित किए जा रहे ताज़ा टोकन के रूप में है। ग्राहक द्वारा एक ताज़ा टोकन पेश करने से, प्राधिकरण सर्वर सत्यापित कर सकता है कि क्लाइंट को कुछ समय में, उपयोगकर्ता से अनुमति प्राप्त हुई है, और क्लाइंट को फिर से उपयोगकर्ता को संकेत देने की आवश्यकता नहीं है।
टोकन को सुरक्षा बढ़ाने के साधन के रूप में ताज़ा करें
हालांकि, यह सवाल उठाता है, "ठीक है, अगर ताज़ा टोकन लीक हो जाता है या चोरी हो जाता है, या केवल एक दुर्भावनापूर्ण क्लाइंट एप्लिकेशन द्वारा रखा जाता है तो क्या होता है जो उपयोगकर्ता के अनुरोध पर इसे छुटकारा नहीं देता? क्या हमलावर अभी जारी नहीं रह सकता है?" अनिश्चित काल तक (या जब तक यह समाप्त नहीं हो जाता) तक एक वैध पहुँच टोकन प्राप्त करने के लिए ताज़ा टोकन का उपयोग करें; यह प्रश्न उस दूसरे उद्देश्य पर चर्चा करने की ओर ले जाता है जिसका मैंने उल्लेख किया था, ताज़ा टोकन का अधिक सुरक्षित प्रवाह में योगदान।
टोकन तक पहुँच के साथ जो समस्या उत्पन्न होती है, वह यह है कि एक बार अधिग्रहित करने के बाद, वे केवल संसाधन सर्वर (उदाहरण के लिए YouTube) के लिए प्रस्तुत किए जाते हैं। इसलिए यदि एक्सेस टोकन चुराया या समझौता किया गया है, तो आप संसाधन सर्वर को उस टोकन पर भरोसा नहीं करने के लिए कैसे कहेंगे? ठीक है, तुम सच में नहीं कर सकते। इसे करने का एकमात्र तरीका प्राधिकरण सर्वर पर निजी हस्ताक्षर कुंजी को बदलना होगा (पहली जगह में टोकन पर हस्ताक्षर करने वाली कुंजी)। मुझे लगता है कि यह करने के लिए असुविधाजनक है, और कुछ मामलों में (जैसे Auth0), समर्थित नहीं है।
दूसरी ओर, ताज़ा टोकन को अक्सर प्राधिकरण सर्वर को प्रस्तुत करने की आवश्यकता होती है, और इसलिए यदि कोई समझौता किया जाता है, तो यह ताज़ा टोकन को पूरी तरह से रद्द करने या अस्वीकार करने के लिए तुच्छ है, और किसी भी हस्ताक्षर कुंजी को बदलना नहीं है।