2015-04-17 15 views
16

मैं क्या बता सकते हैं, the OAuth 2.0 specification के संदर्भ में अत्यंत अस्पष्ट है क्या फार्म एक access token लेना चाहिए:एक ओएथ 2.0 एक्सेस टोकन एक जेडब्ल्यूटी हो सकता है?

टोकन में प्राधिकरण जानकारी स्वयं हो सकती प्राधिकरण में जानकारी प्राप्त करने के लिए इस्तेमाल या एक पहचानकर्ता निरूपित कर सकते हैं एक सत्यापित तरीका (यानी, एक टोकन स्ट्रिंग जिसमें कुछ डेटा और हस्ताक्षर शामिल होते हैं)। अतिरिक्त प्रमाणीकरण प्रमाण-पत्र, जो इस विनिर्देश के दायरे से बाहर हैं, क्लाइंट को टोकन का उपयोग करने के लिए आवश्यक हो सकता है।

एक्सेस टोकन संसाधन सर्वर द्वारा समेकित एक टोकन के साथ विभिन्न प्राधिकरण संरचनाओं (उदा। उपयोगकर्ता नाम और पासवर्ड) को प्रतिस्थापित करने के लिए एक अमूर्त परत प्रदान करता है। यह अमूर्तता उन्हें प्राप्त करने के लिए उपयोग किए जाने वाले प्राधिकरण अनुदान की तुलना में एक्सेस टोकन को अधिक प्रतिबंधित करने के साथ-साथ प्रमाणीकरण विधियों की विस्तृत श्रृंखला को समझने के लिए संसाधन सर्वर की आवश्यकता को हटाने में सक्षम बनाता है।

एक्सेस टोकन में विभिन्न प्रारूप, संरचना, और संसाधन सर्वर सुरक्षा आवश्यकताओं के आधार पर उपयोग के तरीकों (उदा। क्रिप्टोग्राफिक गुण) हो सकते हैं। एक्सेस टोकन विशेषताओं और संरक्षित संसाधनों तक पहुंचने के लिए उपयोग की जाने वाली विधियां इस विनिर्देश के दायरे से बाहर हैं और RFC6750 जैसे साथी विनिर्देशों द्वारा परिभाषित किया गया है।

(जोर जोड़ा)

जुड़ा हुआ RFC6750 बहुत आगे विशिष्टता प्रदान नहीं करता है। वहाँ एक उदाहरण HTTP प्रतिक्रिया शरीर है कि पता चलता है:

{ 
     "access_token":"mF_9.B5f-4.1JqM", 
     "token_type":"Bearer", 
     "expires_in":3600, 
     "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA" 
    } 

यह संकेत मिलता है कि इस तरह के एक ACCESS_TOKEN इनकोडिंग JSON Web Token (JWT)

मेरे दृष्टिकोण से के रूप में अपारदर्शी ASCII पाठ हो सकता है लगता है, यह जेडब्ल्यूटी के रूप में ACCESS_TOKEN की तरह लगता है कुछ वांछनीय गुण हैं:

  • यह एक ज्ञात विनिर्देश है, जिसमें कई भाषाओं में काफी व्यापक गोद लेने और ग्राहक पुस्तकालय उपलब्ध हैं।

  • यह vetted क्रिप्टोग्राफिक पुस्तकालयों का उपयोग करके आसान हस्ताक्षर और सत्यापन के लिए अनुमति देता है।

  • क्योंकि इसे JSON को डीकोड किया जा सकता है, यह हमें टोकन के भीतर टोकन के बारे में मेटाडेटा और जानकारी शामिल करने की अनुमति देगा।

मेरे प्रश्न हैं: सबसे पहले, क्या यह एक्सेस टोकन के लिए जेडब्ल्यूटी होने की अनुमति है? दूसरा, यदि यह spec के अनुसार अनुमत है, तो क्या कोई अतिरिक्त विचार है जो एक जेडब्ल्यूटी को एक बुरे विचार को एक्सेस करने के रूप में उपयोग करेगा?

उत्तर

21

ए 1: एक जेडब्ल्यूटी को एक्सेस टोकन के रूप में उपयोग करना निश्चित रूप से spec द्वारा अनुमत है क्योंकि spec इसके प्रारूप को प्रतिबंधित नहीं करता है।

ए 2: जेडब्ल्यूटी को एक्सेस टोकन के रूप में उपयोग करने का विचार यह है कि यह तब स्वयं निहित हो सकता है ताकि लक्ष्य पहुंच टोकन को सत्यापित कर सके और प्राधिकरण सर्वर पर वापस जाने के बिना संबंधित सामग्री का उपयोग कर सके। यह एक महान संपत्ति है लेकिन निरसन को कठिन बना देता है। इसलिए यदि आपके सिस्टम को एक्सेस के तत्काल निरसन के लिए एक क्षमता की आवश्यकता है, तो जेडब्ल्यूटी शायद एक्सेस टोकन के लिए सही विकल्प नहीं है (हालांकि आप जेडब्ल्यूटी के जीवनकाल को कम करके बहुत दूर हो सकते हैं)।

+2

यदि आपको कुछ आपदाजनक स्थिति में पहुंच रद्द करने की आवश्यकता है, तो आप केवल रहस्यों को सही ढंग से बदल सकते हैं? – theblang

+0

रहस्य बदलना सभी उपयोगकर्ताओं के लिए सभी जेडब्ल्यूटी टोकन को रद्द करता है। मुझे लगता है कि एक उपयोगकर्ता के लिए जेडब्ल्यूटी टोकन को रद्द करना मुश्किल हो जाता है क्योंकि यह कहीं भी संग्रहीत नहीं होता है। – user1870400

+1

कोई भी परिवर्तन बदलना कुंजी वितरण तंत्र की समयबद्धता को समस्या को धक्का देता है –

3

जब तक प्राधिकरण सर्वर और संसाधन सर्वर एक्सेस टोकन का अर्थ है, इससे कोई फर्क नहीं पड़ता कि इससे कोई फर्क नहीं पड़ता कि उनकी सामग्री क्या है। इसलिए एकमात्र कारण आपको समस्या हो सकती है यदि आप उन दो सर्वरों को लागू करते समय विभिन्न पुस्तकालयों या ढांचे का उपयोग कर रहे थे।

संबंधित मुद्दे