2015-12-14 10 views
7

परिदृश्य:WCF - सीएमएस में वेब पर नियंत्रण के साथ ग्राहक सुरक्षा

हम एक WCF वेब सेवा है जो हमारे फ़ायरवॉल/DMZ के अंदर एक डेटाबेस से जोड़ता है विकसित किया है। वेब सेवा और क्लाइंट एप्लिकेशन (डेटा कैप्चर वेब फॉर्म) को हमारे इंटरनेट फेस वेब सर्वर पर होस्ट करने की आवश्यकता है। इसका कारण यह है कि यह वेब नियंत्रण है कि हमारे तीसरे पक्ष के सीएमएस (हमारी मुख्य वेबसाइट होस्ट) द्वारा आयोजित किया जाएगा द्वारा पहुँचा जा करने की जरूरत है।

मुद्दा:

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

मुझे यकीन है कि एक तृतीय पक्ष किसी एप्लिकेशन के लिए वेब नियंत्रण होस्ट कर रहा है, तो कस्टम सुरक्षा लागू करने के उदाहरण होना चाहिए, लेकिन अब तक मुझे केवल 'यह प्रमाण पत्र या कुछ भी नहीं' टिप्पणियां मिली हैं। किसी भी मदद या मार्गदर्शन की सराहना की। अब तक देखी कई लिंक के

उदाहरण में शामिल हैं:

मैं सुझाव दिया सेटिंग्स को लागू करने देखा है जैसे <wshttpBinding> और <serviceCredentials> जबकि एक नया 'सुरक्षित' वर्ग को जोड़ने कस्टम उपयोगकर्ता नाम/पासवर्ड सत्यापनकर्ता शामिल लेकिन "एसवीसी ... विरासत में मिला को लागू नहीं करता सदस्य ..." त्रुटियों प्राप्त करने के लिए नीचे दिए गए में।

<wsHttpBinding> 
    <binding name="EndpointBinding"> 
     <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="None"/> 
     <message clientCredentialType="UserName"/> 
     </security> 
    </binding> 
    </wsHttpBinding> 

<serviceCredentials> 
    <userNameAuthentication 
    userNamePasswordValidationMode="Custom" 
customUserNamePasswordValidatorType="My.WcfSvc.Authentication.Secure, 
    My.WcfSvc" /> 
</serviceCredentials> 

उत्तर

1

मैं तुम क्या लिखा है से अपने वास्तुकला पर सबसे अनुमान लगा रहा हूँ, लेकिन यहाँ अपने कार्यान्वयन पर कुछ विचार कर रहे हैं:

  1. यह पूरा और यह करने के लिए आप पूरी तरह करना चाहिए WCF का उपयोग करते हैं सर्वर पर सर्वर किया जा रहा है, मैं एक्स -50 9 प्रमाण पत्र के माध्यम से ऐसा करूँगा। यह आपको बिंदु बिंदु को इंगित करता है। मैं भी इस तरह के आईपी प्रतिबंध के रूप में आईआईएस पर अपनी सुरक्षा कार्यान्वयन, के लिए कुछ कम महत्वपूर्ण लेकिन सहायक पहलुओं जोड़ना होगा, शून्य मेटाडाटा उत्पादन आदि पर लागू आप सर्वर से इस सर्वर नहीं कर रहे हैं, तो और इन तरीकों बुला वेब उत्पन्न यातायात है, मैं आपके आर्किटेक्चर पर पुनर्विचार करेगा और विकल्प # 2 के बारे में सोचेंगे।

  2. यदि आपके पास अभी भी एक अलग फैशन में इसे पूरा करने का समय है और विकास प्रक्रिया के दूसरे पक्ष को बदलने की शक्ति है, तो मैं HTTPS w/JSON पर वितरित वेब एपीआई के लिए टोकन-आधारित आर्किटेक्चर पसंद करता हूं। न केवल आप पहले से शेयर की टोकन की पहचान कर सकते हैं भागीदारों के लिए दिया गया है, के साथ उन लोगों के आसपास आईपी/डीएनएस प्रतिबंध, आप भी एक द्वि-चरणीय प्रमाणीकरण प्रक्रिया से पहले डेटा भी संसाधित किया जाता है हो सकता है। यह आपको डेटा हस्तांतरण के लिए अस्थायी टोकन जारी करने की क्षमता देता है जो जल्दी समाप्त हो जाता है।इसके शीर्ष पर, आप क्रिप्टोजेएस जैसे कुछ का उपयोग करके JSON को एन्क्रिप्ट भी कर सकते हैं जिसमें आपके और आपके साथी https://code.google.com/archive/p/crypto-js/ के बीच पूर्व-साझा नमक का उपयोग करके 512 एन्क्रिप्शन है - अधिकतर अनावश्यक, लेकिन आपके क्विवर में जोड़ने के लिए कुछ। सामान्य दो-चरण में आपको एक अधिक मजबूत सत्यापन प्रक्रिया और मन की शांति मिलती है।

आशा है कि इससे भी मदद मिली है। आपके एकीकरण के साथ शुभकामनाएँ!

संपादित करें: मुझे एहसास हुआ है कि मैं इस विशेष पार्टी के लिए थोड़ा देर हो चुकी हूं। मुझे आशा है कि यह अच्छी तरह से चला गया। आपने कार्यान्वयन को समाप्त करने के लिए क्या किया, ओपी?

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