2012-06-11 12 views
6

में वेब एपीआई का उपयोग करके http के माध्यम से प्रमाणीकरण करना मैंने एएसपीनेट वेब एपीआई को सुरक्षित करने के कई पृष्ठों को देखा और देखा है - इसमें शामिल हैं: http://weblogs.asp.net/jgalloway/archive/2012/03/23/asp-net-web-api-screencast-series-part-6-authorization.aspx और http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx - हालांकि, मैंने अभी तक एक KISS प्रकार का उदाहरण नहीं देखा है।एएसपीनेट

यदि मेरे पास एक वेब एपीआई है, जो उदाहरण के लिए कारों की एक सूची देता है - और मैं तीसरी पार्टी (यानी मेरी अपनी वेबसाइट या सर्वर/डोमेन नहीं) के साथ काम कर रहा हूं जो पूछना (प्राप्त करना) और सम्मिलित करना चाहता है (पोस्ट) एक प्रकार से कारों की सूची, मेरे डेटाबेस में, मैं उन्हें कैसे प्रमाणित करता हूं (https के माध्यम से)?

वे बस कुछ की तरह (अपने JSON प्राप्त/पोस्ट में) जोड़ने है:

[ 
{"username":"someusername","password":"somepassword", 
{ 
"carTypeID":12345, 
"carTypeID":9876} 
"carTypeID":2468} 
} 
} 
] 

मैं तो उपयोगकर्ता नाम और पासवर्ड प्राप्त कर सकते हैं, और .net में अपनी सदस्यता डेटाबेस के खिलाफ जांच, और "IfUserAuthenticated" जाना बाकी JSON को संसाधित करने के लिए?

या क्या ऐसा करने का एक बेहतर तरीका है? मैंने हेडर आदि को विवरण जोड़ने के बारे में सुना है - लेकिन मुझे यकीन नहीं है कि यह किसी कारण से है, या इसे जटिल बना रहा है। मैंने टोकन सेट करने के बारे में भी सुना है जो तीसरे पक्ष को वापस भेजे जाते हैं - यदि यह सबसे अच्छी विधि है, तो मैं उन्हें ऐप के अपने पक्ष का निर्माण करने के लिए क्या निर्देश दूंगा जो मेरे एपीआई का उपयोग करेंगे?

किसी भी सलाह/संकेत के लिए धन्यवाद,

मार्क

+0

स्वीकार किए जाते हैं जवाब में मूल प्रमाणीकरण दृष्टिकोण के अतिरिक्त (यह अपनी पसंद का सदस्यता प्रदाता के साथ एकीकृत करने के लिए बहुत आसान है), इस सवाल और के बारे में कैसे डैरिन दिमित्रोव के जवाब देखने प्रपत्र प्रमाणीकरण का उपयोग करने के लिए: http://stackoverflow.com/questions/11014953/asp-net-mvc-4-webapi- प्रमाणीकरण –

उत्तर

5

आप इसे सरल रखने के लिए आप मूल प्रमाणीकरण का उपयोग कर सकते हैं। एसएसएल पर यह काफी सुरक्षित है। यह बस अनुरोध करने के लिए एक हेडर को जोड़े शामिल है:

Authorization: Basic <username:password encoded as base64> 

आप इसे here लागू करने के लिए एक तरह से पा सकते हैं।

+0

हाय @ कार्ल्स-कंपनी - उत्तर देने के लिए धन्यवाद। मैंने उस पोस्ट को भी देखा होगा - लेकिन तीसरे पक्ष को प्रमाणित करने के लिए क्या कहना है इसके बारे में (या अधिक संभावना नहीं है, अभी तक ज्ञान नहीं है) देख सकते हैं। लेख "उन्हें समझने के लिए छोड़ देता है", लेकिन उनकी मदद करने के लिए दोनों पक्षों को लाभ होता है - इसलिए मैं यह कहने में सक्षम होना चाहता हूं कि "ऐसा करें, आपको कारों की सूची मिल जाएगी" - फिर से धन्यवाद, मार्क – Mark

+0

तीसरे भाग को केवल प्राधिकरण शीर्षलेख जोड़ना है। अधिक जानकारी के लिए http://en.wikipedia.org/wiki/Basic प्रमाणीकरण देखें। –

+0

धन्यवाद @ कार्ल्स-कंपनी - मैं उस पर और अधिक बारीकी से देखूंगा - यह स्पष्ट रूप से एक ऐसा क्षेत्र है जहां मुझे सीखने की ज़रूरत है! चीयर्स, मार्क – Mark

0

मैं वेब एपीआई के लिए कुछ इसी तरह लिखा है:
http://remy.supertext.ch/2012/04/basic-http-authorization-for-web-api-in-mvc-4-beta/

अब यह कुछ जगहों पर प्रयोग में है और हम उत्पादन में लगभग 2 महीने के बाद से यह प्रयोग कर रहे। ठीक काम करने लगता है।

3

आप एसएसएल के साथ HTTP बेसिक प्रामाणिकता का उपयोग कर सकते हैं। संदेश हैंडलर का उपयोग करके कार्यान्वित करना बहुत आसान है और कई प्लेटफ़ॉर्म पर बॉक्स से बाहर समर्थित है। एक उदाहरण के लिए मेरे ब्लॉग देखें

http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/