2014-10-19 26 views
5

Tôi đã xây dựng một API Web Restful cho ứng dụng di động (android) của mình và bây giờ tôi đang cố gắng truy cập vào API. Tôi đã đọc khoảng một tuần về chủ đề này và tôi đã nhận được toàn bộ quang phổ - từ những người nói rằng không thể đảm bảo một API Restful cho những người nói rằng Https (SSL) là đủ. Ở đây tôi không muốn bắt đầu một cuộc thảo luận về điều đó. Tôi đã giải quyết với OAuth hoặc OAuth2 không quan trọng (theo như tôi đã đọc OAuth có vẻ là sự lựa chọn tốt hơn, nhưng trong hướng dẫn của Microsoft họ sử dụng OAuth 2, vì vậy ở đây tôi khá bối rối), và có tôi biết rằng họ hoàn toàn khác nhau, nhưng tôi rất thất vọng khi tìm kiếm rằng tôi sẽ chấp nhận hoặc (tôi phải thừa nhận rằng tôi đã giải quyết vấn đề này dễ dàng hơn nhiều). Như tôi đã nói, tôi đã tìm kiếm khoảng một tuần, và tất cả những gì tôi có là các khái niệm (rất nhiều trong số đó). Bạn gửi một số dữ liệu bắt đầu -magic - thường là tên người dùng/mật khẩu cho máy chủ, dữ liệu của bạn đang được xử lý và bạn nhận được một mã thông báo trở lại - magic stop-. Trên SO có rất nhiều câu hỏi về chủ đề này nhưng hầu hết các câu trả lời là không chắc chắn (và tiếc là không có giá trị). Ví dụ: tôi đã nhận được một số How to secure WEB API, câu trả lời hay, nhưng không thực sự sử dụng chúng, hoặc số này Implement Web API with OAuth and a Single Page Application. Tôi cũng đã nhận được các ví dụ từ các hướng dẫn của Microsoft nhưng có rất nhiều chi phí trong mã và một phần về OAuth không phải là khá rõ ràng (đó là không may vì toàn bộ ví dụ nên về OAuth). Tôi có thể đăng hàng tấn liên kết yêu cầu để nói về chủ đề này, nhưng thực ra họ không có sự giúp đỡ nào.API OAuth (OAuth2) API REST REST của RESTA (OAuth2) (Self host - windows service) thực hiện

Điều tôi đang tìm kiếm là một ví dụ đơn giản, rất đơn giản về triển khai ASP.NET OAuth (2). Nó sẽ là tuyệt vời nếu tôi chỉ có thể sử dụng nó với fiddler, cung cấp một tên người dùng/mật khẩu trong tiêu đề và sử dụng grant_type: xxx Tôi lấy lại mã thông báo (tên người dùng/mật khẩu được phép có thể được mã hóa cứng bên trong dự án, vì vậy không cần thực thể triển khai khung công tác hoặc bất kỳ cơ sở dữ liệu nào trên chương trình phụ trợ). Và cũng sẽ tuyệt vời nếu ai đó có thể giải thích cho tôi cách sử dụng mã thông báo này để ủy quyền cho người dùng (tôi nhận được rằng tôi phải cung cấp các chức năng Bộ điều khiển với thuộc tính [Authorize], nhưng cách kiểm tra mã thông báo này được thực hiện ở đâu và ở đâu?) . Nhưng làm ơn, đừng gửi bất kỳ lý thuyết về OAuth, tôi không cần điều đó, ở đây tôi đang tìm việc thực hiện thực tế của OAuth bên trong Asp.Net Web Api

nhờ

+0

Tôi đang đi cùng một con đường và bây giờ tôi bị kẹt. Bạn có thể vui lòng chia sẻ mã của bạn ở đâu đó và giúp tôi không phải đi lại cùng một con đường như bạn đã làm. –

+0

xin lỗi tôi đã không kiểm tra SO. Bạn đã giải quyết được vấn đề chưa? – user3466562

Trả lời

6

Đây là detailed post về việc thêm dòng thông tin đăng nhập mật khẩu của chủ sở hữu tài nguyên cho dự án API Web của bạn.

+0

Xin chào, tôi đã tự quản lý nó. Cảm ơn câu trả lời, khi tôi nhìn qua nó có vẻ như có một số thứ mà tôi vẫn có thể sử dụng. – user3466562

2

Việc thực hiện đơn giản nhất của OAuth2 trong dự án Web API bạn có thể tìm thấy ở đây:

Có chỉ là hai tập tin quan trọng:

  • Startup.cs (với cài đặt)
  • AuthorizationServerProvider.cs (ủy quyền cho người dùng đang sử dụng oauth2)
Các vấn đề liên quan