2012-04-04 25 views
5

Tôi sắp bắt đầu phát triển một ứng dụng Doanh nghiệp mà tôi muốn giao diện là một giải pháp javascript trang duy nhất. Phần cuối được cung cấp dưới dạng API REST. Làm cách nào tôi có thể truy cập REST API một cách an toàn từ giao diện Javascript?Cách an toàn để sử dụng API REST Oauth 2.0 từ javascript

Tôi đã bắt đầu phát triển Oauth 2.0 trong API REST của mình và tôi đã biết về "Dòng tài trợ ngầm" là luồng được đề xuất cho các ứng dụng javascript. Vấn đề là luồng này chỉ nên cung cấp các mã thông báo truy cập ngắn (có thể là 1 giờ?).

Người dùng của hệ thống của tôi thường đăng nhập vào buổi sáng và làm việc trong ứng dụng cả ngày (8 giờ) và đăng xuất trước khi rời công việc, nhưng mã thông báo truy cập chỉ tồn tại trong một giờ họ sẽ phải đăng nhập lại mỗi giờ mà không phải là accepatble. Làm thế nào để bạn giải quyết điều này?

+1

Một giải pháp mà tôi có thể nghĩ đến là thay vì trả về mã thông báo truy cập hết hạn sau 1 giờ, tôi có thể trả về access_token với thời gian hết hạn trượt. Đối với mọi cuộc gọi mà khách hàng thực hiện với API, thời gian hết hạn được gia hạn với 20 phút. Nhưng điều này có được coi là an toàn không? Tôi chưa bao giờ thấy các máy chủ Oauth sử dụng hết hạn trượt? – rgullhaug

Trả lời

5

Chúng tôi (Ping Identity) hỗ trợ trượt hết hạn mã thông báo truy cập trong triển khai OAuth AS của chúng tôi - không có thông số kỹ thuật OAuth 2.0 nào cho biết bạn không thể thực hiện điều đó. Đối với các loại tài trợ khác, bạn có mã thông báo làm mới liên quan đến thời gian tồn tại lâu hơn - nhưng ngầm định không hoạt động với chúng.

Không chắc chắn nếu bạn cần bộ công cụ OAuth JavaScript, nhưng here's one có thể phù hợp với mục đích của bạn.

+1

Cảm ơn bạn đã dành thời gian trả lời câu hỏi của tôi. Tôi sẽ thực hiện trượt hết hạn, cũng cảm ơn bạn rất nhiều cho bộ công cụ javascript, tôi sẽ kiểm tra nó ra :) Một câu hỏi nữa: Trong dòng ngầm chúng tôi không cung cấp một bí mật của khách hàng (vì nó không thể được giữ bí mật trên máy khách), nhưng chúng tôi cần biết chắc chắn khách hàng nào đang kết nối với dịch vụ của chúng tôi vì khách hàng khác nhau sẽ có quyền truy cập vào các phần khác nhau của API. Sẽ kiểm tra xem redirect_uri có giống với redirect_uri đã đăng ký đủ để đảm bảo rằng chúng ta đang nói chuyện với đúng khách hàng không? – rgullhaug

+1

Có - redirect_uri so sánh là con đường để đi. Như bạn đã nói, bất kỳ bí mật nào bạn duy trì phía khách hàng đều bí mật chỉ quá lâu. –

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