2012-08-28 23 views
11

मेरे पास एक ऐप है जो एक एपीआई प्रदान करता है। यह ऐप एक OAuth2 प्रदाता है।ओएथ 2 में ग्राहक रहस्य का उद्देश्य क्या है?

मैं क्लाइंट-साइड केवल ऐप के साथ इस एपीआई (& लिखना) को एक्सेस करना चाहता हूं। मैं इसे आसान बनाने के लिए JSO का उपयोग कर रहा हूं।

यह बहुत अच्छा काम करता है।

बात यह है कि, मुझे अपने क्लाइंट रहस्य (मेरे ऐप में पंजीकृत आवेदन के) कहीं भी प्रवेश करने की आवश्यकता नहीं है। और मैं समझता हूं कि क्यों, यह किसी के लिए उपलब्ध होगा।

तो, यदि मैं क्लाइंट रहस्य के बिना अपने एपीआई तक पहुंच सकता हूं, तो क्या आप मुझे समझा सकते हैं कि इसका उद्देश्य क्या है?

+0

यह भी देखें [OAuth2 में क्लाइंट गुप्त का बिंदु क्या है यदि इसे उपयोग करने की आवश्यकता नहीं है?] (Https://security.stackexchange.com/questions/76351/whats-the-point-of -the-client-secret-in-oauth2-if-it-doesnt-to-be-used) – user

उत्तर

6

अनुरोध पर हस्ताक्षर करने के लिए ओएथ 1.0 में क्लाइंट सीक्रेट का उपयोग किया गया था, इसलिए इसकी आवश्यकता थी। कुछ OAuth2 सर्वर (जैसे कि Google वेब सर्वर एपीआई) को एक्सेस टोकन प्राप्त करने के लिए क्लाइंट राइट भेजा जाना चाहिए (या तो अनुरोध टोकन या रीफ्रेश टोकन से)।

ओएथ 2.0 ने क्लाइंट गुप्त की भूमिका को काफी कम कर दिया है, लेकिन यह अभी भी उन सर्वरों के साथ पास हो गया है जो इसका उपयोग करते हैं।

+0

ठीक है, तो इसे पास नहीं करना एक सुरक्षा चिंता नहीं है? – Robin

+0

जब तक आप जिस ओथ सर्वर से बात कर रहे हैं उसे इसकी आवश्यकता नहीं है, तो इसके बारे में चिंता न करें। –

+0

बात यह है कि ओएथ सर्वर मेरा है, इसलिए हमेशा मुझे मौका मिलता है ^^। लेकिन चूंकि मैं डोरकीपर का उपयोग कर रहा हूं, जो कि एक अच्छा मणि प्रतीत होता है, मैं इसके बारे में चिंता नहीं करूंगा। मैं अभी भी थोड़ा बेहतर समझना चाहूंगा कि इसका वास्तव में उपयोग क्यों नहीं किया जाता है लेकिन अभी भी मौजूद है ... – Robin

-3

यह मुझे तब तक पागल कर रहा था जब तक कि मैंने ऐसा उदाहरण नहीं देखा जिसने जवाब को स्पष्ट रूप से स्पष्ट किया।

सर्वर को सर्वर में लॉग इन करना होगा इससे पहले कि सर्वर मेरी सामग्री तक पहुंच प्रदान करने वाले टोकन को वापस कर देगा।

दूसरे शब्दों में, सर्वर लॉग इन स्क्रीन के साथ मुझे, मानव को प्रस्तुत करेगा यदि मेरे पास पहले से सर्वर के साथ एक वैध लॉगिन सत्र नहीं है। यही कारण है कि स्पष्टीकरण हमेशा कुछ कहता है "यह प्रमाणित करने के लिए सर्वर तक है"।

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

+2

मुझे लगता है कि आप client_secret और auth कोड को भ्रमित कर रहे हैं। उपयोगकर्ता को अनुमति देने के बाद बाद में लौटा दिया जाता है (हालांकि इसे कार्यान्वित किया जाता है)। इसका उपयोग तब access_token का अनुरोध करने के लिए किया जाता है। – AaronHS

8

This discussion क्लाइंट-साइड ऐप्स की तुलना में सर्वर-साइड ऐप्स के लिए क्लाइंट रहस्य अधिक महत्वपूर्ण क्यों है, इस बारे में एक उत्कृष्ट स्पष्टीकरण प्रदान करता है। एक अंश:

वेब ऐप्स [सर्वर-साइड ऐप्स] क्लाइंट रहस्यों का उपयोग करते हैं क्योंकि वे विशाल हमले वैक्टर का प्रतिनिधित्व करते हैं। आइए हम कहें कि कोई व्यक्ति एक डीएनएस एंट्री को जहर देता है और एक नकली ऐप "लुकलाइक" सेट करता है, इस इंटरमीडिएरी डेटा को चूसने के साथ, जुटापोज़ महीनों के लिए नहीं देखा जा सकता है। ग्राहक रहस्य इस हमले वेक्टर को कम करने के लिए माना जाता है। एकल उपयोगकर्ता क्लाइंट के लिए, समझौता एक समय में एक डिवाइस आना पड़ता है, जो तुलना में बेहद अक्षम है।