2008-09-25 29 views
5

Tôi đang xem xét việc xây dựng một ứng dụng web đơn giản sẽ hiển thị API cho phép bên thứ ba (tốt, được viết bởi tôi, nhưng đó không phải là vấn đề) ứng dụng truy vấn và sửa đổi dữ liệu người dùng cụ thể được lưu trữ trên trang web.Có cách nào tiêu chuẩn để xác thực ứng dụng cho API web của bạn không?

Rõ ràng là tôi không muốn cho phép ứng dụng có thể nhận thông tin dành riêng cho người dùng mà không có sự đồng ý của người dùng. Tôi muốn một số loại xác thực ứng dụng mà người dùng cho phép ứng dụng họ chạy để sử dụng API web để truy cập thông tin của họ.

Có cách nào tiêu chuẩn để đạt được điều này hoặc thực hiện mọi ứng dụng (ví dụ: rememberthemilk) chỉ cần hack một giải pháp riêng biệt dành riêng cho họ?

Trả lời

7

Liệu OAuth có phù hợp với bạn không? Đó là vấn đề nó được thiết kế để giải quyết.

+0

Có vẻ thú vị. Dường như có một cộng đồng khá tích cực, ít nhất là trong Google Groups. Bạn có biết nếu có ai sử dụng nó không? RTM dường như sử dụng điều riêng của họ, cũng như twitter ..? Google hỗ trợ nó (nhưng cũng có điều riêng của họ) .. chỉ không muốn xây dựng một 'tiêu chuẩn' mà không ai sử dụng, bạn biết: P – SCdF

+0

Theo ars, "nó đã có sự ủng hộ phát triển của các cá nhân và nhân viên của các công ty như Google, AOL, Yahoo, Twitter, Pownce, Six Apart, Blaine Cook (trước đây là Twitter, hiện tại Yahoo) và Mark Atwood. Đủ tốt cho tôi :) – SCdF

+0

OAuth chỉ bao gồm một thành phần trong API của bạn. Vì vậy, trừ khi phần còn lại của API của bạn tuân theo một tiêu chuẩn người khác thực hiện, nó hầu như không quan trọng nếu người khác sử dụng OAuth hay không. Nếu OAuth hoạt động cho bạn, hãy sử dụng nó. Nó có một mô hình khả thi, nó được xem xét kỹ lưỡng và có sẵn các triển khai. – keturn

3

Cũng nên cẩn thận truy cập dịch vụ web của bạn qua HTTPS nếu dữ liệu đang truyền qua Internet. Mọi người mất nhiều thời gian để xác thực dịch vụ web của họ, nhưng sau đó để họ dễ bị tấn công mạng.

+0

Và ở một mức độ lớn, nếu bạn sử dụng HTTPS, rất nhiều máy móc trong OAuth là không cần thiết. Nhưng OAuth đã được thiết kế để cung cấp một số biện pháp bảo vệ nhất định cho lưu lượng truy cập trên các kênh không được mã hóa. – keturn

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