2012-02-29 16 views
6

मैं मोबाइल क्लाइंट के लिए Django में एक आरईएसटी इंटरफेस जोड़ने की कोशिश कर रहा हूं। मोबाइल क्लाइंट JSON का उपयोग HTTPS पर करेगा। मैं मोबाइल उपकरणों के लिए इसे पूरा करने के लिए "सर्वश्रेष्ठ" तरीका नहीं ढूंढ पाया है। चारों ओर खोज से, ऐसा लगता है कि # 2 # 1:मोबाइल एप्लिकेशन के लिए एक आरईएसटी एपीआई कैसे सुरक्षित करें?

  1. HTTP प्रमाणीकरण का उपयोग करें और कुकी आधारित सत्र स्थापित करें। सभी लेन-देन HTTP पर होंगे और JSON संदेशों में केवल आदेश या डेटा होगा।
  2. सभी लेनदेन के लिए प्रत्येक JSON संदेश के भीतर उपयोगकर्ता नाम और पासवर्ड (एन्क्रिप्टेड) ​​पास करें और कुकी-आधारित सत्रों पर भरोसा न करें।

उत्तर

1

संख्या 2 बेहतर है, और अपना खुद का रोल करने के बजाए, यदि संभव हो तो मैं ओथ प्रमाणीकरण का उपयोग करने की सलाह दूंगा। क्लाइंट और सर्वर पुस्तकालय दोनों अब अधिकांश प्लेटफार्मों पर उपयोग के लिए आसानी से उपलब्ध हैं। विवरण के लिए http://oauth.net देखें।

+0

इस विषय पर दस्तावेज़/पैटर्न डिजाइन करने के लिए कोई लिंक? – QED

+0

मैं निश्चित रूप से उपर्युक्त Oath.net वेबसाइट के "प्रारंभ करें" अनुभाग से शुरू करूंगा। इसमें आज उपलब्ध ओथ जानकारी की बहुत सारी लिंक हैं। –

+0

ओह, मेरा मतलब था REST – QED

3

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

0

जब तक आप वास्तविक एन्क्रिप्शन का उपयोग नहीं कर रहे हैं और बेस 64 या कुछ होमग्राउन obfuscation एल्गोरिदम नहीं है, # 2 ठीक और बेवकूफ है। आप कई कंपनियों को जो मार्ग लेते हैं, उस पर विचार करना चाहेंगे, जो उपयोगकर्ता नाम के लिए एक एपीआई कुंजी बाध्यकारी है।

+0

क्या एसएसएल में सबकुछ भेजा जाएगा, तो एन्क्रिप्शन अभी भी आवश्यक है? – ewhitt

+0

एसएसएल एन्क्रिप्शन है। यह संचार स्टैक की एक अलग परत पर बस एन्क्रिप्शन है - एसएसएल एक विशेष संदेश की चयनित सामग्री की बजाय पूरे संचार चैनल को एन्क्रिप्ट करता है। इसलिए यह आमतौर पर अधिक महंगा है। दोनों करने के लिए संसाधनों का अपशिष्ट हो सकता है। – QED

8

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

+0

धन्यवाद। मुझे यह दृष्टिकोण पसंद है। क्या इस छंटनी के प्रकार का नाम या कुछ है जो मैं Google को आगे मौका दे सकता हूं? – ewhitt

+0

@ewhitt इसे टोकन आधारित प्रमाणीकरण माना जाता है http://upcoming.yahoo.com/services/api/token_auth.php – Bot

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