2011-07-18 29 views
11

Tôi nhìn vào twitter thực hiện oauth đề xuất ở đây:OAuth - nhúng bí mật ứng dụng khách vào ứng dụng của bạn?

https://dev.twitter.com/docs/auth/oauth 

và oauth thư viện như biển hiệu:

http://code.google.com/p/oauth-signpost/ 

cả hai đều nói chuyện về việc sử dụng bí mật của khách hàng trong suốt dòng chảy oauth, có nghĩa là cho ứng dụng khách của tôi, tôi cần lưu trữ bí mật trong chính ứng dụng. Điều này có lẽ là nguy hiểm vì ai đó có thể lấy bí mật ra khỏi ứng dụng của tôi. Có bất kỳ phương pháp nào xung quanh việc lưu trữ bí mật trong ứng dụng của tôi không? Tôi có hiểu lầm về luồng oauth không?

Cảm ơn

Trả lời

3

Không có cách nào để lưu trữ thông tin đăng nhập ứng dụng khách trong ứng dụng gốc hoặc JavaScript mà không đặt chúng ở chế độ công khai. Ngoài ra, đặt các thông tin đăng nhập đó trên máy chủ proxy và yêu cầu khách hàng trao đổi với máy chủ (để các thông tin đăng nhập không được hiển thị) cũng không thực sự giải quyết được bất kỳ thứ gì. Bây giờ bạn có vấn đề xác thực máy khách với proxy.

Giải pháp đúng là có hỗ trợ đặc biệt cho các ứng dụng gốc do dịch vụ OAuth cung cấp. OAuth 2.0 sử dụng URI chuyển hướng đã đăng ký trước và các kỹ thuật khác để thực hiện xác minh danh tính khách hàng hợp lý cho các khách hàng đó.

+2

Bạn có thể giải thích thêm về điều đó không? Tôi đã đọc nhanh bản nháp - http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-9 - điều này có nghĩa là ứng dụng gốc không sử dụng 'bí mật của khách hàng' khi sử dụng OAuth? Bạn có thể mô tả luồng yêu cầu không? –

+3

Ứng dụng gốc không được sử dụng bí mật của ứng dụng khách vì nó không có giá trị thực và tạo cảm giác an toàn giả mạo. –

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