यहाँ चिंता का विषय क्या है के सामने बैठते हैं हैं?
- कुछ सेवाओं अंतिमबिंदुओं जो प्रमाणीकरण की आवश्यकता नहीं है बेनकाब कर सकते हैं
स्प्रिंग सुरक्षा एक permitAll()
पहुंच नियम
- कुछ सेवाओं अंतिमबिंदुओं जो एक सत्र की जरूरत का पर्दाफाश हो सकता है आईडी और कुछ टोकन के साथ ", एक मनमाना अपारदर्शी मान (fo उदाहरण के लिए फ़ाइल डाउनलोड करना अगर आपको "अनुमान लगाने में कठोर" यूआरएल पता है) एपीआई गेटवे/स्प्रिंग सुरक्षा में आप सभी विशिष्ट बिंदुओं को अपने विशिष्ट प्रमाणीकरण आवश्यकताओं के साथ कॉन्फ़िगर कर सकते हैं।
आपका Zuul प्रॉक्सी सत्र हो सकता है। यदि आप स्प्रिंग सिक्योरिटी ओएथ 2.0 का उपयोग कर रहे हैं तो आप ResourceServerSecurityConfigurer#stateless(false)
का उपयोग कर सकते हैं और सत्रों को बनाने के लिए HttpSecurity#sessionManagement().sessionCreationPolicy(...)
के साथ सत्र सक्रिय कर सकते हैं जब भी आपको वैध पहुंच टोकन प्राप्त होता है। एक JSESSIONID कुकी HTTP प्रतिक्रिया में रखा जाएगा।
- कैसे आप वास्तविक सेवा टीमें नीचे की ओर सेवा प्रति आवश्यक सेटिंग प्रदान करने के लिए लागू करते हैं?
मुझे यकीन है कि मैं सवाल यहाँ समझते हैं, नहीं आप एपीआई गेटवे (zuul प्रॉक्सी) के स्तर पर सुरक्षा प्रतिबंधों लागू करना चाहते हैं नहीं कर रहा हूँ? या आप प्रॉक्सी और लक्ष्य एप्लिकेशन दोनों पर "सुरक्षा डबल चेक" रखने की कोशिश कर रहे हैं?
- आप कैसे अनुमति नहीं गेटवे में बार-बार प्रमाणीकरण सेटिंग बदल जाती है (सेवा की जरूरत के अनुसार) पूरे गेटवे को रोकने के लिए बिना?
Zuul आप जोड़ने की अनुमति देता ZuulRoute
रों गतिशील रनटाइम पर, यदि आप एक स्टैंडअलोन पुस्तकालय है कि के रूप में उपयोग। वसंत सुरक्षा में लपेटा गया, जिसका संदर्भ स्टार्टअप समय पर एक बार शुरू किया गया है ... मुझे संदेह है कि आप आसानी से रनटाइम पर सुरक्षा कॉन्फ़िगरेशन को बदल सकते हैं।
संपादित टिप्पणियों में ओपी द्वारा precisions निम्नलिखित: अपनी टीमों को उनकी सुरक्षा नियमों के लिए जिम्मेदार होना चाहिए, तो एक केंद्रीकृत प्रवेश द्वार होने के डिजाइन द्वारा एक विरोधाभास है।
माइक्रोस्कोव दर्शन की मेरी व्याख्या यह है कि प्रत्येक एप्लिकेशन स्टैंडअलोन है, और इसके पूर्ण कार्यात्मक दायरे के प्रभारी, और सुरक्षा/अभिगम नियंत्रण इसका हिस्सा है। आप एप्लिकेशन स्तर पर टोकन को आसानी से सत्यापित कर सकते हैं (या तो प्राधिकरण सर्वर पर कॉल करके या जेडब्ल्यूटी का उपयोग करके), प्रत्येक एप्लिकेशन को परिभाषित करने के लिए कि प्रत्येक संसाधन के लिए कौन सा दायरा आवश्यक है। वसंत बादल में पहले से ही OAuth 2.0 starter है, या यदि आप "सादा" स्प्रिंग बूट का उपयोग करते हैं तो आप आसानी से एक बना सकते हैं।
सुरक्षा के लिए अपस्ट्रीम घटकों पर भरोसा किए बिना या अन्य टीमों के साथ अपने गेटवे कॉन्फ़िगरेशन परिनियोजन को सिंक्रनाइज़ किए बिना, जहां भी आप चाहते हैं (सार्वजनिक क्लाउड या आधार सर्वर पर) अलग-अलग ऐप्स को तैनात कर सकते हैं।
एपीआई गेटवे बात एक आसान प्रलोभन है, लेकिन जोखिम और बाधाओं को नजरअंदाज नहीं है:
- आप आंतरिक कॉल
- सुरक्षित करने में सक्षम आप नदी के ऊपर नेटवर्क पर निर्भर करना होगा नहीं होगा घटकों, और दी गई
- उन्नत अभिगम नियंत्रण नियमों के लिए अपने आवेदन पत्र के इनपुट ले सिरदर्द बन सकता है: कैसे आप उपयोगकर्ता के व्यक्तिगत अनुमतियों मिलता है, आदि
- आप अन्य टीमों
012 के साथ विन्यास बदलाव सिंक्रनाइज़ करना होगा
स्रोत
2015-11-25 17:30:49
धन्यवाद। ठीक है, तो जुउल उपयोगकर्ता को देखेगा और सत्र और सेवाओं के मार्ग को पॉप्युलेट करेगा। सेवाएं स्वयं निर्दिष्ट करेंगे कि कौन से एंडपॉइंट्स को प्रमाणीकरण की आवश्यकता होती है और किस प्रकार का प्रमाणीकरण आवश्यक है। तो यह जिम्मेदारी सेवा टीम के साथ बैठेगी। यह अच्छा है। मेरी सोच यह थी कि मैं इस कार्य से सेवाओं को मुक्त कर सकता हूं। –
जो चीज मुझे परेशान करती है वह यह है कि आप काम करने के लिए डाउनस्ट्रीम एप्लिकेशन के लिए प्रवेश द्वार के माध्यम से कॉल प्राप्त करने के लिए _have_ करते हैं। गेटवे उस गूंगा नहीं है, सत्र निर्माण अभी भी व्यावसायिक तर्क है। डेटास्टोर के माध्यम से उस सत्र को साझा करना स्नीकी उच्च युग्मन है, मुझे अभी भी समझ में नहीं आता है कि क्यों वसंत लोग इसे माइक्रोस्कोप आर्किटेक्चर में अनुशंसा करते हैं। –
क्या आपके पास बेहतर समाधान @MichaelTecourt के लिए कोई सुझाव है? मुझे वास्तव में समाधान के रूप में सत्र प्रतिकृति पसंद नहीं है, लेकिन एक बेहतर तरीका नहीं मिला है। –