वेब एपीआई प्रमाणीकरण तकनीक


26

हमारे पास लोगों के अनुरोधों के लिए xml / json की सेवा के लिए एक asp.net MVC वेब सेवा ढांचा है। अनुरोध प्राप्त करें लेकिन उपयोगकर्ताओं को प्रमाणित करने के लिए जावास्क्रिप्ट (OO भाषाओं) के साथ कोडिंग करने वाले उपयोगकर्ताओं के लिए सबसे अच्छा तरीका (तेज़, आसान, मामूली) का पता लगाने के लिए संघर्ष कर रहे हैं। ऐसा नहीं है कि हमारा डेटा संवेदनशील है या कुछ भी है, हम चाहते हैं कि उपयोगकर्ता रजिस्टर करें ताकि हम उनके ईमेल पते में बदलाव और उपयोग को ट्रैक करने के लिए उन्हें सूचित कर सकें।

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

क्या प्रमाणीकरण तकनीक उपलब्ध हैं? प्रमुख खिलाड़ी क्या करते / करते हैं।


आप "प्रमुख खिलाड़ी" को क्या मानते हैं? कृपया कुछ उदाहरण सूचीबद्ध करें। जब आप इस पर हों, तो कृपया "प्रमुख खिलाड़ी" एपीआई परिभाषाओं की एक कड़ी शामिल करें ताकि हम देख सकें कि वे क्या करते हैं।
एस.लॉट

मैं ट्विटर / फेसबुक / गूगल / प्रमुख खिलाड़ियों पर झिलमिलाहट पर विचार करूंगा। Developers.facebook.com apiwiki.twitter.com
स्टीव

जवाबों:


10

मैंने StackOverflow पर यह प्रश्न पूछा और आप इसे यहाँ पढ़ सकते हैंमेरे सवाल का जवाब भी खुद देखिए । जो प्रत्येक अनुरोध के लिए पासवर्ड को पास किए बिना और एसएसएल या एन्क्रिप्शन के बिना प्रमाणीकरण के बारे में है। बस सरल हैशिंग।


मुझे यकीन नहीं है कि मुझे आपका समाधान पसंद है।
स्टीव

स्टीव: फ़्लिकर समाधान का उपयोग करें

वहाँ एक खुला स्रोत झिलमिलाहट समाधान है या मैं सिर्फ अपने एपीआई को पढ़ने और यह पता लगाने की जरूरत है?
स्टीव

उनका एपीआई पढ़ें, यह बहुत सरल है। यदि आपके पास एसएसएल नहीं है, तो मेरी विधि के रूप में सुरक्षित नहीं है, लेकिन बहुत अच्छा है

आपका md5 समाधान सिर्फ "जावास्क्रिप्ट उपयोगकर्ताओं के लिए तुच्छ" के साथ बिल को फिट नहीं करता है। मुझे कुछ और फ़्लिकर एपीआई की जाँच करनी होगी। मैंने इस पर गौर किया लेकिन कुछ शब्दावली का अध्ययन करने की आवश्यकता है। मुख्य रूप से जो फ्रोब के हैं।
स्टीव

3

यह वीडियो आपके WCF / REST सेवा के साथ API कुंजी का उपयोग करने का एक दिलचस्प तरीका है। कोड


यह उपयोगकर्ता को सेवा में रखने के समान विचार है, सिवाय इसके कि वे इसे एपी कुंजी कह रहे हैं। कोई व्यक्ति पृष्ठ के स्रोत को देख सकता है यदि जावास्क्रिप्ट और कुंजी को कॉपी करें और इसे दूसरे स्थान पर उपयोग करें। क्या आप एक एपी कुंजी को एक कॉलिंग डोमेन से जोड़ना चाहते हैं ताकि एपी कुंजी को वैध होने की आवश्यकता हो और इसे xyz.com से आना होगा?
स्टीव

यह भी @KinGBin ने क्या सुझाव दिया है?
स्टीव

0

मैं इसे दृश्य स्टूडियो का उपयोग करके लेता हूं। अगर आपका 2010 बनाम 4.0 फ्रेमवर्क का उपयोग कर रहा है, तो आप बनाम 2010 में "डब्ल्यूसीएफ रीस्ट सर्विस विद एपीआई की वेरिफिकेशन" टेम्प्लेट देख सकते हैं।


1
मुझे अब इस पर गौर करना होगा। मैं व्यक्तिगत रूप से हालांकि WCF से दूर जाना चाहता हूं।
स्टीव

यह दिलचस्प था, लेकिन ऐसा लग रहा है कि यह क्वेरी स्ट्रिंग में एपीकेआई से गुजरता है। क्या इसका मतलब यह नहीं है कि एपीआई कुंजी कॉलर और कैलली के बीच किसी को भी दिखाई देती है - भले ही आप एसएसएल का उपयोग करें?
JMarsch

0

मैं हमेशा वेब सेवाओं के लिए HTTP प्रमाणीकरण का उपयोग करता हूं। प्रमाणीकरण को आपके वेब सर्वर द्वारा संभाला जाएगा, संभवतः आपके मामले में IIS। फिर आप अपने डेटाबेस, एक LDAP स्टोर, या इसी तरह के खिलाफ प्रमाणित करने के लिए IIS कॉन्फ़िगर करेंगे।

आप तब उपयोगकर्ता User.Identity.Name के माध्यम से उपयोगकर्ता नाम का उपयोग करेंगे

संपादित करें : JQuery प्रमाणीकरण उदाहरण:

/* I found that providing the username and password both in the
   the arguments and in the url parameter seems to have better compatibility,
   if it works well for you, it is highly advisable to remove the 
   user/pass from the url */

function doLogin (){
  $.ajax({
    username: $('#username').val(),
    password: $('#password').val(),
    url: 'https://'+$('#username').val()+':'+$('#password').val()+'@api.example.com',
    dataType: 'jsonp',
    context: $('#result'),
    success: function(d) { $(this).html(d); $(location).attr('href','https://api.example.com/success'); }
    });
    return false;
}

आप जावास्क्रिप्ट क्लाइंट के साथ ऐसा कैसे करेंगे?
स्टीव

ग्राहक = नया XMLHttpRequest (); client.open (विधि, url, async, उपयोगकर्ता, पासवर्ड);
इविंडिस्क

उत्तर देने के लिए jquery उदाहरण जोड़ा गया
ewindisch

1
इसलिए उपयोगकर्ता नाम पासवर्ड संयोजन को स्रोत में सादे पाठ में रहना होगा। एक अच्छा विचार नहीं लगता है।
स्टीव

1
ठीक है, इसलिए मूल रूप से आपको एक एपीआई अनुरोध को बंद करने के लिए अपने उपयोगकर्ता नाम / पासवर्ड को लॉगिन स्क्रीन में दर्ज करना होगा? वह समाधान भयानक है। सार्वजनिक वेबसाइट पर प्रत्येक उपयोगकर्ता को पंजीकृत होना होगा?
स्टीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.