2016-12-15 8 views
6

मैं वर्तमान में जावा स्प्रिंग क्लाउड पर माइक्रोस्कोस आधारित प्रणाली का निर्माण कर रहा हूं। कुछ सूक्ष्मजीव पोस्टग्रेएसक्यूएल और उनमें से कुछ मोंगोडीबी का उपयोग करते हैं। संचार के लिए आरईएसटी और जेएमएस का उपयोग किया जाता है। योजना प्रमाणीकरण के लिए एसएसओ और ओएथ 2 का उपयोग करना हैसूक्ष्मजीवों में प्राधिकरण - एसीएल का उपयोग कर डोमेन ऑब्जेक्ट या इकाई स्तर पहुंच नियंत्रण से कैसे संपर्क करें?

मुझे जिस चुनौती का सामना करना पड़ रहा है वह यह है कि प्रमाणीकरण डोमेन ऑब्जेक्ट/इकाई स्तर पर किया जाना है। इसका मतलब है कि किसी प्रकार की एसीएल (एक्सेस कंट्रोल लिस्ट) की आवश्यकता है। इस तरह के आर्किटेक्चर के लिए सबसे अच्छा अभ्यास इस तरह से कुछ से बचने के लिए है और हर माइक्रोस्कोस में आवेदन/सेवा परत स्तर पर मोटे अनाज की सुरक्षा है लेकिन दुर्भाग्यवश यह संभव नहीं है।

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

मैं वितरित समाधान के विभिन्न प्रकार के विचार कर रहा था, लेकिन उन्हें छोड़ दिया:

एसीएल के साथ
  • एक microservice और बाकी का उपयोग कर इसे तक पहुँचने - समस्या भी कई http कॉल और निष्पादन में कमी है। मुझे आराम से कॉल
  • एसीएल अपनी इकाइयों के लिए प्रत्येक माइक्रोस्कोप में डीबी एक्सेस को प्रतिस्थापित करने के लिए स्प्रिंग सिक्योरिटी एसीएल का विस्तार करना होगा - काफी उचित लगता है लेकिन कुछ अन्य सूक्ष्मजीवों या एक ही इकाई को सिंक्रनाइज़ किए गए इकाइयों के कुछ पढ़ने वाले मॉडल रखने की स्थिति की कल्पना करें विभिन्न बाध्य संदर्भों में (विभिन्न सूक्ष्मजीव)। एसीएल वास्तव में अप्रबंधनीय बन सकता है और त्रुटियों का स्रोत हो सकता है।
  • एसीएल टेबल के साथ एक माइक्रोस्कोस जो अन्य माइक्रोस्कोपिस को रीड मॉडल के रूप में सिंक्रनाइज़ किया जाता है। समस्या यह है कि मोंगोडीबी के लिए स्प्रिंग सिक्योरिटी एसीएल में कोई समर्थन नहीं है। मैंने जिथब पर कुछ कस्टम समाधान देखे हैं और हां यह करने योग्य है। लेकिन ... जब एक नई इकाई बनाते हैं तो मुझे माइक्रोस्कोयर में रिकॉर्ड बनाना होता है जो एसीएल का मालिक होता है और फिर यह अतुल्यकालिक रूप से इकाई के स्वामित्व वाले माइक्रोस्कोयर को एक पठित मॉडल के रूप में सिंक्रनाइज़ किया जाता है। यह एक आसान समाधान के रूप में नहीं लगता है
  • एपीआई गेटवे पर कुछ यूआरएल आधारित अभिगम नियंत्रण चुनें। लेकिन मुझे किसी भी तरह स्प्रिंग सिक्योरिटी एसीएल को संशोधित करना होगा। एपीआई गेटवे को अन्य सेवाओं के बारे में बहुत कुछ पता होना होगा। अभिगम नियंत्रण की ग्रैन्युलरिटी रीस्ट एपी ग्रॅन्युलरिटी के लिए बाध्य है। हो सकता है कि मैं उन सभी परिणामों और अन्य समस्याओं की कल्पना नहीं कर सकता जो इस दृष्टिकोण को
  • लाएंगे अंततः साझा डीबी के साथ समाधान मेरा पसंदीदा है। असल में यह पहला था जिसे मैंने अयोग्य घोषित कर दिया क्योंकि यह "साझा" डेटाबेस है। लेकिन संभावनाओं के माध्यम से जाने के बाद मुझे यह लग रहा था कि यह एकमात्र ऐसा काम करेगा जो काम करेगा। अगर मैं किसी प्रकार की कैशिंग का उपयोग करना चाहता हूं तो कुछ और जटिल जटिलता है क्योंकि वितरित कैश की आवश्यकता होगी।

मैं वास्तव में कुछ सलाह और विचारों का उपयोग करता हूं कि आर्किटेक्चर तक कैसे पहुंचे क्योंकि यह वास्तव में मुश्किल है और यहां कई चीजें गलत हो सकती हैं।

बहुत धन्यवाद,

लुकास

+0

मैं इस दृष्टिकोण पर भी विचार कर रहा हूं। अब मैं एक पुस्तकालय वेबपैप की तलाश में हूं जो एसीएल व्यवस्थापक जीयूआई प्रदान करेगा। तुम यह कैसे कर रहे हो सब हाथ से खुद? – Adam

+1

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

उत्तर

1

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

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

विशेषताएँ आपके भंडार में उपयोगकर्ताओं की पहचान के साथ बंधी हुई हैं और संग्रहीत हैं, और आपके प्रमाणीकरण के दौरान पुनर्प्राप्त की गई हैं।

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