मुझे एहसास है कि इस विषय पर कई प्रश्न हैं, और मैं इसे दो दिनों के लिए शोध कर रहा हूं। मैं यह सुनिश्चित करना चाहता हूं कि मेरा प्रश्न जितना संभव हो उतना सटीक है क्योंकि मुझे अभी तक सर्वोत्तम दृष्टिकोण की पूर्ण समझ हासिल नहीं हुई है।दोनों वेब क्लाइंट और मोबाइल के लिए अनुशंसित कॉन्फ़िगरेशन REST api सुरक्षा
वर्तमान में मेरे पास एक विकसित django साइट है, वेब क्लाइंट संभवतः लगभग 9 5% एक django-piston json REST api के माध्यम से संचार कर रहा है। अन्य 5% कुछ पुनर्निर्मित लॉगिन कार्यक्षमता है जो अभी भी सीएसआरएफ सुरक्षा के साथ पोस्ट फॉर्म के माध्यम से जाती है। आदर्श रूप में मैं शेष को भी आरईएसटी एपीआई में ले जाना चाहता हूं।
मैं उस बिंदु पर हूं जहां मुझे वेब क्लाइंट और मोबाइल क्लाइंट (अभी तक विकसित होने वाला ऐप) दोनों को पुन: प्रयोज्य और खुशी से सह-मौजूदा फैशन में सुरक्षित करने के लिए सबसे अच्छा अनुशंसित समाधान पता लगाने की आवश्यकता है। मैंने अंततः मोबाइल पक्ष के लिए ओएथ 2 (और https) की सिफारिश की कई पोस्ट पढ़ी हैं, लेकिन मैं अभी भी वेब क्लाइंट सुरक्षा को स्थापित करने के बारे में उलझन में हूं। मैं OAuth2 पहलू को समझने के लिए भी समझ रहा हूं और क्या मैं 2-पैर वाले रूप का उपयोग कर सकता हूं। जैसा कि यह खड़ा है, वेब क्लाइंट django प्रमाणीकृत है। तकनीकी रूप से जेसनपी कार्यक्षमता अभी भी पिस्टन में सक्रिय है, इसलिए मुझे लगता है कि कोई भी तृतीय पक्ष ऐप से एपीआई का उपयोग कर सकता है जब तक उनके वेब सत्र में ऑथ कुकीज़ हो? मेरी एपीआई के उपयोग के
सारांश:
- API सर्वर अनुप्रयोग के लिए एक पूरी तरह से निजी इंटरफेस है
- यह आदर्श हो सकता है अगर एपीआई व्यापक रूप से 3 पार्टी वेब द्वारा पुन: उपयोग नहीं किया जा सकता है क्लाइंट मैशप
- डेटा एनसीसी संवेदनशील नहीं है। इसका बस सबसे व्यक्तिगत जानकारी ईमेल, पते की तरह बुनियादी उपयोगकर्ता प्रोफ़ाइल सामान होने के साथ एक सामाजिक-प्रकार साइट, आदि
मेरे सवालों का सारांश:
- OAuth2 सबसे अच्छा सिफारिश की दृष्टिकोण है मोबाइल ऐप्स को सुरक्षित करने के लिए? क्या वेब क्लाइंट पहलू के साथ इसका कोई संबंध नहीं है? और यदि OAuth2 की अनुशंसा की जाती है, तो क्या यह एक एप्लिकेशन-व्यापी कुंजी होनी चाहिए जिसे ऐप रिलीज़ के साथ संस्करणित किया गया हो?
- क्या वेब क्लाइंट AJAX पर पारित सीएसआरएफ का उपयोग करना चाहिए, और बस हमेशा एक ही उत्पत्ति सुनिश्चित करने के लिए jsonp अक्षम करें? असल में, क्या मैं वेब क्लाइंट सुरक्षा को अलग से इलाज कर रहा हूं?
- मैं वेब बनाम मोबाइल सुरक्षा को बनाए रखने के लिए यूआरएल/ऐप उदाहरण/सबडोमेन या जो कुछ भी अनुशंसा की जाती है उसे व्यवस्थित करने के बारे में कैसे जाना चाहिए? क्या मुझे बस अलग यूआरएल उपसर्ग की आवश्यकता है, एक मोबाइल के लिए जो विभिन्न नियमों का उपयोग करता है?
मैं इन समस्याओं को हल करने के लिए django-piston विशिष्ट अनुशंसाओं की तलाश में हूं। मैंने पहले ही अपनी परियोजना को ब्रांच किया है और पिस्टन के इस फोर्क संस्करण के साथ खेलना शुरू कर दिया है: https://bitbucket.org/jespern/django-piston-oauth2
एक विचार मुझे एक पिस्टन संसाधन बनाने के लिए था जो पहले इसकी जांच करता है या फिर केवल django auth को लागू करता है, अन्यथा यह oauth2 लागू करता है, लेकिन मुझे यकीन नहीं है कि यह भी उचित है या नहीं।
अद्यतन 1/1/2012
जानकारी कील कि प्रदान की जाती से, मैं पिस्टन-OAuth2 के साथ काम शुरू कर दिया।मैं nonrel Django (MongoDB) के लिए कुछ सुधारों को जोड़ने के लिए इस बात का एक कांटा बना दी और मैं किसी के उदाहरण काँटेदार भी OAuth2 और पिस्टन उपयोग करने के लिए:
https://bitbucket.org/justinfx/django-piston-oauth2-nonrel-example
अब अपने बस की मुझे वास्तव में इस hooking के एक मामले अपनी परियोजना के लिए और काम कर रहा है। लेकिन ये परीक्षण सभी महान काम करते हैं।
अब _this_ एक अच्छी तरह से लिखा सवाल यह है: यह अच्छी तरह से आप के लिए काम नहीं करता है, वहाँ एक उत्कृष्ट Django OAuth2 स्टैंडअलोन सर्वर है कि मैं का उपयोग किया है है! कुछ लोगों को देखने के लिए अच्छा लगा। – Polynomial
धन्यवाद! मैं वास्तव में एसओ पर एक प्रश्न पूछने की कोशिश नहीं करता अगर मुझे पता है कि यह अच्छी तरह से विस्तृत नहीं है और पहले से ही पूछा गया था। मैं यहां पर बहुत से लोगों को देख रहा हूं कि केवल 2 वाक्यों को छोड़कर और हर किसी को समस्याएं हल करने के लिए कहें :-) – jdi