सेररल दिनों के लिए अब मैं अपने एएसपीनेट कोर वेब एपीआई प्रोजेक्ट के भीतर काम करने के लिए Google और फेसबुक के साथ ओथ प्रमाणीकरण प्राप्त करने का प्रयास कर रहा हूं।एएसपीनेट कोर वेब एपीआई: प्रमाणीकरण के लिए फेसबुक/Google ओएथ एक्सेस टोकन का उपयोग
मेरे वर्तमान स्थिति है:
- मैं एक ASP.net कोर वेब एपीआई परियोजना है, जिसमें उन की जरूरत है प्रमाणीकृत करने
- मैं जो अपने वेब का उपयोग करना चाहिए एक कोणीय 2 वेब एप्लिकेशन है (प्रमाणीकरण के साथ)
- एपीआई मैं एक Android एप्लिकेशन है, जो अपने वेब एपीआई (प्रमाणीकरण के साथ) का उपयोग करना चाहिए
है मेरा लक्ष्य है:
- बाद में प्रवेश के लिए OAuth प्रदाताओं के रूप में गूगल/फेसबुक का उपयोग करना: स्वयं उपयोगकर्ता खाता जोड़ने में (शायद IdentityServer4 के साथ)
- (IdentityServer4 की तरह एक विशेष लॉगिन वेबसाइट पर रीडायरेक्ट करने की कोई जरूरत नहीं उपाय)। ऐप में बस फेसबुक/गूगल बटन दबाएं, एक्सेस की अनुमति दें, किया!
मेरे एंड्रॉइड और कोणीय ऐप में मैं Google/facebook से एक्सेस टोकन पुनर्प्राप्त करने में सक्षम हूं। अब, मैं अपने वेब एपीआई पर उपयोगकर्ता को प्रमाणीकृत करने के लिए ओएथ अंतर्निहित प्रवाह का उपयोग करना चाहता हूं, दिए गए एक्सेस टोकन (टोकरे को टोकरे के रूप में हेडर में डालकर)
मेरी समस्या है: क्या कोई भी शैली है यह आसानी से करने के लिए? मैं इसके लिए फेसबुक/गूगल एसडीके का उपयोग नहीं करना चाहता हूं। IdentityServer4 का उपयोग कर
- : इस के साथ मैं/फेसबुक के साथ प्रवेश करने के लिए अपने WebAPI पर गूगल कर रहा हूँ, लेकिन IdentityServer4 प्रवेश पृष्ठ पर एक पुनर्निर्देशन के जरूरत नहीं है
मैं निम्नलिखित की कोशिश की है। क्या मेरे ऐप में Google/fb-Button को मारने और पहचानने के लिए में लॉग इन करने का कोई संभावित तरीका है सर्वर सर्वर लॉगिन पृष्ठ के पुनर्निर्देशन के बिना?
- google/facebook प्रमाणीकरण मिडलवेयर (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/) का उपयोग करके: लेकिन वे मेरे भेजे गए भालू टोकन को मान्य नहीं कर रहे हैं (उचित सत्यापन प्राप्त करने के अनगिनत तरीकों की कोशिश की है)। क्या वेब एपीआई के भीतर भी इसका उपयोग करना संभव है?
- Microsoft.AspNetCore.Authentication.JwtBearer-मिडिलवेयर उपयोग करने के लिए कोशिश कर रहा है और अपने आप से गूगल/फेसबुक के लिए आवश्यक विकल्प में डाल, लेकिन यह भी मान्य (अच्छी तरह से अनगिनत प्रयास)
पिछले कुछ दिनों में नहीं , मैंने इतने सारे संभावित समाधानों का प्रयास किया है, कि मैं पूरी तरह से अटक गया हूं और इसे हासिल करने के लिए मुझे क्या करना है, इसका ट्रैक खो गया है। इस बिंदु पर मैंने लगभग हर एएसपीनेट वेब एपीआई ओथ ट्यूटोरियल/स्टैक ओवरफ्लो एंट्री पढ़ी है, लेकिन यह पता नहीं लगा सकता कि मेरे मामले में इसे कैसे इस्तेमाल किया जाए। अधिकांश ट्यूटोरियल सिर्फ एमवीसी-वेबसाइट्स के लिए हैं या इसके लॉगिन पेज पर पुनर्निर्देशन के साथ पहचान सर्वर 4 का उपयोग कर रहे हैं।
कोई सुझाव या समाधान? मैं क्या खो रहा हूँ?
तृतीय पक्ष प्रमाणीकरण के लिए, मेरा मानना है कि जब पृष्ठ आपको वापस एप्लिकेशन (उपयोगकर्ता प्रमाणीकृत) पर रीडायरेक्ट किया जाता है, तो HTTP अनुरोध में प्रमाणीकरण डेटा होना चाहिए। आप इसे रोकने के लिए एक वैश्विक फ़िल्टर लिख सकते हैं। यहां कुछ विवरण देखें: https://andrewlock.net/an-introduction-to-oauth-2-using-facebook-in-asp-net-core/ – wannadream
क्या आपने कभी इसे हल किया था? – Marcus
मुझे एक समाधान मिला (कुछ हफ्ते पहले, यहां अपडेट करना भूल गया था): पहचान सर्वर 4 के ऑथ एंडपॉइंट पर, पहचानकर्ता सर्वर के लॉगिन पृष्ठ के बिना, चयनित पहचान प्रदाता की वेबसाइट पर तत्काल रीडायरेक्ट करने के लिए कोई विशेष पैरामीटर का उपयोग कर सकता है । जैसा कि यहां बताया गया है http://docs.identityserver.io/en/release/endpoints/authorize.html idp: acr_values के भीतर name_of_idp पैरामीटर सीधे पहचान प्रदाता को रीडायरेक्ट करता है, जो मैं चाहता था। – Rul3r