2011-10-12 39 views
10

Tôi khá quen thuộc với DotNetOpenAuth và OAuth nói chung, nhưng về phát triển API Web, cách tốt nhất để khóa dịch vụ web là gì sau đây tiêu chí:Cách tốt nhất để xử lý xác thực trên .NET WCF Web API

  • Dễ thực hiện
  • Khả năng cộng tác/khả năng tương thích với các nền tảng người dùng cuối phải đối mặt với (iOS, Android, Win Phone, Flex ...)
  • hay không nó rõ ràng là dựa trên tiêu chuẩn (như OAuth chẳng hạn)

Cảm ơn!

Trả lời

5

xin hãy xem ở đây: OAuth 2.0 in Web API

Bên trong dự án WebApiContrib cũng có những mẫu Basic Authentication mà là thẳng về phía trước nhưng nó không nên được sử dụng mà không SSL.

+0

Kiểm tra điều này! Cảm ơn. –

+4

Ok để có ích, nhưng đây là câu hỏi của tôi: làm thế nào để tôi hoạt động như "Facebook" trong ví dụ được cung cấp? Bài viết giả định rằng bạn muốn sử dụng nhà cung cấp tin cậy OAuth bên ngoài. Tôi muốn xây dựng cả nhà cung cấp tín dụng và dịch vụ web tại đây. –

0

Có một vài triển khai web api wcf để xử lý xác thực trên internet. Tôi đã làm một cũng @http://misaxionsoftware.wordpress.com/2011/07/29/secure-restful-web-service-by-wcf-web-api-no-https-seriously/

Lưu ý: Mã được dựa trên Preview 3, một số tên lớp đã thay đổi trong Preview 5.

Ý tưởng thực hiện là đảm bảo thông tin liên lạc bảo đảm mà không SSL.

Thật dễ dàng để xây dựng. Chức năng này là minh bạch đối với dịch vụ của bạn bởi vì tất cả công việc được thực hiện trong trình xử lý tin nhắn. Bạn không cần phải gọi hàm xác thực trong phương thức dịch vụ của bạn.

Tương thích với điểm cuối, nơi mã hóa RSA được hỗ trợ.

dựa trên tiêu chuẩn, hmm ... Tiêu chuẩn thay đổi theo từng trường hợp ...

3

Các DotNetOpenAuth .zip tải về bao gồm một dịch vụ WCF mẫu được bảo vệ bởi OAuth.

+0

Tôi vừa tải xuống các mẫu của bạn. Tôi đánh giá rất nhiều mẫu, nhưng tôi hơi bối rối bởi tất cả các tên và thuật ngữ của dự án. Có một mẫu cụ thể thể hiện bằng cách sử dụng Oauth2 để tự cung cấp mã thông báo oauth thay vì sử dụng nhà cung cấp dịch vụ openid đã biết (như google) không? – Adam

+1

Mẫu 'OAuthResourceServer' thể hiện bằng mã thông báo truy cập OAuth 2 để ủy quyền. Mẫu 'OAuthAuthorizationServer' thể hiện việc phát hành các mã thông báo truy cập này. Thực tế là máy chủ ủy quyền sử dụng OpenID để đăng nhập người dùng là trực giao với luồng OAuth và bạn có thể thay thế nó bằng bất kỳ thứ gì bạn muốn. –

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