2012-02-09 36 views
5

Chúng tôi đang xây dựng một API REST bằng cách sử dụng ASP.NET MVC. API này tương tự về nguyên tắc và cách sử dụng API v3 thực tế. Họ sử dụng Oauth 1 chân cho API của họ. Thiết kế của chúng tôi rất giống với các ứng dụng đó, chủ yếu là thiết bị di động sẽ sử dụng API của chúng tôi phía sau hậu trường để cung cấp dịch vụ. Người dùng cuối của ứng dụng sẽ không biết về API của chúng tôi và do đó sẽ không có bất kỳ thông tin đăng nhập nào. Vì vậy, chuyển hướng người dùng thông qua một cửa sổ trình duyệt đến một hình thức auth (như facebook) không có ý nghĩa gì cả. Câu hỏi của tôi là ..Điều gì là tốt nhất cho auth ASP.NET MVC REST API? OAuth 2.0 hoặc OAuth 1.0?

  • Tại sao luồng OAuth2 là cách tốt nhất để sử dụng trong trường hợp này?
  • Chúng tôi có nên sử dụng Oauth2 hoặc chỉ gắn bó với OAuth 1 chân không?

Để tham khảo, chúng tôi đang sử dụng C# /. NET, ASP.NET MVC 3 và có kế hoạch sử dụng DotNetOpenAuth v4.

http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3

Trả lời

4

Tại sao OAuth2 dòng chảy là tốt nhất để sử dụng trong tình huống này?

Nó không nhất thiết phải như vậy. OAuth 2 là thông số chưa được xác định. Nếu bạn cần khả năng tương tác tối đa, OAuth 1.0 là lựa chọn tốt hơn (hiện tại). OAuth 2 đơn giản hơn cho ứng dụng khách, với chi phí phức tạp được thêm vào đáng kể trên máy chủ.

Chúng tôi có nên sử dụng OAuth2 hoặc chỉ gắn bó với OAuth 1 chân không?

Sử dụng ưu và nhược điểm được liệt kê ở trên để chọn. Và cũng có nghĩa là nếu bạn đang sử dụng DotNetOpenAuth, hỗ trợ OAuth 1.0 đã tồn tại trong nhiều năm trong khi hỗ trợ OAuth 2.0 chưa hoàn toàn được nướng nên bạn có thể đã gặp phải một số va chạm trên đường.

+0

Vì Oauth2 mới, hãy truy cập Oauth1. Tôi đã tải xuống phiên bản mới nhất của DotNetOpenAuth 4 (rc1). Tôi có một thời gian chạm để phân loại qua tất cả các ví dụ để tìm một ví dụ tương tự với những gì chúng tôi cần. Chúng tôi đang sử dụng ASP.NET MVC 4 Web Api để xây dựng api còn lại. Tôi thực sự chỉ cần có khả năng ký một yêu cầu bằng cách sử dụng oauth với khóa api và bí mật, sau đó ở phía máy chủ có thuộc tính ủy quyền giải mã yêu cầu này và xác thực nó dựa vào khóa và bí mật trong cơ sở dữ liệu. Tôi nên theo dõi ví dụ nào? – craigtadlock

+0

Các mẫu OAuthServiceProvider và OAuthConsumer phù hợp nhất. Nhưng có vẻ như người dùng không liên quan đến kịch bản của bạn - vì vậy có vẻ như bạn mô tả [OAuth 0 chân] (http://blog.nerdbank.net/2011/06/what-is-2-legged-oauth .html). Trong khi tôi không nghĩ rằng có một mẫu cụ thể cho điều đó, nó nên được khá đơn giản để cổng các mẫu trên để nó phù hợp với nhu cầu của bạn. –

Các vấn đề liên quan