回顧一下之前權(quán)限模型的總結(jié):
1未状、該IT系統(tǒng)的兩套權(quán)限管理模式:用戶——群組(項(xiàng)目X業(yè)務(wù)角色)——系統(tǒng)角色撩鹿;用戶——(系統(tǒng)角色X數(shù)據(jù)范圍)
2、現(xiàn)有模型問題:IT框架問題:多套業(yè)務(wù)角色模板很雞肋且不可靠;運(yùn)維問題:系統(tǒng)角色混亂不清封字。
3、現(xiàn)有管理問題:從權(quán)限點(diǎn)到用戶,中間經(jīng)歷了權(quán)限點(diǎn)到系統(tǒng)角色(關(guān)聯(lián)1)阔籽,系統(tǒng)角色到群組(關(guān)聯(lián)2)流妻,群組到用戶(關(guān)聯(lián)3)三層關(guān)聯(lián)。關(guān)聯(lián)1由開發(fā)人員完成笆制,關(guān)聯(lián)2由運(yùn)維人員維護(hù)N套模板绅这,關(guān)聯(lián)3由業(yè)務(wù)人員配置使用。層級(jí)復(fù)雜在辆,三方人員各自為政证薇。
4、IT優(yōu)化:統(tǒng)一業(yè)務(wù)角色模板匆篓,項(xiàng)目屬性維度的權(quán)限控制浑度,以數(shù)據(jù)權(quán)限的思路控制;支持一線用戶對(duì)業(yè)務(wù)角色的定制需求鸦概。
接下來箩张,這里給出兩個(gè)不同方向的優(yōu)化高階方案。
方案一
策略方針:
權(quán)限可視化完残、結(jié)構(gòu)化——引入權(quán)限樹和業(yè)務(wù)功能樹伏钠。
權(quán)限樹根據(jù)IT架構(gòu)來自動(dòng)生成,以子產(chǎn)品谨设、數(shù)據(jù)模塊來劃分熟掂;業(yè)務(wù)功能樹依據(jù)系統(tǒng)的頁(yè)面及功能,由運(yùn)維人員手動(dòng)構(gòu)建出一套網(wǎng)站地圖扎拣。權(quán)限點(diǎn)掛載在權(quán)限樹下赴肚,一個(gè)權(quán)限點(diǎn)對(duì)應(yīng)了一個(gè)后臺(tái)接口服務(wù)的管控;系統(tǒng)角色掛載在業(yè)務(wù)功能樹上二蓝,系統(tǒng)角色對(duì)應(yīng)一個(gè)頁(yè)面內(nèi)某獨(dú)立的最小功能操作誉券。即:將之前混亂的權(quán)限點(diǎn)和系統(tǒng)角色以樹形結(jié)構(gòu)重組織。
變動(dòng)方案:
頁(yè)面開發(fā)人員到權(quán)限中心申明接入平臺(tái)系統(tǒng)的權(quán)限點(diǎn):
將完成一個(gè)完整操作/功能所需的所有權(quán)限點(diǎn)包裝為權(quán)限集:權(quán)限點(diǎn)限制接口使用刊愚,如果一個(gè)操作功能需使用多個(gè)帶權(quán)限的接口踊跟,則歸到一個(gè)權(quán)限集中。權(quán)限點(diǎn)的定位為接口的調(diào)用權(quán)限鸥诽;權(quán)限集的定位為某個(gè)最小業(yè)務(wù)功能的使用權(quán)限商玫。
系統(tǒng)管理人員到權(quán)限中心管理標(biāo)準(zhǔn)角色和配置標(biāo)準(zhǔn)角色的權(quán)限:
為了便于權(quán)限管理,將權(quán)限結(jié)構(gòu)化牡借、可視化拳昌。針對(duì)每一個(gè)權(quán)限集,映射到業(yè)務(wù)功能樹上钠龙。通過這棵樹炬藤,將業(yè)務(wù)視圖和IT權(quán)限映射綁定在了一起御铃。
業(yè)務(wù)管理人員到權(quán)限中心設(shè)置用戶標(biāo)準(zhǔn)角色并配置其定制權(quán)限:
有了業(yè)務(wù)功能樹,IT層面的權(quán)限管控就像黑箱對(duì)業(yè)務(wù)人員隱藏了沈矿。業(yè)務(wù)人員對(duì)某個(gè)角色定制權(quán)限上真,直接勾選想要的頁(yè)面及功能的操作權(quán)限,便能自動(dòng)將關(guān)聯(lián)的IT權(quán)限集授予到角色细睡。
代價(jià)和收益:
IT上的變動(dòng)只是對(duì)局部對(duì)象進(jìn)行改造谷羞,將權(quán)限點(diǎn)和權(quán)限集以樹形結(jié)構(gòu)進(jìn)行存儲(chǔ)及展示。并沒有對(duì)模型傷筋動(dòng)骨溜徙,對(duì)歷史數(shù)據(jù)也能做到很好的兼容,遷移適配的過程也是對(duì)混亂數(shù)據(jù)的梳理犀填。
業(yè)務(wù)層面上蠢壹,管理模式并沒有發(fā)生改變,其實(shí)質(zhì)在于:將權(quán)限的業(yè)務(wù)屬性通過樹狀配置固化九巡。那么在關(guān)聯(lián)2和關(guān)聯(lián)3的環(huán)節(jié)图贸,給用戶的感知更加友好。但其并沒有改變權(quán)限點(diǎn)和權(quán)限集太多冕广,管理對(duì)象太多的問題疏日。權(quán)限模型還是太過厚重。
方案二
策略方針:
權(quán)限管理減負(fù)——功能權(quán)限撒汉、數(shù)據(jù)權(quán)限分離沟优。
將業(yè)務(wù)角色權(quán)限模板統(tǒng)一為一套標(biāo)準(zhǔn)的功能權(quán)限映射表。將項(xiàng)目的場(chǎng)景睬辐、產(chǎn)品等屬性抽離出來作為數(shù)據(jù)范圍挠阁。去掉群組及系統(tǒng)角色這個(gè)管理維度,為用戶授權(quán)則直接關(guān)聯(lián)角色和數(shù)據(jù)范圍溯饵。業(yè)務(wù)角色管控功能權(quán)限侵俗、數(shù)據(jù)范圍管控?cái)?shù)據(jù)權(quán)限。權(quán)限模型改為如下:
變動(dòng)方案:
1丰刊、廢除業(yè)務(wù)角色模板——權(quán)限點(diǎn)大幅減少隘谣。
此前一套業(yè)務(wù)角色模板只用到了一部分的權(quán)限點(diǎn)。經(jīng)過梳理后啄巧,系統(tǒng)內(nèi)的權(quán)限點(diǎn)可以極大縮減寻歧。減少的是針對(duì)不同場(chǎng)景、區(qū)域棵帽、產(chǎn)品定制的權(quán)限點(diǎn)熄求。
2、廢除群組——減少關(guān)聯(lián)層級(jí)逗概。
此前“用戶——群組(項(xiàng)目X業(yè)務(wù)角色)——系統(tǒng)角色——權(quán)限點(diǎn)”的模型有三層關(guān)聯(lián)弟晚,現(xiàn)在“用戶——(角色X數(shù)據(jù)范圍)——(功能權(quán)限點(diǎn)/數(shù)據(jù)維度)”只有兩層關(guān)聯(lián)。易管控。
3卿城、角色權(quán)限變更的優(yōu)化枚钓。
方案一中,如果對(duì)角色的權(quán)限進(jìn)行了修改瑟押,要使其對(duì)所有用戶生效搀捷,是很麻煩的。因?yàn)橛脩絷P(guān)聯(lián)的群組是對(duì)業(yè)務(wù)角色的實(shí)例化多望,需要對(duì)系統(tǒng)內(nèi)千萬條數(shù)據(jù)進(jìn)行刷新嫩舟。此方案中,角色和權(quán)限點(diǎn)只有一份源數(shù)據(jù)怀偷,修改可以即時(shí)生效家厌。
4、用戶權(quán)限D(zhuǎn)IY的支持椎工。
該方案對(duì)用戶權(quán)限的支持也更友好饭于。當(dāng)用戶關(guān)聯(lián)了某項(xiàng)目下某角色,則生成了一條權(quán)限記錄维蒙。如需對(duì)其進(jìn)行權(quán)限D(zhuǎn)IY掰吕,則變?yōu)椤坝脩簟ń巧玐數(shù)據(jù)范圍 + 權(quán)限變更)”。這里是以用戶為“主鍵”颅痊,記錄權(quán)限變更是易擴(kuò)展好實(shí)現(xiàn)的殖熟。而在方案一中,因?yàn)椤坝脩簟航M(項(xiàng)目X業(yè)務(wù)角色)”關(guān)聯(lián)里八千,是以群組為"主鍵”吗讶,用戶層面的權(quán)限變更,則需要額外一張表記錄恋捆。那么在健全時(shí)多表操作照皆,性能更差且不易拓展。
代價(jià)和收益:
IT模型上有著大刀闊斧的改變沸停,砍掉了“群組”膜毁、“角色權(quán)限模板”并啟用了“數(shù)據(jù)范圍”。IT變動(dòng)太大愤钾,所有權(quán)限點(diǎn)產(chǎn)生及鑒權(quán)部分的代碼都要針對(duì)性修改瘟滨,且可能存在不可預(yù)知的風(fēng)險(xiǎn):數(shù)據(jù)維度的劃分是否合理,能否經(jīng)得住業(yè)務(wù)需求的考驗(yàn)能颁;大量歷史數(shù)據(jù)需要重新組織杂瘸,難以做到平滑過渡。這就是對(duì)IT系統(tǒng)的一次換血伙菊!
但同時(shí)败玉,其收益也是顯著且影響深遠(yuǎn)的敌土。該方案可以直接解決此前權(quán)限模型的數(shù)據(jù)混亂和管理混亂問題。
沒有了多套業(yè)務(wù)角色模板运翼,只有一份標(biāo)準(zhǔn)的角色權(quán)限返干,清晰可控;
沒有了“權(quán)限集”中間商的角色血淌,直接綁定權(quán)限點(diǎn)和角色矩欠;
管理上也相應(yīng)簡(jiǎn)單了很多,運(yùn)維人員及業(yè)務(wù)人員為角色配置權(quán)限簡(jiǎn)單直接悠夯。
總結(jié)
進(jìn)行IT方案設(shè)計(jì)時(shí)癌淮,“高速換輪胎”比“平地起高樓”要考慮的東西更多。一個(gè)方案沦补,以修補(bǔ)的方式该默,在短期內(nèi)以較高的性價(jià)比先治標(biāo);另一個(gè)方案策彤,以大換血的方式,需要大量的投入以達(dá)到長(zhǎng)治久安匣摘。至于怎么抉擇店诗,還得看這個(gè)痛點(diǎn)有多痛。
系統(tǒng)設(shè)計(jì)在使用之初設(shè)想得可能十分美好音榜,并盡可能多地提供了使用的靈活度庞瘸。然而在使用演化的過程中,會(huì)逐漸出現(xiàn)與業(yè)務(wù)述求不匹配的現(xiàn)象赠叼。
我想擦囊,這也是近年來devops敏捷開發(fā)模型興起的緣由吧