प्रमाणीकरण के पीछे जियोसेवर परतों को कैसे रखा जाए?


29

मैं OpenLayers और GeoServer का उपयोग करके मानचित्र परतों को प्रकाशित करना चाहता हूं। हालांकि यह सेट अप करने के लिए काफी आसान है, जब प्रमाणीकरण की संभावनाओं की बात आती है तो मैं थोड़ा खो जाता हूं। मैं जो चाहता हूं, वह अलग-अलग उपयोगकर्ता बनाना है जो अपने स्वयं के उपयोगकर्ता नाम और पासवर्ड के साथ लॉग इन करके, अपने स्वयं के मानचित्र विंडो पर निर्देशित होंगे। यह कैसे सुरक्षित रूप से किया जा सकता है ताकि मेरे कोई भी उपयोगकर्ता एक-दूसरे की परतों तक नहीं पहुंच पाएंगे?

मैं समझ गया हूं कि उदाहरण के लिए, सेटअप को "हैक" करना काफी आसान है, उदाहरण के लिए, जियोसर्वर से सवाल करना जहां एक बस इसे सभी उपलब्ध परतों को सूचीबद्ध करने के लिए कहता है।

मेरे विकल्प क्या हैं? मुझे लगता है कि अपने ubuntu सर्वर में इसे स्थापित करने के दौरान अपाचे से मदद मिल सकती है? इस विषय पर कोई ट्यूटोरियल?

जवाबों:


20

सबसे पहले, मुझे लगता है कि आपको जियोसर्वर प्रलेखन को सुरक्षा पर पढ़ना चाहिए। http://docs.geoserver.org/stable/en/user/security/index.html आपको पता चलेगा कि विभिन्न उपयोगकर्ताओं या भूमिकाओं के लिए परतों को सुलभ / दुर्गम बनाना संभव है।

एक अन्य संभावित समाधान होगा बाहरी दुनिया से जियोसर्वर को दुर्गम बनाना (IP के दूसरे के लिए अपने सर्वर पर पोर्ट 8080 बंद करना) और फिर अपनी पसंद की वेब प्रोग्रामिंग भाषा में स्वयं एक प्रमाणीकरण तंत्र बनाना।

उदाहरण के लिए: आप php में कुछ प्रकार के लॉगिन / प्रमाणीकरण सेट कर सकते हैं जो एक बार प्रमाणित होने के बाद लोकलहोस्ट पर जियोसर्वर के लिए अनुरोध करता है।


इसके अतिरिक्त: आपके पास एक लुकअप तालिका हो सकती है जिसमें आपके एप्लिकेशन के उपयोगकर्ताओं और GeoServer उपयोगकर्ता / भूमिका / परतें के बीच संबद्धताएं हैं और GeoServer पर परत स्तर सुरक्षा लागू करें। इसलिए जब OpenLayer की प्रॉक्सी एक परत का अनुरोध करती है, तो वह संबंधित जियोसर्वर क्रेडेंशियल्स को देखती है, उन्हें प्रमाणित करती है, और उस परत को वापस करती है जिस तक उसकी पहुंच होती है। इस तरह से उपयोगकर्ता अपनी इच्छानुसार किसी भी अन्य परत का अनुरोध करने की कोशिश कर सकता है, लेकिन जब तक उसकी पहुंच नहीं होगी।
CaptDragon

9

आप जियोप्रिज्म पर एक नजर डाल सकते हैं

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

इसीलिए हमने अपने स्वयं के वेब मैपिंग एप्लिकेशन को विकसित करने का निर्णय लिया, जिसमें उपलब्ध ओपन मैपिंग वेब मैपिंग अनुप्रयोगों का उपयोग करके डेटासेट पर अभिगम नियंत्रण शामिल था।

http://geoprisma.org/dist/build/html/introduction/index.html

मेरे पास दस्तावेज़ीकरण की एक स्कैन होगी - इसे एक साधारण परियोजना में जोड़ने के लिए ओवरकिल हो सकता है यदि आपके सिस्टम पर केवल कुछ परतें / उपयोगकर्ता हैं। यदि आपके पास विभिन्न डेटासेट पर संपादन अधिकार वाले 100 उपयोगकर्ता / समूह हैं, तो संभवत: यह किसी मौजूदा परियोजना जैसे कि जियो पेनिज्म का उपयोग करने के लिए समझ में आता है।

अन्यथा HTTP के आसपास निर्मित मानक वेब सर्वर सुरक्षा शायद पर्याप्त होगी।


क्या जियोप्रिस्मा का उपयोग जियोसर्वर के साथ किया जा सकता है? क्या उनके पास एक सिद्ध ट्रैक रिकॉर्ड है?
मिमो

इसे जियो सर्वर सहित किसी भी WMS सर्वर के साथ इस्तेमाल किया जा सकता है। टिप्पणियाँ ऊपर जोड़ा गया।
जियोग्राफिका

0

कृपया इस कथन को डीबग करें

$ Type = $ _ प्राप्त [ 'प्रारूप'];

जब आप FORMAT के मान को पास करते हैं, तो क्या आप URL के मापदंडों को सर्वर से मानचित्र (छवि) प्राप्त करते हैं, यदि आप इसे प्राप्त कर रहे हैं, तो आपका प्रॉक्सी ठीक काम कर रहा होना चाहिए।


0

एक दृष्टिकोण इस तरह एक प्रॉक्सी को लागू करने के लिए होगा जो सत्र चर का उपयोग करने में लॉग इन के रूप में एक उपयोगकर्ता क्रेडेंशियल्स को सत्यापित कर सकता है और केवल उन्हें उन संसाधनों तक पहुंचने की अनुमति देता है, जिनके वे हकदार हैं, अर्थात्: उन परतों के लिए url की जांच करें जिन्हें कॉल किया जा रहा है और यदि उपयोग से इनकार करते हैं तो उपयोगकर्ता उन्हें देखने के लिए अधिकृत नहीं है।

वे किस डेटा को देख सकते हैं, यदि वह किसी बड़े डेटा सेट का सबसेट है, तो यह थोड़ा अधिक जटिल है, लेकिन मैं इसे दो बार दिखाता हूं।

  1. उपयोगकर्ता जो डेटा देखेगा उसे नियंत्रित करने के लिए Parameterized SQL Views का उपयोग करें । आप उस उपयोगकर्ता के लिए विशिष्ट मापदंडों के साथ जियोस्वर को पास करने से पहले यूआरएल को बदलने के लिए प्रॉक्सी का उपयोग कर सकते हैं। उपयोगकर्ता द्वारा प्रमाणित होने के बाद भी आप एक अजाक्स कॉल के माध्यम से ओपनलेयर को पैरामीटर भेज सकते हैं और OpenLayers में WMS getMAP कॉल के हिस्से के रूप में मापदंडों की आपूर्ति कर सकते हैं। प्रदर्शित किए गए वास्तविक डेटा को SLD में परिवर्तनीय प्रतिस्थापन द्वारा प्रदर्शित डेटा को फ़िल्टर करने के लिए या अपने WMS गेटअप कॉल में बाहरी शैलियाँ का उपयोग करके बदला जा सकता है, जो किसी दिए गए लेयर को प्रदर्शित करने के लिए SLD का उपयोग करता है।

  2. उपयोगकर्ता एक्सटेंशन के बाद केवल उपयोगकर्ता को एक निर्दिष्ट क्षेत्र में घूमने की अनुमति देने के लिए एक अजाक्स कॉल का उपयोग करें । आप डेटा को भी प्रदर्शित करने के लिए लेयरविजिबिलिटी () का उपयोग कर सकते हैं।


0
  1. सबसे पहले एक प्रॉक्सी URL (अपनी प्रोग्रामिंग लैंग्वेज में) बनाएं।
  2. यह प्रॉक्सी URL भू-सर्वर से टकराएगा।
  3. इस प्रॉक्सी URL में, आप उपयोगकर्ता और पृष्ठ के साथ प्रमाणीकरण कर सकते हैं। आप जांच सकते हैं कि url आपके webApp से भेजा जा रहा है या नहीं। यदि नहीं तो बस एक अनधिकृत हैडर भेजें।
  4. आप अपने भू-सर्वर URL के बजाय इस प्रॉक्सी URL को हिट करेंगे।
  5. कोई भी यह नहीं जान पाएगा कि जियोसेवर का सटीक यूआरएल क्या है और वह इसे हैक नहीं कर पाएगा।
  6. उपयोगकर्ताओं के साथ सुरक्षा के लिए, बस प्रॉक्सी URL में उपयोगकर्ताओं का एक चेक जोड़ें।
  7. ओपन लेयर्स से wms-url पास करें: http://domainname.com//proxyUrl.php?user=usid
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.