2012-01-24 33 views
8

Ứng dụng web mà tôi hiện đang phát triển cần người dùng có thể đăng nhập qua Facebook OAauth. Tuy nhiên, vấn đề là, tất cả những người dùng này đều đứng sau tường lửa chặn truy cập vào facebook.com (chính sách của công ty). Chúng tôi đã xem xét một số giải pháp để giải quyết vấn đề này, như;Đăng nhập bằng Facebook oauth, mà không cần truy cập facebook.com

  • Đặt proxy (mực) giữa Facebook và người dùng. Điều này có thể giải quyết vấn đề vì mực hỗ trợ các ACL dựa trên regex tốt. Tuy nhiên, hầu hết các chiến lược OAuth Facebook chạy trên www.facebook.com và kiểm tra PATH_INFO để đưa vào danh sách trắng đường dẫn cụ thể là không thể nếu người dùng sử dụng HTTPS (bắt buộc).
  • Thêm trang web giống proxy trong DMZ của tường lửa, tính năng này chỉ chuyển và làm thay đổi yêu cầu url/Facebook. Điều này rõ ràng không phải là cách để đi hoặc vì nó về cơ bản sẽ có nghĩa là người dùng để lại thông tin của họ tại máy chủ của chúng tôi, đó là chống lại các điều khoản của Facebook.
  • Nới lỏng tường lửa một chút để chỉ cho phép địa chỉ IP cần thiết để xác thực OAuth, nhưng theo như chúng tôi có thể tìm ra không có IP hoặc tên miền phụ chuyên dụng chỉ để xác thực (sẽ rất tuyệt nếu graph.facebook.com sẽ cung cấp một cái gì đó như thế này).

Bất kỳ ý tưởng nào cho giải pháp thay thế? Điều này thậm chí có thể ở tất cả?

+1

"Bất kỳ ý tưởng nào cho giải pháp thay thế?" Nếu Facebook là một phần không thể tách rời của ứng dụng bạn đang xây dựng, thì người quản lý của bạn sẽ có thể đưa các chàng trai mạng vào trường hợp ngoại lệ với các quy tắc tường lửa. Công ty của tôi sử dụng bộ lọc theo vai trò và bởi người dùng. Vì vậy, chỉ những người trong một vai trò nhất định có được facebook cũng như một số người dùng bị ghi đè và truy cập dù sao đi nữa. – DMCS

+0

Thậm chí nếu có thể thông qua một loạt các hack, nó sẽ dễ bị phá vỡ mọi thứ vì Facebook là một công ty di chuyển nhanh và nền tảng phát triển, và mọi thứ thay đổi, đôi khi đáng ngạc nhiên thường xuyên. Nó sẽ có khả năng là một giải pháp dễ vỡ, và tôi không thể tưởng tượng nhiều thất vọng hơn là có một ứng dụng thành công với nhiều người dùng mà tất cả các ngày đột ngột họ không còn có thể sử dụng trang web của bạn nữa. – spotman

+0

Điều gì về việc cho phép URL facebook.com/dialog/oauth trong tường lửa? – chesles

Trả lời

3

Không, vì quy trình OAuth Login cho API hoạt động bằng cách gửi người dùng đến URL HTTPS trên facebook.com, bạn sẽ không thể dễ dàng phân biệt giữa lưu lượng truy cập cần thiết để thiết lập đăng nhập vào ứng dụng của bạn và lưu lượng truy cập khác Để Facebook.com

Bạn sẽ gặp vấn đề tương tự khi cố gắng xác minh người dùng Facebook bằng cách sử dụng plugin xã hội như Nút Like - bạn không thể tách lưu lượng truy cập cho plugin và lưu lượng truy cập khác vào facebook.com

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