最近學習laravel,對laravel自備的授權系統比較困惑,想問一下。
知識概覽:
存取控制的模型:
主要的存取控制類型有3種模型:自主存取控制(DAC)、強制存取控制(MAC)和基於角色存取控制(RBAC)。1、自主访问控制 自主访问控制(Discretionary Access
Control,DAC)是一種存取控制服務,透過執行基於系統實體身分及其到系統資源的存取授權。包括在文件,資料夾和共享資源中設置許可。使用者有權對自身所建立的文件、資料表等存取對象進行訪問,並可將其存取權授予其他使用者或收回其存取權限。允許存取物件的屬主制定針對該物件存取的控制策略,通常,可透過存取控制清單來限定針對客體可執行的操作。
2、强制访问控制
強制存取控制(MAC)是系統強制主體服從存取控制策略。是由系統對使用者所建立的對象,依照規定的規則控制使用者權限及操作對象的存取。主要特徵是對所有主體及其所控制的進程、文件、區段、設備等客體實施強制存取控制。
3、基於角色的存取控制
角色(Role)是一定數量的權限的集合。指完成一項任務必須存取的資源及對應操作權限的集合。角色作為一個使用者與權限的代理層,表示為權限和使用者的關係,所有的授權應該給予角色而不是直接給使用者或使用者群組。 RBAC後來還變成了,RBAC0,RBAC1,RBAC2等。
4、基于属性的访问控制ABAC
5、基於策略的存取控制PBAC等
問題:
1.社群類網站如人人、知乎、twitter等的授權系統更偏向使用哪一種 授權模型?
2.電商類如天貓、蘑菇街等等的授權系統比較偏向使用哪一種 授權模型?
3.大部分框架自帶了Authorization授權系統(多基於ACL技術的授權系統),但大多不是RBAC模型的系統。如果我直接使用框架自帶的授權系統如Laravel5.1.11裡面的(Gate/Policy等等-基於acl的授權系統),著手做社交類和電商類應用,我該解決哪些問題呢?
4.使用3.裡面提到的"....自帶的授權系統", 如何解決網站的後台管理的授權部分的設計問題? 大部分應用,大致分為 frontend(用戶,公開介面)和 backend(admin管理)和 superadmin(root站點,超級管理員)這幾個不同的角色的權限問題呢?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...