सभी के खिलाफ 2.0 प्रमाणित,ASP.NET पहचान हमारे अपने वाहक सर्वर
मैं एक सुरक्षा सर्वर जो एकमात्र उद्देश्य एक भी अंत बिंदु से वाहक टोकन प्रदान करना है मिल गया है: http://example.com/token
उदाहरण अनुरोध:
POST http://example.com/token HTTP/1.1
User-Agent: Fiddler
Content-Type: x-www-form-urlencoded
Host: example.com
Content-Length: 73
grant_type=password&[email protected]&password=examplePassword
उदाहरण प्रतिक्रिया:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Expires: -1
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Tue, 16 Aug 2016 12:04:39 GMT
{
"access_token": "xxxx",
"token_type": "bearer",
"expires_in": 17999,
"refresh_token": "xxxx",
".issued": "Tue, 16 Aug 2016 12:04:38 GMT",
".expires": "Tue, 16 Aug 2016 17:04:38 GMT"
}
हम हवलदार ई एक कोणीय अनुप्रयोग जो प्रमाणीकरण के लिए इस एंडपॉइंट का उपयोग करता है, और यह ठीक है।
हम जो भी सफलता हासिल करने की कोशिश कर रहे हैं वह एक एमवीसी एप्लीकेशन बनाना है जो प्रमाणित करने के लिए उसी सर्वर का उपयोग करता है, हम कोड को पहचान 2.0 के शीर्ष पर बैठना चाहते हैं।
हमारे AccountController
(उदाहरण के परियोजना) में हम अपने Login(LoginModel model)
तरीका है जिसके लॉगिन संभालती है और इस तरह दिखता है (एक ही रूप में उदाहरण के प्रोजेक्ट टेम्पलेट):
var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
हम IUserStore, UserManager, SignInManager की अपनी अंतर्गत प्रयोग किया है।
मैं अधिभावी पर विचार किया है
public Task<SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout) on `SignInManager<,>` and make a web call across to the security server.
PasswordSignInAsync
कॉल की डिफ़ॉल्ट कार्यान्वयन UserManager.FindByNameAsync
लेकिन इसका मतलब यह होगा कि मैं अपने सुरक्षा सर्वर पर एक देखने विधि का पर्दाफाश करने की पुष्टि के लिए एक उपयोगकर्ता नाम मौजूद है जो वास्तव में नहीं है होगा अच्छा प्रतीत होता है।
मुझे कुछ याद आना चाहिए और मुझे पता है कि यह जटिल नहीं होगा, हमारे एमवीसी ऐप को कुकी प्रमाणीकरण का उपयोग करने की आवश्यकता है, लेकिन हमारे अन्य संसाधन सर्वर के बाद के कॉल के लिए भालू टोकन को भी बनाए रखना है।
(मुझे सराहना है कि मैं यहां प्रौद्योगिकियों को मिश्रित कर सकता हूं, इसलिए सवाल)।
यह ओविन पर भी चल रहा है।
आप अपने टोकन के लिए मौजूदा प्रमाणीकरण सर्वर का उपयोग करने के लिए एक नया एमवीसी अनुप्रयोग चाहते हैं? यदि हां, तो आप किस लाभ का लाभ उठाने की उम्मीद करते हैं? –
आपके एमवीसी एप्लिकेशन में लॉग इन कंट्रोलर की आवश्यकता नहीं है। वही नहीं जो उपयोगकर्ता और पासवर्ड लेता है। आपके एमवीसी एप्लिकेशन को प्रमाणित करना चाहिए और अपने सुरक्षा सर्वर से एक्सेस टोकन प्राप्त करना चाहिए, और आपको एमवीसी पर इस टोकन को डिक्रिप्ट करना चाहिए। यदि सर्वर कुछ गुण साझा करता है तो यह संभव होगा। कुछ और जानकारी के लिए इस आलेख को पढ़ें: http://bitoftech.net/2014/09/24/decouple-owin- प्राधिकरण- सर्वर- संसाधन- सर्वर-oauth-2-0-web-api/ – Xavero
सुनिश्चित नहीं है कि मैं आपके प्रश्न को सही मिला - * हम बिना किसी सफलता के हासिल करने की कोशिश कर रहे हैं एक एमवीसी एप्लिकेशन बनाना जो एक ही सर्वर का प्रमाणीकरण करने के लिए उपयोग करता है * - अपने खाता नियंत्रक से HttpClient के माध्यम से उस सुरक्षा सर्वर टोकन एंडपॉइंट को हिट करना संभव है उपयोगकर्ता नाम के साथ लॉग इन कार्रवाई और अनुरोध पासवर्ड प्रमाणित होने पर प्रतिक्रिया कुकी में टोकन सेट करना होगा? – Developer