離開實驗室出差到公司做專案期間,除了做報表的相關開發,另一塊就是做整個系統的許可權管理。也就是要給每個登入的使用者授予一定的操作許可權和訪問資源的許可權。在查詢了資料後,最後決定採用基於角色的訪問許可權。
基於角色的訪問控制(role-based access control)作為傳統訪問控制(自主訪問,強制訪問)的有前景的代替受到廣泛的關注。在rbac中,許可權與角色相關聯,使用者通過成為適當角色的成員而得到這些角色的許可權。這就極大地簡化了許可權的管理。在乙個組織中,角色是為了完成各種工作而創造,使用者則依據它的責任和資格來被指派相應的角色,使用者可以很容易地從乙個角色被指派到另乙個角色。角色可依新的需求和系統的合併而賦予新的許可權,而許可權也可根據需要而從某角色中**。角色與角色的關係可以建立起來以囊括更廣泛的客觀情況。一句話總結:該模型的核心就是把許可權的使用者,許可權針對的物件和許可權的內容分離開來。這樣使得許可權管理非常靈活和自由。這樣就構成了「使用者-角色-許可權」的授權模型。
在這種模型下,使用者與角色之間,角色與許可權之間一般是多對多的關係,基本如下:
在專案執行期間,注意的點主要是乙個使用者可以擁有多個角色,角色可以擁有多個許可權。區分哪些模組對應哪些部門,每個頁面的元素id的訪問控制。在角色方面,主要分為員工,經理,部長,副總。還有一些特定的角色,譬如專案管理員,採購管理員之類的,這些主要還是公司那邊的要求。在與客戶商量之後,鑑於模組與部門的關係非常緊密,所以採用的方案主要如下:
使用者的許可權主要通過查詢其對應的角色列表,把許可權加權就等於該使用者的許可權。角色根據等級的不同,賦予特定的許可權。使用者訪問資源的許可權主要通過部門來控制,部門與模組一一對應,使用者根據不同的部門進去系統的時候呈現出不同的頁面元素。而角色的許可權主要是針對模組中的一些功能進行控制,譬如該模組的增刪改查等基本功能。使用者的許可權主要如下所示:
其中通過部門來控制資源的訪問,譬如進入頁面需要顯示不同的元素,訪問不同的頁面等,而通過角色來控制功能的訪問,譬如頁面中的增刪改查是否可以使用。而整個許可權管理的資料表之間的關係主要如下(在此不給出具體的資料**式,僅以資料表名作為標識):
另外針對特定的角色,我們也可以賦予一些特殊的許可權,然後讓使用者與該角色關聯即可。利用rbac模型,把原本複雜的許可權關係一下子弄得清晰起來,雖然要多建幾個關係表,但是管理起來的邏輯更加合理,資料表的冗餘也減少了。而且根據各自系統的特性,可以進一步利用這種思想把訪問許可權和功能許可權分開,使得許可權的管理更加靈活。不過這樣的設計還是有許多問題,在接下來的時間慢慢完善,在此記錄一下,再接再厲。
RBAC許可權管理
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC許可權管理
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC許可權管理
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...