Tôi đang tìm một số hướng dẫn về cách tốt nhất để xác thực với WebService của tôi. Ngay bây giờ, tôi có một WebService chuẩn trên .NET 3.5 và một trang web MVC nằm trên đầu trang của WebService này.Sử dụng OpenID với WebService: Cách tốt nhất để xác thực?
Trang web MVC sử dụng OpenID để xác thực người dùng và trong giai đoạn phát triển, chúng tôi chỉ đơn giản là chuyển Mã định danh OpenID được xác nhận quyền sở hữu của người dùng cho WebService để xác thực. Rõ ràng đây không phải là những gì chúng tôi sẽ phát hành cho khách hàng khi chúng tôi phát trực tiếp.
Vì vậy, câu hỏi của tôi là: Cách tốt nhất để xác thực với WebService là gì?
Một số API tôi đã chơi xung quanh bằng cách sử dụng Mã xác thực. Một ý tưởng khác mà chúng tôi đã có, khi kết nối với WebService, chuyển cho khách hàng một khóa mã hóa mà họ có thể sử dụng cho tất cả các lần chuyển.
Tôi đang suy nghĩ to ở đây và một lần nữa, mọi trợ giúp đều được đánh giá cao! Cảm ơn!
...
UPDATE: Ngay bây giờ tôi đã tạo ra một SoapAuthenticationHeader tùy chỉnh trong đó có một tài sản OpenIdURL. Điều này được sử dụng trên tất cả các cuộc gọi dịch vụ để xác thực người dùng. Vấn đề là hai lần:
- Nếu tin tặc biết OpenIdURL của người dùng, họ có thể dễ dàng truy cập vào WebService.
- OpenIdURL hiện được chuyển thành văn bản thuần túy.
Vì vậy, tôi có thể chuyển khóa mã hóa cho máy khách khi kết nối với WebService và yêu cầu khách hàng mã hóa OpenIdURL trong tiêu đề SoapAuthentication. Nhưng tôi không chắc chắn về cách đi tốt nhất về điều đó ...
Khi bạn nói "dịch vụ web chuẩn" nghĩa là dịch vụ ASMX cũ hay bạn đang sử dụng WCF? –
Điều này gần với những gì tôi mong đợi, nhưng nó sẽ là tuyệt vời nếu ai đó chỉ có thể giải thích điều này thêm một chút. http://stackoverflow.com/questions/544388/openid-authentication-and-api-access –
Tôi đang sử dụng ASMX WebService chuẩn và MVC đang truy cập WebService dưới dạng tham chiếu dịch vụ (mà tôi nghĩ là WCF vỏ bánh?). –