मैं एक नई RESTful वेब सेवा स्थापित कर रहा हूं और मुझे एक भूमिका-आधारित अभिगम नियंत्रण मॉडल प्रदान करने की आवश्यकता है । मुझे एक आर्किटेक्चर बनाने की आवश्यकता है जो उपयोगकर्ताओं को सेवाओं तक पहुंचने के लिए अपना उपयोगकर्ता नाम और पासवर्ड प्रदान करने की अनुमति देगा और फिर प्रतिबंधित कर देगा कि वे भूमिकाओं के आधार पर सेवाओं का उपयोग कैसे कर सकते हैं (जो सेवाएं वे उपयोग कर सकते हैं, बनाम पढ़ / लिख सकते हैं, आदि)। उस उपयोगकर्ताओं को सौंपा।
मैंने अन्य प्रश्नों पर गौर किया है और जो मैं चाहता हूं उसके टुकड़े मिले। उदाहरण के लिए, रेस्ट सेवाओं को आराम-प्रमाणीकरण , सर्वोत्तम प्रथाओं के लिए क्रेडेंशियल्स को पास करने के तरीके के बारे में कई महान चर्चाएं हैं । वेबसाइट बनाने के दौरान प्रोग्रामर को क्या पता होना चाहिए ( सार्वजनिक वेब साइट बनाने से पहले हर डेवलपर को क्या पता होना चाहिए) पर कुछ महान संकेत भी हैं ।
लेकिन मैं इन समाधानों को लागू करने वाले सॉफ़्टवेयर आर्किटेक्चर के लिए सर्वोत्तम अभ्यास और पैटर्न पर एक अच्छा पोस्ट, लेख, पुस्तक नहीं ढूंढ पाया।
विशेष रूप से:
- उपयोगकर्ता विवरण और एक्सेस अधिकार कैसे संग्रहीत किए जाने चाहिए? (डेटा मॉडल, स्थान, प्रारूप)
- सर्वर में इनका प्रतिनिधित्व और ट्रैकिंग के लिए अच्छे डिज़ाइन पैटर्न क्या हैं? (स्मृति में सत्र, db हर बार लुकअप आदि)
- कोड आधार में सुरक्षित तरीके से सेवाओं के लिए इन अधिकारों को मैप करने के लिए अच्छे पैटर्न क्या हैं?
- क्या वास्तुशिल्प विकल्प सिस्टम को अधिक सुरक्षित और विश्वसनीय रखने में मदद कर सकते हैं?
- लोगों ने खाइयों से क्या सबक सीखा है?
मैं देख रहा हूँ किसी भी विशिष्ट प्रौद्योगिकियों के बाहर सॉफ्टवेयर वास्तुकला के लिए डिजाइन पैटर्न और सिफारिशें हैं।
(यदि प्रौद्योगिकियां मायने रखती हैं, तो मैं इसे अजगर, मुड़ और एक पोस्टग्रेजल डेटाबेस का उपयोग करके लागू करने की योजना बना रहा हूं)