2009-07-08 8 views
6

मैं अपने वेब सेवा को प्रमाणीकृत करने के सर्वोत्तम तरीके पर कुछ मार्गदर्शन ढूंढ रहा हूं। अभी, मेरे पास .NET 3.5 पर एक मानक वेब सेवा है, और एक एमवीसी वेबसाइट जो इस वेब सेवा के शीर्ष पर बैठती है।वेब सेवा के साथ ओपनआईडी का उपयोग करना: प्रमाणित करने का सबसे अच्छा तरीका?

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

तो मेरा सवाल यह है: वेब सेवा को प्रमाणीकृत करने का सबसे अच्छा तरीका क्या है?

कुछ एपीआई मैंने उपयोग प्रमाणीकरण टोकन के साथ खेला है। वेब सेवा के संबंध में हमारे पास एक और विचार था, क्लाइंट को एक एन्क्रिप्शन कुंजी पास करें जिसे वे सभी स्थानान्तरण के लिए उपयोग कर सकते हैं।

मैं यहां जोर से सोच रहा हूं, और फिर, किसी भी मदद की बहुत सराहना की जाती है! धन्यवाद!

...

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

  1. यदि हैकर को उपयोगकर्ता का OpenIdURL पता है, तो वे आसानी से वेब सेवा तक पहुंच प्राप्त कर सकते हैं।
  2. ओपनआईड्लर वर्तमान में सादा पाठ में पारित किया गया है।

तो मैं वेब सेवा के संबंध में क्लाइंट को एन्क्रिप्शन कुंजी पास कर सकता हूं, और क्लाइंट को SoapAuthentication शीर्षलेख में OpenIdURL एन्क्रिप्ट कर सकता है। लेकिन मैं के बारे में कैसे सबसे अच्छा है कि के बारे में जाने के लिए यकीन नहीं है ...

+0

जब आप कहते हैं कि "मानक वेब सेवा" आप एक विरासत ASMX सेवा मतलब है, या आप WCF का उपयोग कर रहे हैं? –

+0

यह जो मैं चाहता हूं उसके करीब है, लेकिन यह बहुत अच्छा होगा अगर कोई इसे थोड़ा और समझा सके। http://stackoverflow.com/questions/544388/openid-authentication-and-api-access –

+0

मैं एक मानक एएसएमएक्स वेब सेवा का उपयोग कर रहा हूं, और एमवीसी वेब सेवा को सेवा संदर्भ के रूप में एक्सेस कर रहा है (जो मुझे लगता है कि एक डब्ल्यूसीएफ है आवरण?)। –

उत्तर

3

आप OAuth पर एक नज़र लेने के लिए चाहते हो सकता है:

http://oauth.net/

(उपयोग http://oauth.net/code/ कोडिंग के लिए।)

चूंकि यह विशेष रूप से इस परिदृश्य के लिए तैयार है (ओपन आईडी वास्तव में नहीं है)।

Web Service Authentication using OpenID

+0

जब आप "यह परिदृश्य" कहते हैं, तो आप किसका जिक्र कर रहे हैं? एएसएमएक्स सेवाएं? –

+0

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

+0

@ जॉन सॉंडर्स: मैं ओपन आईडी बनाम ओएथ का जिक्र कर रहा हूं, वास्तव में एएसएमएक्स बनाम डब्ल्यूएस- * वेब सेवाएं नहीं। ओपन आईडी वास्तव में एपीआई के उपयोग के लिए नहीं है, जबकि ओथ है। – casperOne

0

ASMX वेब सेवाओं (जो माइक्रोसॉफ्ट अब मानता है:

एसए पर एक और सवाल जो एक वेब सेवा सुरक्षित करने के लिए सबसे अच्छा तरीका है के बारे में पूछता है, और ओपन आईडी और OAuth नहीं है दोनों पर चर्चा कर रहे हैं "विरासत") प्रमाणीकरण के लिए ओपनआईडी का उपयोग करने की कोई क्षमता नहीं है। वे केवल आईआईएस उन्हें प्रदान करने के लिए उपयोग कर सकते हैं। आप संभवत: एक साबुन एक्सटेंशन जोड़ सकते हैं जो उनके लिए ओपनआईडी प्रमाणीकरण करेगा, लेकिन मैं वहां समय नहीं व्यतीत करूंगा।

मुझे ओपनआईडी के बारे में निश्चित जानकारी नहीं है, लेकिन मुझे संदेह है कि यह संघीय सुरक्षा के माध्यम से डब्ल्यूसीएफ के साथ एकीकृत हो सकता है। मुझे यकीन है कि कोई और उस पर ब्योरे के साथ जवाब देगा।

+0

मेरी माफ़ी। अभी मैंने एक कस्टम सोप प्रमाणीकरण हैडर बनाया है जिसमें OpenIdURL प्रॉपर्टी है। यह उपयोगकर्ता को प्रमाणित करने के लिए सभी सेवा कॉल पर उपयोग किया जाता है। –

+0

क्या आप उस जानकारी के साथ अपना प्रश्न अपडेट कर सकते हैं? विशेष रूप से, अगर आपको यह हेडर मिल गया है, तो आप और क्या खोज रहे हैं? –

+0

क्या, "विरासत"? ओह, माइक्रोस्कोफ्ट ... एएसएमएक्स वेब सर्विसेज बहुत अच्छे हैं! :) –

0

यह वास्तव में एक जवाब नहीं है, लेकिन मैं टिप्पणियां न कर सके ...

आप कहते हैं कि "मैं .NET 3.5 पर एक मानक WebService, और एक MVC वेबसाइट है कि इस WebService के शीर्ष पर बैठता है "।

मैं यहां आधार से दूर हो सकता हूं, लेकिन भाषा का तात्पर्य है कि ये दोनों एक ही सर्वर पर बैठते हैं। यदि हां, तो आप केवल उपयोगकर्ता डेटाबेस और कुकी टोकन क्यों साझा नहीं कर सकते?

जेम्स

+0

ये एक ही सर्वर पर बैठ सकते हैं या नहीं भी। ऐसे उदाहरण होंगे जहां दोनों होते हैं। –

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

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