一、B端后臺(tái)權(quán)限的必要性和重要性。
權(quán)限控制是管理后臺(tái)的重要功能,可以有效的提高系統(tǒng)的安全性,減少誤操作、數(shù)據(jù)泄漏等風(fēng)險(xiǎn)的發(fā)生。
由于太過(guò)基礎(chǔ),很多人對(duì)于權(quán)限設(shè)置的認(rèn)識(shí)很多是浮于表面或直接拿來(lái)主義直接照搬。權(quán)限結(jié)構(gòu)設(shè)置好壞,直接影響企業(yè)生產(chǎn)、經(jīng)營(yíng)的效率,可以說(shuō),權(quán)限的設(shè)置企業(yè)來(lái)說(shuō)至關(guān)重要。
二、ACL(Access control list), 權(quán)限訪問(wèn)列表
ACL權(quán)限控制模式是一種通過(guò)賬號(hào)直接控制權(quán)限的訪問(wèn)模式,這種模式可以抽象下圖。
這種模式很好理解,新建用戶時(shí)直接賦予用戶相應(yīng)的權(quán)限,。
優(yōu)點(diǎn):
這種模式的優(yōu)點(diǎn)在于其設(shè)置的靈活性,可為不同的用戶賦予不同的權(quán)限。
企業(yè)中不同的崗位有不同職責(zé),每個(gè)崗位或職級(jí)的工作內(nèi)容有所不同,對(duì)應(yīng)到權(quán)限系統(tǒng)就是分別對(duì)應(yīng)不同的功能權(quán)限與數(shù)據(jù)權(quán)限。
適合人數(shù)少且系統(tǒng)權(quán)限較少的企業(yè),設(shè)置靈活且高效。
缺點(diǎn):
這種模式的缺點(diǎn)顯而易見(jiàn),不太適用中大型企業(yè),易用性和擴(kuò)展性較差。
中大型企業(yè)中由于人數(shù)較多,職責(zé)劃分較為明確:產(chǎn)品、研發(fā)、技術(shù)、銷售、財(cái)務(wù)...等崗位,各崗位的職責(zé)相對(duì)明確,采用此種模式設(shè)置權(quán)限或當(dāng)人員發(fā)生崗位或職級(jí)變動(dòng)去編輯權(quán)限時(shí),需要針對(duì)用戶一個(gè)個(gè)去設(shè)置權(quán)限,效率極低且不具備擴(kuò)展性。
三、RBAC(Role-Based Access Control),基于角色的訪問(wèn)控制
RBAC模式是現(xiàn)在企業(yè)中應(yīng)用最為廣泛的權(quán)限控制模式。
說(shuō)RBAC模式前,先說(shuō)幾個(gè)非常重要的概念:
1、用戶(賬號(hào));2、角色、3、崗位;4、職級(jí)。
1、用戶:系統(tǒng)中的用戶對(duì)應(yīng)著企業(yè)中一個(gè)個(gè)真實(shí)的用戶,每個(gè)用戶可擁有1個(gè)或多個(gè)賬號(hào)。
2、角色:提起角色的概念,一般人很容易與崗位進(jìn)行關(guān)聯(lián),角色與崗位關(guān)聯(lián)也是可以的,但是當(dāng)企業(yè)中同一個(gè)崗位有不同的職級(jí)時(shí),角色與崗位關(guān)聯(lián)在控制權(quán)限中無(wú)法精準(zhǔn)控制。
在企業(yè)中,對(duì)于「銷售」這個(gè)崗位,可能會(huì)細(xì)分為:「銷售專員」、「銷售經(jīng)理」等不同的職級(jí),「銷售專員」、「銷售經(jīng)理」在實(shí)際的工作中的權(quán)限會(huì)有不同,在角色中「銷售專員」、「銷售經(jīng)理」也不能等同于一個(gè)角色。
所以說(shuō),角色具體與崗位關(guān)聯(lián)還是與崗位中的具體職級(jí)關(guān)聯(lián),主要取決于現(xiàn)實(shí)企業(yè)中具體場(chǎng)景。
3、崗位與職級(jí)。同一個(gè)崗位可能有不同的職級(jí)或者職稱。
常見(jiàn)的RBAC模式:
常見(jiàn)的RBAC模式是先創(chuàng)建一個(gè)「角色」,角色中會(huì)定義相應(yīng)的權(quán)限,然后在新建「用戶」,選擇用戶所屬的權(quán)限。
RBAC模式的權(quán)限一般會(huì)有3種:
1、數(shù)據(jù)權(quán)限
數(shù)據(jù)權(quán)限主要跟組織架構(gòu)相關(guān)。比如同是銷售部門(mén)的員工小A和小B,小A只能看自己維護(hù)的客戶信息和交易信息,小B只能看自己維護(hù)的客戶信息和交易信息,數(shù)據(jù)互不關(guān)聯(lián);員工小A和小B的領(lǐng)導(dǎo)小C,可查看小A、小B和自己部門(mén)手下員工的全部客戶信息和交易信息。
一般有2種方式解決數(shù)據(jù)權(quán)限問(wèn)題:
(1)通過(guò)菜單權(quán)限去控制可查看數(shù)據(jù)范圍。
這種很好理解,就是將特殊的數(shù)據(jù)入口做成功能,賦予用戶相關(guān)的功能權(quán)限后才能才看數(shù)據(jù)。
(2)通過(guò)企業(yè)組織的層級(jí)關(guān)系去限制數(shù)據(jù)權(quán)限。
這是根據(jù)企業(yè)的組織架構(gòu),根據(jù)職員的職位高低來(lái)控制數(shù)據(jù)的訪問(wèn)權(quán)限。所以它通常的解決方案是和組織架構(gòu)相關(guān)聯(lián)的,具體邏輯如下:
(1)在給職員分配賬號(hào)的時(shí)候,設(shè)置好對(duì)應(yīng)的部門(mén)和職位
(2)當(dāng)用戶獲取數(shù)據(jù)時(shí),根據(jù)自己當(dāng)前的部門(mén)和職位,獲取到所有下屬的職員信息
(3)將屬于這些下屬職員的所有客戶信息顯示出來(lái),這個(gè)數(shù)據(jù)控制就完成了。
2、功能權(quán)限
功能權(quán)限主要是指不同的崗位工作職責(zé)不同,映射到系統(tǒng)中就是相關(guān)的功能權(quán)限不同。
3、特殊權(quán)限
在門(mén)店業(yè)務(wù)系統(tǒng)中,在收銀時(shí),針對(duì)同一個(gè)職級(jí)的不同員工,需要進(jìn)行支付方式的限制。就需要在用戶中進(jìn)行特殊業(yè)務(wù)場(chǎng)景權(quán)限的設(shè)置。
優(yōu)點(diǎn)
1、對(duì)比ACL模式,RBAC模式更貼合多數(shù)企業(yè)的適用場(chǎng)景。
2、具有很強(qiáng)的可擴(kuò)展性。隨著企業(yè)業(yè)務(wù)的發(fā)展,針對(duì)特殊的權(quán)限設(shè)置更具擴(kuò)展性。
3、設(shè)置權(quán)限效率較高。當(dāng)人員崗位或者職級(jí)調(diào)動(dòng)后,直接修改該用戶的角色即可。
在RBAC模式中,用戶與角色的關(guān)系是多對(duì)多的關(guān)系。
實(shí)際企業(yè)內(nèi)部關(guān)系中,一個(gè)用戶可能會(huì)有多個(gè)角色。
比如:集團(tuán)下屬的上海銷售負(fù)責(zé)人,可能負(fù)責(zé)江蘇或者浙江的銷售市場(chǎng),設(shè)置權(quán)限時(shí),單個(gè)用戶賦予多個(gè)角色即可實(shí)現(xiàn),這時(shí)候該用戶所擁有的權(quán)限則是所有角色權(quán)限的并集。(針對(duì)用戶賦予「針對(duì)業(yè)務(wù)的特殊權(quán)限」,也能達(dá)到針對(duì)一個(gè)用戶賦予多個(gè)角色進(jìn)行權(quán)限管理的目的,具體采用哪種方式,需要根據(jù)具體的業(yè)務(wù)進(jìn)行衡量采用。)
此外,RBAC還有幾個(gè)擴(kuò)展模型:
第一種:在角色上加入了上下級(jí)關(guān)系,上級(jí)可以繼承下級(jí)的權(quán)限。
這種在適合大多數(shù)企業(yè)的數(shù)據(jù)權(quán)限。上級(jí)默認(rèn)可查看下級(jí)的數(shù)據(jù)權(quán)限。
第二種:在角色之間加入了多個(gè)約束關(guān)系,如角色互斥。
針對(duì)一個(gè)用戶賦予多個(gè)角色后,角色直接的只能可能是沖突的,尤其是有審核的場(chǎng)景。如:采購(gòu)專員發(fā)起采購(gòu)申請(qǐng)后,一般需要采購(gòu)經(jīng)理審核后進(jìn)行采購(gòu)。這時(shí)候如果將采購(gòu)專員和采購(gòu)經(jīng)理角色賦予同一個(gè)用戶,也就失去了審核的意義,這時(shí)候設(shè)置多個(gè)角色時(shí)需要進(jìn)行必要的提示。
以上就是常見(jiàn)的權(quán)限設(shè)置及優(yōu)缺點(diǎn),RBAC模式在實(shí)際場(chǎng)景中因?yàn)闃O具擴(kuò)展性、設(shè)置高效應(yīng)用廣泛,RBAC模式在設(shè)置權(quán)限中,有很多種通用的方法需要結(jié)合企業(yè)組織架構(gòu)和實(shí)際業(yè)務(wù)場(chǎng)景靈活采用。