RBAC模型的核心是在用戶和權限之間引入了角色的概念。取消了用戶和權限的直接關聯,改為通過用戶關聯角色、角色關聯權限的方法來間接地賦予用戶權限(如下圖),從而達到用戶和權限解耦的目的。
將用戶直接綁定到權限上去,如下圖:
壹個用戶只充當壹種角色,壹種角色可以有多個用戶擔當。
壹個用戶可同時充當好幾種角色,壹種角色可以有多個用戶擔當。
如上圖:對於左邊的用戶-角色對應,每個人只能同時擁有壹種角色,但是同壹個角色裏邊,可能會含有多個用戶(如:李四和王麻子都是業務員);而右邊的用戶-角色對應,是在左邊的基礎上,增加了壹個用戶可擁有多種角色的情況(如:小馬哥既是經理,也要負責財務的工作)。
壹般公司的業務管理系統,都有數據私密性的要求:哪些人可以看到哪些數據,哪些人不可以看到哪些數據。這個時候,我們就需要把這些東西也考慮到妳的權限體系內了。
假設上圖是壹家公司業務部門的組織架構圖,公司要求妳基於這個組織架構設計壹個業務管理系統,並要求系統需要滿足不同用戶的數據私密性,比如:“張三”登錄時,只能看到“張三”負責的數據;“張三”的領導登錄時,能看到“團隊A”的所有業務員負責的數據,但看不到其他團隊業務員負責的數據等等。
在這種情況下,上壹種權限體系就不適用了,但我們可以對其進行壹些小改造後,即可達到數據管控的目的,如下圖:
在“用戶-角色-權限”的基礎上,我們增加了用戶與組織的關聯關系,組織決定了用戶的數據可視權限。但要想真正達到這個效果,我們還需要做2件事:
1、組織層級劃分。如下圖,我們需要對組織進行梳理,並劃分層級。
2、數據可視權限規則制定。比如:上級組織職能看到下級組織員工負責的數據,而不能看到其他平級組織及其下級組織的員工數據等。
通過以上兩點,系統就可以在用戶登錄時,自動判斷要給用戶展示哪些數據了!
第三種權限體系又是在第二種權限體系上進行優化的,增加了用戶與崗位的關聯關系,示意圖如下:
增加崗位有以下幾點好處:
1、識別用戶的主要身份。壹個人可能身兼多職(多個角色),但是他的主要職能是固定的,那怎麽告訴系統用戶的主要職能是什麽呢?答案就是:通過崗位!拿上面的小馬哥舉例:小馬哥雖然身兼經理和財務兩種身份,但他的本職工作是“經理”,因此,他的系統崗位應該“經理”。當他登錄時,系統會識別他的身份為“經理”,只不過這個“經理”剛好兼具了其他崗位的職能而已;
2、通過“組織-崗位”關聯,快速甄別用戶崗位。公司在不斷地發展的過程中,系統的用戶角色也會不斷增加,當角色達到壹定數量以後,管理員每新增壹個用戶都要花相當的時間去尋找角色。引入崗位後,可將組織和崗位、崗位和角色提前進行關聯,配置賬號時,管理員只要選定組織,系統就給出與該組織關聯的崗位,而這些崗位,又是提前關聯好角色的,選擇起來,既方便又高效!
阿裏雲折扣快速入口