2009-02-27 32 views
7

chúng tôi có rất nhiều người dùng trên diễn đàn VBulletin. bây giờ tôi muốn viết thêm vài ứng dụng trên đường ray cho cùng một userbase. Cho đến bây giờ tất cả các xác thực và quản lý phiên đang được chăm sóc bởi VBulletin. là những cách tốt nhất để cung cấp cho người dùng của tôi SSO cả onVBulletin và trên các ứng dụng đường ray tôi đang viếtký hiệu đơn giữa ứng dụng Vbulletin và đường ray


tôi đang làm việc trên quá trình đăng nhập một lần với v Bulletin và tùy chỉnh thực hiện ứng dụng. tôi có thể đăng nhập tại Vb bằng cookie. tôi có thể truy cập tất cả. nhưng khi truy cập gửi "Tin nhắn riêng". nó nói

" Bạn đã tắt tin nhắn. Bạn có thể không gửi tin nhắn cá nhân cho đến khi bạn bật chúng lên bằng cách chỉnh sửa tùy chọn của bạn. "

là có tất cả các phép được quy định tại "nguồn dữ liệu" bảng ?.

.

Cảm ơn chủ

Trả lời

7

Lý tưởng nhất là hai trang web của bạn là tên miền phụ của một miền chung (ví dụ forum.example.comrails.example.com), hoặc chia sẻ cùng một tên miền (www.example.com.) một trong những trang web sẽ là trình xác thực chính và đặt cookie (cho .example.com trong trường hợp của miền mẹ chung [thông báo . trước example.com] hoặc www.example.com trong trường hợp của miền dùng chung, để cả hai ứng dụng có thể truy cập miền đó), nơi cookie chứa:

  • các user ID
  • một salt (giá trị ngẫu nhiên tính theo thời gian đăng nhập), và
  • một SHA-2 signature tính qua bộ ba (user ID + salt + a shared secret key), nơi mà các khóa bí mật được chia sẻ là một chuỗi bí mật được biết đến bởi bo trang web thứ.

Mỗi trang web sẽ có thể lấy lại user IDsalt từ cookie, sau đó sử dụng shared secret key (chỉ được biết đến bởi hai ứng dụng) để tính toán một SHA-2 signature đó phải phù hợp với SHA-2 signature lưu trữ trong cookie.

Nếu phù hợp với SHA-2 signatures thì bạn có thể giả định rằng người dùng được xác thực, nếu không buộc người dùng phải đăng nhập lại.

Cookie phải bị hủy khi đăng xuất.

Bản in nhỏ

Để bảo vệ chống lại phiên tặc, tất cả các yêu cầu được thực hiện qua hai trang web nên được mã hóa trên SSL (sử dụng https.) Nếu đây là không thể, một băm dựa trên địa chỉ IP của khách hàng cũng như loại và phiên bản trình duyệt (Tác nhân người dùng) có thể được tính toán tại thời điểm đăng nhập và cũng được lưu trữ trong cookie. Nó phải được kiểm tra lại đối với địa chỉ IP của người dùng và tác nhân người dùng trước khi phục vụ từng yêu cầu. Phương pháp dựa trên băm là bảo mật thông qua sự tối tăm, và có thể bị lừa; hơn nữa, người dùng truy cập internet từ phía sau một nhóm proxy hoặc sử dụng TOR có thể bị hệ thống của bạn khởi động mỗi khi một proxy hoặc nút thoát khác (có địa chỉ IP khác) chuyển tiếp yêu cầu.

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