權(quán)限管理與訪問控制常常被放在一起討論,不是嗎?我們的軟件設(shè)計(jì)往往一來就是一個(gè)系統(tǒng)組成模塊圖,在那個(gè)圖里面一個(gè)傻傻的方框里面寫上“權(quán)限控制模塊”。但是,我認(rèn)為我們還是應(yīng)該認(rèn)識(shí)到在這個(gè)“模塊”里面兩者的不同。
“訪問控制”:是一個(gè)動(dòng)態(tài)的概念,是發(fā)生在運(yùn)行時(shí)的,也即RBAC里面說的Session中。當(dāng)一個(gè)按照定義需進(jìn)行控制的訪問或調(diào)用發(fā)生時(shí),“訪問控制”即發(fā)揮作用了。“訪問控制”發(fā)生的頻率非常高;
“權(quán)限管理”:則是一個(gè)相對(duì)靜態(tài)的概念,即對(duì)“訪問控制”的規(guī)則進(jìn)行定義的一種管理。在系統(tǒng)內(nèi)訪問或調(diào)用發(fā)生之前,這些控制規(guī)則必須被定義好,等待“訪問控制”取用。通常,“權(quán)限管理”發(fā)生的頻率非常低;
其實(shí),以任意一個(gè)應(yīng)用系統(tǒng)為背景,使用用例分析完全可以理解這種分離。在實(shí)際設(shè)計(jì)中,這兩部分的數(shù)據(jù)訪問設(shè)計(jì)也略有不同。“權(quán)限控制”是對(duì)應(yīng)用系統(tǒng)中的訪問控制規(guī)則數(shù)據(jù)的讀、寫操作;而“訪問控制”是對(duì)數(shù)據(jù)的讀操作,并且通常都有較強(qiáng)的性能要求。
在較高層次的構(gòu)架上,我看到很多國外的研究者將這一部分以權(quán)限訪問控制框架(Enterprise Access Control Framework)來模型化,并有較好的描述。在描述中,也是將各分開。這里摘錄一段老外論文摘要里面的:
“一個(gè)企業(yè)應(yīng)用訪問控制框架的效力依賴于這個(gè)框架中組件或組建模塊的組成完整性。類似的框架必需由如下組件構(gòu)成:(a)一個(gè)企業(yè)范圍內(nèi)的控制模塊(b)在這個(gè)模塊基礎(chǔ)上的開發(fā)的一套對(duì)數(shù)據(jù)訪問進(jìn)行驗(yàn)證的機(jī)制(c)一套將企業(yè)應(yīng)用訪問控制信息數(shù)據(jù)映射到企業(yè)中不同應(yīng)用系統(tǒng)中并發(fā)揮自然訪問強(qiáng)制控制作用的機(jī)制。”
可以在美國標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì)的RBAC標(biāo)準(zhǔn)主頁(
Go->
)上找到這篇論文。論文是關(guān)于RBAC的一個(gè)XML Schema模型的實(shí)現(xiàn)的,我現(xiàn)在正在翻譯。