2010-06-22 14 views
6

HTTP एक्सेस पर आरईएसटी-स्टाइल जेएसओएन का समर्थन करने वाले दस्तावेज़ डेटाबेस AJAX- समृद्ध अनुप्रयोगों का समर्थन करने के लिए आदर्श लगते हैं जहां ब्राउज़र डेटाबेस को सीधे कॉल कर रहा है , पारंपरिक वेब सर्वर/अनुप्रयोग तर्क घटकों को छोड़कर। एक बार उपयोगकर्ता प्रमाणित होने के बाद इसका एक उदाहरण उपयोगकर्ता प्राथमिकताओं को पुनर्प्राप्त कर सकता है। (लोड के तहत दुर्घटनाग्रस्त होने से पहले बीबीसी होमपेज इसका एक अच्छा उदाहरण हो सकता है!)क्लाइंट (ब्राउजर) एक्सेस के लिए दस्तावेज़-शैली डेटाबेस (मोंगोडीबी, कॉच डीबी, रावेनडीबी) सुरक्षित करना

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

यह सबसे अधिक उपयुक्त बनाने के लिए लगता है, और आसान लागू करने के लिए है, लेकिन मैं सोच रहा था कि क्या किसी को भी वहाँ बाहर एक अनुभव और/या एक विषम वातावरण में दस्तावेज़ डीबीएस का उपयोग कर के बारे में सलाह के लिए किया था?

उत्तर

1

यह शायद आपके द्वारा उल्लेख किए गए प्रत्येक डेटाबेस में भिन्न है। यहां बताया गया है कि यह कैसे CouchDB में काम करता है।

कॉच डीबी आपको उपयोगकर्ताओं और भूमिकाओं का प्रबंधन करने की अनुमति देता है।

आप दस्तावेज़ निर्माण/अद्यतन को प्रतिबंधित करने के लिए अपने डिजाइन दस्तावेज़ों में validate_doc_update फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण के लिए, आप एक सत्यापन लिख सकते हैं जो दस्तावेज अपडेट को किसी के लिए अस्वीकार करता है लेकिन इसके लेखक।

किसी डेटाबेस से दस्तावेज़ कौन पढ़ सकता है, इसे प्रतिबंधित करने के लिए, आप /db_name/_security दस्तावेज़ संपादित कर सकते हैं और उपयोगकर्ताओं या भूमिकाओं को सूचीबद्ध कर सकते हैं।

हालांकि, मुझे नहीं लगता कि आप पढ़ने की पहुंच को और अधिक दानेदार बना सकते हैं (यानी उपयोगकर्ता को केवल उनके द्वारा बनाए गए दस्तावेज़ों को पढ़ने की अनुमति दें)।

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

अधिक विस्तृत जानकारी के लिए, security overview on CouchDB wiki, security chapter of the Relax book और यह short screencast देखें।

+0

मुझे लगता है कि पढ़ने के प्रतिबंध भविष्य की रिलीज के लिए सूची में हैं। – stwissel

+0

कुंजी प्रॉक्सी प्रतीत होती है - मुझे लगता है कि कॉच डीबी के शीर्ष पर एक संपूर्ण वेब स्टैक बनाने का प्रयास इस चरण में बहुत महत्वाकांक्षी है (जब तक कि यह एक बहुत ही सरल ऐप न हो) - प्रॉक्सी के पीछे इसे चलाने से अधिक समझ आता है, और यह काम करता है हमारे लिए। हम MongoDB चला रहे हैं, लेकिन सभी HTTP पहुंच आईआईएस के माध्यम से प्रक्षेपित है - यह सिर्फ काम करता है। –

1

ठीक है, मुझे केवल कॉच डीबी के साथ अनुभव है, लेकिन उम्मीद है कि मैं आपकी मदद कर सकता हूं।

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

+0

क्या आप इसे कैसे करें इस पर दस्तावेज़ में एक लिंक जोड़ सकते हैं? –