2010-03-13 33 views
8

Tôi đã tự hỏi làm thế nào những người khác đã triển khai kịch bản này. Tôi có một ứng dụng đường ray nội bộ (quản lý hàng tồn kho, in nhãn, vận chuyển, vv). Tôi đang viết lại bảo mật trên hệ thống, gây ra cách cũ để cồng kềnh để duy trì (người dùng bảng, mật khẩu, vai trò) - Tôi đã sử dụng restful_authentication và vai trò. Nó được thực hiện khoảng 3 năm trước. Tôi đã triển khai AuthLogic với ruby-ldap-net để xác thực người dùng (thực sự điều đó thật đáng ngạc nhiên, so với cách tôi gặp khó khăn với các khung/ngôn ngữ khác trước đây). Bước tiếp theo là vai trò. Tôi đã có các nhóm được định nghĩa trong Active Directory - vì vậy tôi không muốn chạy một hệ thống vai trò riêng biệt trong ứng dụng đường ray của mình, tôi chỉ muốn sử dụng lại các nhóm Active Directory - vì phần đó của hệ thống đã được duy trì cho các mục đích khác , sao lưu, truy cập máy tính, vv)Ví dụ sử dụng nhóm Active Directory/LDAP cho quyền vai trò trong Rails App

Vì vậy, tôi đã tự hỏi liệu người khác có trải nghiệm thực hiện quyền/vai trò trong ứng dụng đường ray dựa trên các nhóm trong Active Directory hoặc LDAP hay không. Ngoài ra các yêu cầu vai trò là khá phức tạp.

Dưới đây là một ví dụ:

Ví dụ tôi có những người dùng thuộc nhóm giám sát viên trong AD và hàng tồn kho nợ, vì vậy tôi là người sử dụng để có thể chạy "tiên tiến" nhiệm vụ trong invetory - điều chỉnh qty, chạy báo cáo, tuy nhiên "người giám sát" khác từ những người khởi hành khác, không thể làm điều này, cũng Quản lý hàng đầu - sẽ có thể sử dụng những báo cáo đó (bất kể thời tiết thuộc về invetory hay không), nhưng không phải Quản lý, trừ khi họ nằm trong nhóm kiểm kê. Quản trị viên của hệ thống (Quản trị viên miền) nên có quyền truy cập không giới hạn vào hệ thống, ngoại trừ HR & Phần tài chính trừ khi chúng ở chế độ nhân sự (như bạn không muốn tất cả quản trị viên hệ thống (trừ một người được ủy quyền) xem thông tin cá nhân của người khác nhân viên).

Tôi đã xem acl9, cancan, aegis. Tôi đã tự hỏi nếu có bất kỳ lợi thế/khuyết điểm để sử dụng một so với khác cho việc sử dụng đặc biệt của truy cập hệ thống dựa trên AD. Đề xuất các hệ thống khác nếu bạn có trải nghiệm tốt.

Cảm ơn bạn !!!

Trả lời

6

ActiveLDAP (Documentation, Github) có một số tính năng bạn đang tìm kiếm, cụ thể là:

  • Bạn có thể ánh xạ đối tượng LDAP (trường hợp Object Class) với các đối tượng trong một ứng dụng Rails. API không phản chiếu chính xác ActiveRecord, nhưng nó khá dễ hiểu và dễ hiểu. Rõ ràng là không thể tham gia, vv trên LDAP và Cơ sở dữ liệu quan hệ, nhưng bạn có thể viết một số mã thông minh nhẹ để làm cho dữ liệu tổng hợp dễ dàng truy cập từ đối tượng ActiveLDAP hoặc đối tượng ActiveRecord.
  • ActiveLDAP cũng cung cấp các phương pháp để ghi vào LDAP, cho phép bạn quản lý người dùng và vai trò của mình trong LDAP từ đường ray, loại bỏ yêu cầu quản lý bảng người dùng trong cơ sở dữ liệu, tuy nhiên, bảng cơ sở dữ liệu người dùng có thể vẫn cần thiết để lưu trữ ứng dụng dữ liệu cụ thể về người dùng.
  • Ngoài ra, bạn có thể tích hợp AuthLogic với ActiveLDAP. Dưới đây là một nỗ lực tôi đã tìm thấy điều đó: LDAP Pass-through Authentication with Authlogic and ActiveLdap
  • Sau đó, bạn có thể sử dụng Ủy quyền khai báo (Pundit) để xử lý vai trò và ủy quyền của mình.
+0

Patrick, cảm ơn bạn đã trả lời, nhưng hãy để tôi làm rõ những gì tôi đang tìm kiếm. Như tôi đã đề cập, tôi đã có phần xác thực - đã làm việc với authlogic và ruby-ldap-net.Đó là phần ủy quyền mà tôi quan tâm, tôi đã sử dụng một loạt các đá quý như acl9 và ủy quyền khai báo, tôi chỉ muốn xem liệu có ai đã làm bất cứ điều gì như thế không - ánh xạ các nhóm AD/LDAP tới Vai trò bằng cách sử dụng bất kỳ gem ủy quyền nào vấn đề họ gặp phải. – konung

+0

Nick, những gì tôi nhận được với phản hồi của tôi là ActiveLDAP sẽ cho phép bạn ánh xạ vai trò và người dùng từ LDAP đến các đối tượng trong Ruby và bạn có thể sử dụng Tuyên bố ủy quyền để xử lý phần ủy quyền thực tế của ứng dụng dựa trên vai trò mỗi người dùng. Nếu không biết cấu trúc của cá thể LDAP của bạn hoặc các chi tiết cụ thể của lược đồ ủy quyền của bạn, rất khó để đi vào chi tiết hơn về kiến ​​trúc. –

+0

Liên kết đầu tiên cho tài liệu bị hỏng, điều này có vẻ là mặc dù, http://activeldap.github.io/ –

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