使用者許可權體系,在大多數的應用系統中都是需要的。而使用者許可權體系在不同的應用場景,其適應要求也都有不同。因此,要做乙個普適性較好的許可權管理系統是非常困難的。為此,本文提出一種新的許可權管理及分配模型,即兼顧通用性,又兼顧應用的個性化。
1.基本概念的抽象
在許可權框架中,有使用者、角色、組織機構、部門、崗位、選單、操作、功能等等,甚至組織機構還要分成幾個維護,有行政維護、賬務維度等等,把這麼複雜的模型在乙個系統中都實現,會
有以下幾種情況出現:
a.這個太好了,正是我要的(命中概率約為0)
b.功能還不錯,有些設計超出了我的應用範圍,但是我有些功能用不上(概率10%)
c.功能都是我要的,有些設計不足,需要進行一些擴充套件(概率10%)
d.功能有一部分不是我要的,有一部分不滿足我要的功能(概率80%)
這也是目前我們的應用現狀。
仔細分析上面的一些概念,有且不僅限於上面列出的內容,通過分類,可以劃分為兩個群體,許可權主體和許可權客體。
所謂許可權主體,就是可以擁有許可權的概念,如:使用者、角色、崗位、部門、機構等;所為許可權客體,就是可以被用來進行許可權控制的概念,如:選單、功能、操作等。
通過抽象許可權主體和許可權客體,就可以把複雜的許可權模型簡化成許可權主體與許可權客體之間的關係。管你有多少種許可權主體,不管你有多少許可權客體,都在我的圈圈裡面,這樣適應性自然不是一般的好。
2.許可權檢查的抽象
實際應用當中,許可權檢查的方式,也是有許多種情況的,比如:
允許方式 :凡是允許的就可以執行,否則就不可以執行
禁止方式:凡是禁止的就不可以執行,否則就可以執行
允許優先方式:可以有禁止有允許,但是只要有允許就可以被執行
禁止優先方式:可以有禁止有允許,但是只要有禁止就不可以被執行
許可權主體可繼承方式,就是說許可權主體被授權表示其下級的內容可以被授權
許可權客體可繼承方式,就是說許可權客體被授權的內容,代表其下級也被授權
當然,還可以有n種方式,這個熟悉設計模式的同仁一眼就可以看出,這正好可以利用行為模式進行解決。
當專案中的技術經理選擇哪種授權模式的時候,只要配置或實現相應的策略即可。
如此,就可以把許可權框架中最複雜的兩個部分分離抽象出來,你想要什麼樣的許可權模型,需要什麼樣的授權策略,都可以充分適應。
一種基於主客體模型的許可權管理框架
使用者許可權體系,在大多數的應用系統中都是需要的。而使用者許可權體系在不同的應用場景,其適應要求也都有不同。因此,要做乙個普適性較好的許可權管理系統是非常困難的。為此,本文提出一種新的許可權管理及分配模型,即兼顧通用性,又兼顧應用的個性化。1.基本概念的抽象 在許可權框架中,有使用者 角色 組織機構...
RBAC基於角色的許可權管理模型
a.安全性 防止誤操作,防止資料洩露,保證資訊的安全。b.資料隔離 保持不同的角色具有不同的許可權,只能看到自己許可權範圍內的資料 a.傳統的許可權管理 隨著使用者數量的增大和使用者許可權區別的增大,傳統的許可權管理需要針對每個使用者依次管理,成本較高。b.rbac role based acces...
RBAC基於角色的訪問控制模型(許可權管理)
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...