All,ASP.NET nhận dạng 2.0 Authenticate chống lại máy chủ của chúng ta mang
Tôi đã có một máy chủ bảo mật mà mục đích duy nhất là cung cấp thẻ vô danh từ một thiết bị đầu cuối duy nhất: yêu cầu http://example.com/token
Ví dụ:
phản ứngPOST 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
Ví dụ:
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"
}
Chúng tôi hav e một ứng dụng góc sử dụng điểm cuối này để xác thực, và làm như vậy tốt.
Những gì chúng tôi đang cố gắng đạt được mà không cần nhiều thành công là tạo ứng dụng MVC sử dụng cùng một máy chủ để xác thực, chúng tôi muốn mã nằm trên đầu trang Identity 2.0 nếu có thể.
Trong AccountController
(ví dụ dự án), chúng ta có phương pháp Login(LoginModel model)
của chúng tôi mà xử lý đăng nhập và trông như thế này (giống như mẫu ví dụ dự án):
var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
Chúng tôi có implemention riêng của chúng ta về IUserStore, UserManager, SignInManager.
Tôi đã coi trọng
public Task<SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout) on `SignInManager<,>` and make a web call across to the security server.
Việc thực hiện mặc định của PasswordSignInAsync
cuộc gọi UserManager.FindByNameAsync
tuy nhiên điều này sẽ có nghĩa là tôi sẽ phải phơi bày một phương pháp tra cứu trên máy chủ an ninh của tôi để xác nhận tên người dùng tồn tại mà thực sự không Nghe hay đấy.
Tôi phải thiếu điều gì đó và tôi biết nó sẽ không phức tạp, ứng dụng MVC của chúng tôi cần sử dụng xác thực cookie mà còn duy trì mã thông báo gấu cho các cuộc gọi tiếp theo đến máy chủ tài nguyên khác của chúng tôi.
(Tôi đánh giá cao tôi có thể đang trộn các công nghệ ở đây, do đó, câu hỏi).
Điều này cũng đang chạy trên OWIN.
Bạn muốn ứng dụng MVC mới sử dụng Máy chủ xác thực hiện tại cho mã thông báo của nó? Nếu vậy, bạn mong muốn đạt được lợi thế gì? –
Ứng dụng MVC của bạn không cần phải có bộ điều khiển Đăng nhập. Không phải ai cũng lấy người dùng và mật khẩu. Ứng dụng MVC của bạn nên xác thực và nhận được một AccessToken từ SecurityServer của bạn, và bạn nên giải mã mã thông báo này trên MVC. Điều này sẽ có thể nếu máy chủ chia sẻ một số thuộc tính. Đọc bài viết này để biết thêm thông tin: http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/ – Xavero
Không chắc chắn liệu tôi có Có được câu hỏi của bạn đúng - * Những gì chúng tôi đang cố gắng đạt được mà không cần nhiều thành công là tạo một ứng dụng MVC sử dụng cùng một máy chủ để xác thực * - Aint nó có thể đạt được điểm cuối mã thông báo máy chủ bảo mật đó thông qua HttpClient từ hành động đăng nhập AccountController của bạn với tên người dùng và mật khẩu nào sẽ đặt mã thông báo trong cookie phản hồi nếu yêu cầu được xác thực? – Developer