2011-10-17 6 views
41

में उपयोगकर्ता प्रमाणीकरण मैं एक वेबपैप बना रहा हूं और Django और पिरामिड के बीच चयन करने के लिए आवश्यक है। मैंने पिरामिड के साथ जाने का फैसला किया।पिरामिड

मुझे लगता है कि पिरामिड अपने प्रमाणीकरण/प्राधिकरण ढांचे के साथ आता है जो अच्छा लग रहा है। लेकिन मैंने पिरामिड में कहीं भी नहीं देखा है जहां उपयोगकर्ता/समूह/अनुमतियां परिभाषित की गई हैं। Django में ये चीजें मुफ्त में आती हैं।

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

Django's definitions इन चीजों में से मुझे बहुत कुछ चाहिए।

क्या कोई मुझे कुछ ऐसा करने के लिए इंगित कर सकता है जिसका मैं उपयोग कर सकता हूं? या मुझे अपना खुद का रोल करने की ज़रूरत है?

उत्तर

62

पिरामिड में अधिक लचीली प्रमाणीकरण प्रणाली है। और हाँ, अगर आप Django के उपयोगकर्ता/समूह/अनुमति अवधारणा की तरह कुछ सरल चाहते हैं, तो लचीला डरावना हो सकता है।

पिरामिड में "उपयोगकर्ता" ऑब्जेक्ट नहीं है, क्योंकि यह आपके डेटा को स्टोर करने या आपके द्वारा उपयोग किए जाने वाले ओआरएम के बारे में कोई धारणा नहीं करता है, इसलिए contrib.auth जैसे आपके लिए कुछ नहीं है। पीईपीआई पर पाए जाने वाले क्रिप्टैकुलर या पासलिब जैसी लाइब्रेरी का उपयोग करके आपको अपने पासवर्ड को हैश/नमक करने की आवश्यकता होगी।

जहां तक ​​पिरामिड सिस्टम के भीतर उपयोगकर्ता/समूह/अनुमतियां चाहते हैं, यह रूटफैक्टरी को परिभाषित करके काफी हद तक प्राप्त किया जा सकता है जिसमें __acl__ है जो समूह को अनुमतियों के लिए मानचित्र बनाता है। अनुमतियों को अनुमति दी जाती है, इस प्रकार आमतौर पर सुंदर स्थिर होते हैं। यदि आप समूह चाहते हैं (क्या पिरामिड "प्रिंसिपल" कहता है) गतिशील होने के लिए भी प्राप्त किया जा सकता है।

मैं पिरामिड wiki2 tutorial, साथ ही साथ shootout demo को देखने का सुझाव दूंगा।

यदि आप स्क्लेक्लेमी का उपयोग करने की योजना बना रहे हैं तो पिरामिड के भीतर प्राधिकरण के साथ सहायता के लिए कुछ तीसरे पक्ष के पैकेज भी हैं। apex एक और पूर्ण स्टैक समाधान है, और ziggurat_foundations आपके आवेदन के लिए उपयोगकर्ताओं और समूहों को सेट करने में आपकी सहायता के लिए SQLAlchemy के ऊपर एक निम्न-स्तरीय परत है।

आपका प्रश्न काफी उच्च स्तर है और प्रमाणीकरण एक "कठिन समस्या" है, इसलिए मैं यहां रुक जाऊंगा और ट्यूटोरियल और संसाधनों को पुन: व्यवस्थित करने से बचूंगा जो पहले से ही पिरामिड ट्यूटोरियल्स से कई तृतीय-पक्ष उदाहरणों में मौजूद हैं। यदि आपके कोई विशिष्ट प्रश्न हैं तो कृपया उनसे अन्य प्रश्न पूछने के लिए स्वतंत्र महसूस करें।

+0

धन्यवाद, यह अच्छी जानकारी है। जितना अधिक मैंने django के कार्यान्वयन (और आपके repsonse के साथ संयोजन में) देखा है, उतना ही मुझे एहसास है कि यह प्रश्न एक SQLAlchemy सवाल है क्योंकि किसी भी 'उपयोगकर्ता' से संबंधित वस्तुओं को SQLAlchemy से बंधने की आवश्यकता होगी। – lostdorje

+2

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

+0

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