2008-09-22 47 views

Trả lời

11

Brandon Savage đã trình bày về gói PHP "ApplicationACL" có thể hoặc không thể thực hiện truy cập dựa trên vai trò. PHPGACL cũng có thể hoạt động, nhưng tôi không thể nói chắc chắn với bạn. Tuy nhiên, những gì tôi có thể nói với bạn là thành phần Zend_ACL của khung công tác Zend sẽ thực hiện các thiết lập dựa trên vai trò (tuy nhiên bạn sẽ phải phân lớp để kiểm tra nhiều vai trò cùng một lúc). Tuy nhiên, bạn có thể làm như vậy. Cấp cho nỗi đau này là bạn sẽ phải rút Zend_ACL, tôi không tin rằng nó có bất kỳ phụ thuộc bên ngoài, từ tải về nguyên khối (hoặc thanh toán SVN).

Điều tốt đẹp về Zend_ACL là mặc dù không thể lưu trữ của nó. Bạn có thể xây dựng lại nó mỗi lần hoặc nó được thiết kế để được serialized (tôi sử dụng một sự kết hợp của cả hai, serialize cho bộ nhớ cache và xây dựng lại từ DB).

+1

Robert: Câu trả lời này quá cũ nên tốt nhất là không nên làm theo lời khuyên của nó ngay cả khi các liên kết vẫn hoạt động – dcousineau

1

Phpgacl http://phpgacl.sourceforge.net/ là một generic khuôn khổ acl dựa kiểm soát truy cập

trong khi tôi không biết về bất kỳ thực hiện cụ thể CI, tôi biết rằng bạn chỉ cần tập tin lớp học chính để làm cho công việc Phpgacl. Vì vậy, tôi tin rằng việc tích hợp với CI sẽ không có vấn đề gì. (Tôi đã làm việc với CI)

0

Tìm hiểu về Khaos ACL là thư viện CI ... Tôi cũng đang kiểm tra phpgacl và cách sử dụng nó cho CI ... Chưa kiểm tra Zend ACL. Nhưng có lẽ nó có thể được "chuyển" sang CI

29

Có lẽ tôi hiểu nhầm câu hỏi, nhưng không phải là toàn bộ điểm Kiểm soát truy cập dựa trên vai trò (RBAC) đến tránh Danh sách điều khiển truy cập (ACL)?

RBAC khác với danh sách kiểm soát truy cập (ACL) (...) ở chỗ nó gán quyền cho các hoạt động cụ thể với ý nghĩa trong tổ chức, chứ không phải là đối tượng dữ liệu ở mức độ thấp. Ví dụ, một danh sách điều khiển truy cập có thể được sử dụng để cấp hoặc từ chối quyền ghi vào một tệp hệ thống cụ thể, nhưng nó sẽ không nói theo những cách mà tệp có thể được thay đổi. Trong một hệ thống dựa trên RBAC, một hoạt động có thể là tạo một giao dịch 'tài khoản tín dụng' trong một đơn đăng ký tài chính (...). Việc gán quyền thực hiện một thao tác cụ thể là có ý nghĩa, bởi vì các phép toán được tạo ra tốt và có ý nghĩa trong ứng dụng. (Trích: Wikipedia)

Tôi không biết các chi tiết cụ thể về Zend_Acl hoặc việc triển khai khác được đề cập, nhưng nếu họ đang ACL dựa trên, tôi sẽ không khuyên bạn nên sử dụng chúng cho phép dựa trên vai trò.

+0

jframework rbac? – AbiusX

+0

Tôi cũng có cùng ý kiến ​​cho rằng câu trả lời sai được chấp nhận cho câu hỏi này .. ACL và RBAC khác nhiều và giải pháp ACL được chấp nhận cho câu hỏi trên RBAC .. –

+0

Hình thức: "Tôi không khuyến khích sử dụng chúng cho vai trò xác thực. " kiểm soát truy cập! = xác thực Và có, quan trọng hơn là ACL! = RBAC^_^ –

0

Dùng thử plugin DX_Auth cho CodeIgniter. Tôi đang làm việc trên một tương tự (thay vì, superset) của các chức năng mà DX_Auth có. Tập hợp các addon CI của tôi bao gồm hiển thị các menu (có thể được điều khiển thông qua CSS), bộ kiểm soát truy cập dựa trên vai trò trước khi bộ điều khiển được gọi và các tính năng khác. Tôi hy vọng sẽ sớm xuất bản. Sẽ cung cấp URL dự án khi tôi làm như vậy

0

RBAC! = ACL - Roland có câu trả lời đúng cho câu hỏi này. BTW tất nhiên nó là một phần thiết yếu của một khuôn khổ để thực hiện bất kỳ loại hệ thống cho phép - ít nhất không có điểm trong việc sử dụng một khuôn khổ, nếu nó không cung cấp cho bạn một hệ thống RBAC được soạn thảo tốt - nó có thể tốt hơn sử dụng một hệ thống mẫu đơn giản với bất kỳ lớp ORM nào sau đó.

Đó là một mô hình phổ biến trong thế giới php, các khuôn khổ như Ruby hoặc Django được "nhân bản" chỉ như một tập con của những khung hiện đại này cung cấp - như một hội chứng điển hình không thấy tích hợp ACL hoặc RBAC tốt những khuôn khổ này - về cơ bản là một trò đùa. Hiện tại chỉ có Khung công tác PHP Yii đi kèm với triển khai RBAC phong nha.

0

http://www.jframework.info (deadlink)

jFramework có một tiêu chuẩn NIST cấp 2 RBAC với những cải tiến được cho là nhanh nhất hiện nay (bao gồm các tiêu chuẩn) nó có thể hoạt động trên một tập tin cơ sở dữ liệu SQLite đơn và được kiểm tra kỹ lưỡng, hoạt động như một chiếc găng tay.

Có sự phụ thuộc vào jFramework DBAL nhưng bạn có thể thay thế đơn giản truy vấn SQL DBAL trong mã bằng DBAL mong muốn của bạn và tất nhiên bạn có thể sử dụng jFramework theo cách SOP.

2

Tôi đã tạo một dự án mã nguồn mở được gọi là PHP-Bouncer mà bạn có thể quan tâm. Nó vẫn còn khá trẻ, nhưng hoạt động tốt và dễ cấu hình. Tôi đã kết thúc việc phát triển nó bởi vì không có giải pháp hiện tại nào đáp ứng được nhu cầu của tôi. Tôi hi vọng cái này giúp được!

+0

bạn cần những gì mà dự án của bạn đáp ứng ? Nếu không, đây chỉ là một quảng cáo. – ftrotter

+2

Vì OP đã yêu cầu một "mã nguồn mở, dựa trên PHP, dựa trên vai trò hệ thống kiểm soát truy cập", và PHP-Bouncer là một mã nguồn mở, dựa trên PHP, dựa trên vai trò hệ thống kiểm soát truy cập, tôi đã tìm ra nó sẽ khá phù hợp. –

+0

Liên kết đã chết ... – Code4R7

-1

Thư viện xác thực bằng ion sử dụng người dùng và nhóm - https://github.com/benedmunds/CodeIgniter-Ion-Auth nhưng không có hệ thống RBAC hoạt động để sử dụng và quản lý. Nhưng bạn có thể làm trắng chức năng của bạn.

0

tôi biết con đường mòn là lạnh, nhưng một dự án mới đã xuất hiện bất ngờ:

PHP-RBAC là một PHP Hierarchical NIST Level 2 Vai trò Chuẩn Dựa Access Control và khá chín chắn. Nó cũng là một dự án OWASP.

Tôi hy vọng bạn thưởng thức nó tại http://phprbac.net

+0

Bạn đã đăng chính xác câu trả lời trong các câu hỏi khác .. Bạn có phải là nhà phát triển không? – Luciano

+0

Tôi là một trong những nhà phát triển. – AbiusX

1

Dưới đây là hai thư viện RBAC cho PHP tôi thấy:

Tôi thực sự sử dụng đầu tiên trong PolyAuth : https://github.com/Polycademy/PolyAuth/

Đó là thư viện auth đầy đủ tính năng bao gồm RBAC cấp 1 NIST. Và có, RBAC không giống như một ACL. Tôi sử dụng Codeigniter là tốt, tất cả các bạn phải làm là sử dụng trình điều khiển PDO và vượt qua trong id kết nối. Xem hướng dẫn này để biết cách thực hiện: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

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