2013-07-22 8 views
13

क्या है मैं अपने मोबाइल एप्लिकेशन (आईओएस & एंड्रॉइड) और एपीआई (PHP) के लिए उपयोगकर्ता प्रमाणीकरण को संभालने का सबसे अच्छा तरीका काम करने का प्रयास कर रहा हूं।एपीआई टोकन

मैं क्या पर गौर किया है से विकल्प हैं:

मूल प्रमाणीकरण के ऊपर HTTPS - हर अनुरोध के लिए उपयोगकर्ता की जाँच करें उपयोगकर्ता नाम/पासवर्ड।

सत्र - प्रत्येक अनुरोध के साथ एक सत्र ID भेजें; सर्वर राज्य बनाए रखता है। तो ऐप बाद में अनुरोधों पर लॉग इन उपयोगकर्ता के लिए उपयोगकर्ता नाम/पासवर्ड और सर्वर चेक भेजता है, जैसे मेरी वेबसाइट करता है।

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

मुझे लगता है कि एपीआई टोकन की मेरी व्याख्या गलत है क्योंकि वे सत्रों के समान दिखते हैं क्योंकि मैं डीबी में सत्र आईडी संग्रहीत करता हूं।

  1. क्या एपीआई टोकन की मेरी व्याख्या को सही किया जा सकता है। यह किस लिए हैं? वे सत्र आईडी के लिए अलग कैसे हैं?
  2. एपीआई टोकन के क्या फायदे हैं?
  3. क्या ओएथ (अगर हम इसके उपयोग को सरल बनाना चाहते हैं) "एपीआई टोकन" बनाने के लिए सिर्फ एक प्रोटोकॉल है?

उत्तर

16

मैं कोई विशेषज्ञ हूँ, लेकिन मैं आप सेंट मैं उठाया गया है की एक जोड़ी दे देंगे:

1) एपीआई टोकन एक सामान्य शब्द का एक सा है। आम तौर पर एक एपीआई टोकन आपकी सेवा तक पहुंच का अनुरोध करने वाले एप्लिकेशन का एक अद्वितीय पहचानकर्ता है। आपकी सेवा आपकी सेवा का अनुरोध करते समय उपयोग करने के लिए एप्लिकेशन के लिए एपीआई टोकन उत्पन्न करेगी। फिर आप प्रमाणीकरण के लिए स्टोर किए गए टोकन से मेल खाते हैं।

एक सत्र आईडी का उपयोग किया जा सकता है लेकिन इसका उद्देश्य एपीआई टोकन से अलग है। सत्र आईडी प्रमाणीकरण का एक रूप नहीं बल्कि प्राधिकरण का परिणाम है। आम तौर पर उपयोगकर्ता को संसाधन (जैसे आपकी सेवा) का उपयोग करने के लिए अधिकृत किया गया है, तो एक सत्र स्थापित किया जाता है। इसलिए जब कोई उपयोगकर्ता किसी संसाधन तक पहुंच प्रदान करता है तो सत्र आईडी बनाई जाती है। एक एपीआई टोकन उपयोगकर्ता नाम/पासवर्ड के समान प्रमाणीकरण का रूप है।

2) एपीआई टोकन HTTP पर कुछ उपयोगकर्ता नाम/पासवर्ड संयोजन भेजने के प्रतिस्थापन हैं जो सुरक्षित नहीं है। हालांकि समस्या अभी भी मौजूद है कि कोई व्यक्ति इसके बजाय एपीआई टोकन ले सकता है और उपयोग कर सकता है।

3) एक तरह से हाँ। यह एपीआई टोकन को "ताजा" रखने के लिए एक विधि है। एक ही एपीआई टोकन के चारों ओर गुजरने के बजाय आप एक सेवा का उपयोग करना चाहते हैं तो आप एक्सेस टोकन का अनुरोध करते हैं। OAuth 2.0 चरणों इस प्रकार हैं:
      क) अनुरोध) किसी तरह की साख
      ख सफल प्रतिक्रिया एक कोड
      ग) सेवा के लिए एक और अनुरोध के साथ किया जाता है रिटर्न के साथ सेवा करने के लिए भेजा कोड
      डी) सफल प्रतिक्रिया तब तक प्रत्येक एपीआई अनुरोध पर हस्ताक्षर करने के लिए एक्सेस टोकन देता है।

इस समय बहुत से बड़े सेवा प्रदाता OAuth 2.0 का उपयोग करते हैं। यह एक सही समाधान नहीं है लेकिन यह शायद इस समय उपयोग की जाने वाली सबसे सुरक्षित, विस्तृत फैलाव, एपीआई सुरक्षा विधि है।

+0

क्या आप विस्तृत कर सकते हैं "सत्र आईडी प्रमाणीकरण का एक रूप नहीं बल्कि प्राधिकरण का परिणाम है।" – paul

+0

मेरा उत्तर अपडेट किया गया, संक्षेप में - सत्र आईडी प्रमाणीकरण का एक रूप नहीं है, एपीआई टोकन है। –

+0

क्या आप एक एपीआई कुंजी कह रहे हैं बस मेरे ऐप से आने वाले अनुरोधों की पहचान करता है और ऐप के माध्यम से उपयोगकर्ता लॉग इन करने के लिए कुछ भी नहीं है? क्योंकि मैंने जो कुछ पढ़ा है, उससे मेरी एपीआई स्टेटलेस होनी चाहिए और सत्रों का उपयोग नहीं करना चाहिए। – paul

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