REST API के लिए प्रमाणीकरण लागू करने का सबसे अच्छा तरीका है


21

हम मोबाइल के लिए सामाजिक-आधारित एप्लिकेशन विकसित करते हैं। हर एप्लिकेशन RESTful API वेब-सेवाओं का उपभोग करता है। जब मैं लॉगिन लागू करता हूं तो मैं आमतौर पर उपयोगकर्ता नाम और पासवर्ड को डिवाइस पर संग्रहीत करता हूं। फिर मैं उन्हें भेजता हूं और एक प्रतिक्रिया के रूप में मुझे अपनी प्रोफ़ाइल तक पहुंच मिलती है। लेकिन मुझे यह भी पता है कि ऐसा करने का एक और तरीका है।

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

मुझे इसे कैसे लागू करना चाहिए? क्या मुझे लॉगिन के अलावा हर दूसरे अनुरोध के साथ यह टोकन भेजना चाहिए?


11
यह प्रमाणीकरण है , प्राधिकरण नहीं । प्रमाणीकरण = साबित करें कि आप वही हैं जो आप कहते हैं कि आप हैं। प्राधिकरण = साबित करें कि आपको वह करने की अनुमति है जो आपने अनुरोध किया था।
तदमर्स

मैं बस उत्तरों में वही टिप्पणी जोड़ने जा रहा था! +1 करने के लिए आप @ मैं सभी सामग्री संपादित कर चुका हूँ, इसलिए गुगलीकरण प्राधिकरण आपको यहाँ नहीं लाता है
शिप्पु मोकाडिम

जवाबों:


14

रेस्टफुल संदर्भ में प्रमाणीकरण को लागू करने के कई तरीके हैं , और लॉगिन / पासवर्ड के बजाय केवल टोकन भेजना अधिक सुरक्षित है: आप समय-समय पर या कुछ अन्य मानदंडों से अमान्य होने के लिए टोकन को आसान बना सकते हैं, और उपयोगकर्ता को फिर से प्रमाणित करने के लिए कह सकते हैं। ।

उदाहरण के लिए प्रमाणीकरण REST HMAC का उपयोग करके अनुरोध करता है । इस दृष्टिकोण में, क्लाइंट के पास सार्वजनिक और गुप्त कुंजियाँ होंगी । प्रमाणीकरण की आवश्यकता वाले सभी अनुरोधों के लिए , आपको publiс कुंजी जोड़ना चाहिए , और अपने अनुरोध के हैश की गणना करने के लिए गुप्त कुंजी का उपयोग करना चाहिए

var myRequest = "https://myserver/resource?publicId=12345&param=value";
var requestHash = hmac_implementation(myRequest);
myRequest = myRequest + '&hmac=' + requestHash;

अब सर्वर द्वारा अनुरोध की पहचान कर सकता है सार्वजनिक कुंजी और गणना requestHash ही। यदि दोनों हैश बराबर हैं, तो उपयोगकर्ता अधिकृत है।

Btw, आपको कंप्यूटर नेटवर्क पर संचार को सुरक्षित करने के लिए भी https का उपयोग करना होगा - यह नाटकीय रूप से संभावित समस्याओं की संख्या को कम करेगा।


9

oAuth इसके लिए मानक है, लेकिन अधिक समाधान हैं।

एक कठिन और जोखिम भरा विषय होने के कारण अपने आप से सुरक्षा, टोकन आदि को लागू करने का प्रयास न करें। उदाहरण के लिए यहाँ एक नज़र डालें:

/programming/4574868/securing-my-rest-api-with-oauth-while-still-allowing-authentication-via-third-pa

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.