मेरे पास एक सीधा REST API वाला उत्पाद है ताकि उत्पाद के उपयोगकर्ता सीधे मेरे वेब उपयोगकर्ता इंटरफ़ेस का उपयोग किए बिना उत्पाद की विशेषताओं के साथ एकीकृत कर सकें।
हाल ही में मुझे विभिन्न तृतीय पक्षों से अपने डेस्कटॉप क्लाइंट को एपीआई के साथ एकीकृत करने के बारे में रुचि हो रही है ताकि मेरे उत्पाद के उपयोगकर्ताओं को उस तीसरे पक्ष के एप्लिकेशन का उपयोग करके अपने डेटा तक पहुंच प्राप्त करने की अनुमति मिल सके।
मैंने देखा है कि जो अनुप्रयोग ट्विटर द्वारा होस्ट किए गए लॉगिन पेज का उपयोग करके ट्विटर को प्रमाणित करना चाहते हैं, जो उस उपयोगकर्ता के डेटा तक पहुंचने के लिए एक विशिष्ट एप्लिकेशन अनुमति देता है। आप "अनुमति दें" या "अस्वीकार करें" बटन पर क्लिक करें और प्रमाणीकरण प्रक्रिया पूरी हो गई है। फेसबुक उसी तंत्र का उपयोग करता है जो मैं बता सकता हूं।
आगे के शोध पर, यह कार्रवाई में OAuth प्रतीत होता है, और मेरे एपीआई के रूप में देख रहा है। नेट-आधारित, मैं सोच रहा हूं कि मुझे DotNetOpenAuth का उपयोग करना चाहिए और एक समान तंत्र प्रदान करना चाहिए। दुर्भाग्य से नमूनों को बहुत कम प्रलेखित किया गया है (यदि सभी पर) और एकमात्र ट्यूटोरियल जो मैं ऑनलाइन पा सकता हूं, आपको अपने उपयोगकर्ताओं के लिए एक लॉगिन तंत्र प्रदान करने में मदद करने पर ध्यान केंद्रित किया जा सकता है ताकि वे तीसरे पक्ष के प्रदाता का उपयोग करके आपकी वेबसाइट पर लॉग इन कर सकें।
मैं वास्तव में क्या करना चाहूंगा कि मेरा REST API मेरे वेब एप्लिकेशन के लिए सभी मुख्य प्रमाणीकरण और व्यावसायिक तर्क को संभालता है और, हुड के तहत, मेरा वेब एप्लिकेशन अनिवार्य रूप से एक अन्य एप्लिकेशन है जो केवल OAuth के माध्यम से एपीआई का उपयोग करता है। उपयोगकर्ता वेबसाइट पर सीधे अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके या MyOpenID या Facebook जैसे किसी तीसरे पक्ष के प्रदाता के माध्यम से प्रमाणित करेंगे और फिर वेबसाइट किसी तरह रीस्ट एपीआई के खिलाफ प्रमाणित करने के लिए लौटे टोकन का उपयोग करेगी।
यह मूल रूप से ऐसा लगता है कि मुझे किसी OAuth सेवा की मेजबानी करने के लिए मेरे API की आवश्यकता है, लेकिन उपयोगकर्ताओं को तृतीय पक्ष OAuth सेवा का उपयोग करने की भी आवश्यकता है। मैं मदद नहीं कर सकता, लेकिन मुझे लगता है कि मैं काफी कुछ समझ पाने के लिए OAuth पर नहीं हूं कि क्या मैं चीजों को कम कर रहा हूं या अगर मैं जो करने की कोशिश कर रहा हूं वह चीजों को करने का एक अच्छा या बुरा तरीका है।
क्या कोई मुझे मेरे द्वारा किए जाने वाले कदमों का कम से कम एक विस्तृत अवलोकन दे सकता है, या ऐसा करने के लिए मुझे क्या देखना चाहिए? या मुझे कुछ ट्यूटोरियल में इंगित करें? या मेरे प्रस्ताव को विस्फोट करके बताएं कि मैं इस (वास्तुशिल्प) के बारे में गलत हूं?