Tôi quan tâm đến việc thực hiện kiểm soát truy cập nâng cao để người dùng truy cập tài nguyên trong hệ thống phần mềm. Tôi làm việc trong lĩnh vực chăm sóc sức khỏe và một đứa trẻ trẻ tuổi thường xuyên đánh giá thấp sự phức tạp của role-based access control in healthcare. Nhưng câu hỏi này nên áp dụng cho bất kỳ ai có yêu cầu ACL phức tạp.Thư viện kiểm soát truy cập nâng cao
Trong một thời gian khá, php gacl đã là thư viện của tôi cho mục đích xử lý các vấn đề kiểm soát ACL rất phức tạp bên trong hệ thống CNTT của Y tế. Nhưng bây giờ tôi đang làm việc nhiều hơn với javascript nói chung và nút cụ thể. Tôi đã tìm kiếm npm cho các thư viện để thực hiện kiểm soát truy cập theo cách có thể khái quát.
Tôi muốn được hỗ trợ xác định hành động thay vì chỉ đơn thuần là người dùng và tài nguyên (3 tầng thay vì 2) và tôi muốn có nhóm người dùng, hành động và tài nguyên và bằng hàm ý tôi muốn có kế thừa ACL .
Các ví dụ cổ điển từ the Star Wars themed manual vào thư viện có quy tắc như:
- Tất cả các thành viên của phi hành đoàn đã (lần, cấu hình và sử dụng) truy cập vào các khẩu súng, động cơ, buồng lái và phòng chờ, mong đợi cho chewie.
- Tất cả các droid đều có quyền truy cập và sử dụng buồng lái, nhưng chỉ R2D2 có định cấu hình quyền truy cập vào động cơ.
- Han có tất cả các loại quyền truy cập vào tất cả các loại tài nguyên .
Khái niệm cơ bản ở đây bao gồm khái niệm rằng bạn có thể tạo quy tắc áp dụng cho nhóm người dùng (tức là phi hành đoàn, hành khách hoặc droid) hoặc cá nhân (Han và Chewie). (truy cập, cấu hình, sử dụng) hoặc các nhóm truy cập (maintence access = configure + repair + use) với các tài nguyên khác nhau (động cơ và buồng lái) cũng có thể được nhóm lại, (battle-stations = buồng lái + súng).
Điều này cho phép cấu hình các quy tắc kiểm soát truy cập bất thường phức tạp, với quản lý dựa trên nhóm tương đối đơn giản.
Cho đến bây giờ, tôi đã thấy không có gì giống như thế này bên ngoài php-gacl. Tôi đã xem xét các dự án ACL dựa trên javascript tuyệt vời và tất cả chúng đều quảng cáo sự đơn giản và dễ sử dụng hơn là toàn diện. Điều này cũng đúng với các thư viện php ACL điển hình khác (ví dụ: Zend ACL)
Có ai đó đang làm việc trên một dự án "ACL nâng cao" cho nút không? Có cách nào tốt hơn tôi nên tìm kiếm ở đâu đó không?
php-gacl có ba phần, một là GUI quản trị dựa trên php (được thừa nhận là quá phức tạp) và API cho CRUD trên quy tắc (có thể dễ dàng chuyển đổi sang giao diện REST tôi nghĩ) và một tệp rất nhỏ cung cấp chức năng kiểm tra ACL.
Về mặt kỹ thuật, chỉ loại cuối cùng sẽ cần được chuyển hoàn toàn sang nút để mô hình phần mềm đó hoạt động?
Ở mức độ sâu hơn, tôi muốn hiểu cách tiếp cận nào đã được sử dụng thành công để xử lý vấn đề này. Vấn đề này thường được giải quyết như thế nào? Điểm thưởng cho những người có hiệu quả thảo luận về vấn đề này về nút/javascript và có lẽ ngay cả một phương pháp tiếp cận cơ sở dữ liệu cụ thể (quan hệ vs phi quan hệ). Tôi hiểu rằng có rất nhiều nền tảng lý thuyết để làm điều này đúng/sai (nghĩa là rất nhiều ý kiến về RBAC, so với ACL). Những gì tôi muốn là một cái gì đó về lý thuyết vững chắc, hoặc gần như rắn mà vẫn "chỉ hoạt động" từ một quan điểm thư viện.Tôi tập trung vào Javascript, nhưng nó sẽ là tốt đẹp để hiểu làm thế nào các ngôn ngữ khác được thực tế giải quyết vấn đề này.
đây là chủ đề tắt cho ngăn xếp tràn. –