1. 程式人生 > >訪問控制模型ACL和RBAC

訪問控制模型ACL和RBAC

1.ACL


  ACL是最早也是最基本的一種訪問控制機制,它的原理非常簡單:每一項資源,都配有一個列表,這個列表記錄的就是哪些使用者可以對這項資源執行CRUD中的那些操作。當系統試圖訪問這項資源時,會首先檢查這個列表中是否有關於當前使用者的訪問許可權,從而確定當前使用者可否執行相應的操作。總得來說,ACL是一種面向資源的訪問控制模型,它的機制是圍繞“資源”展開的。

  The relative simplicity of ACLs means they do not need much underlying technological infrastructure to work.由於ACL的簡單性,使得它幾乎不需要任何基礎設施就可以完成訪問控制。但同時它的缺點也是很明顯的,由於需要維護大量的訪問許可權列表,ACL在效能上有明顯的缺陷。另外,對於擁有大量使用者與眾多資源的應用,管理訪問控制列表本身就變成非常繁重的工作。


2.基於角色的訪問控制RBAC


  RBAC是把使用者按角色進行歸類,通過使用者的角色來確定使用者能否針對某項資源進行某項操作。RBAC相對於ACL最大的優勢就是它簡化了使用者與許可權的管理,通過對使用者進行分類,使得角色與許可權關聯起來,而使用者與許可權變成了間接關聯。RBAC模型使得訪問控制,特別是對使用者的授權管理變得非常簡單和易於維護,因此有廣泛的應用。但是它也有自身的缺點,那就是由於許可權是以角色為載體分配的,如果某一角色下的個別使用者需要進行特別的許可權定製,如同加入一些其他角色的小部分許可權或去除當前角色的一些許可權時,RBAC就無能為力了,因為RBAC對許可權的分配是角色為單位的。

  除兩上述兩種主要的模型之外,還有包括:基於屬性的訪問控制ABAC和基於策略的訪問控制PBAC等等,因為應用不是很廣泛,就不做介紹了。