|
新的需求
昨天發(fā)現(xiàn)開發(fā)的安全中心已不能夠滿足外部系統(tǒng)對(duì)其的安全訪問需求,基本情況是這樣的,當(dāng)前公司需要開發(fā)一個(gè)反饋中心中,有一個(gè)快速反饋的功能,其中有一個(gè)需求是能夠?qū)⒖焖俜答伒耐ㄖ燕]件的形式發(fā)送到相關(guān)處理人那里通知他們說,新的反饋信息來了,你們快點(diǎn)來處理啊。
以前設(shè)計(jì)的安全模型是以下方式:
使用部分為一個(gè)用戶有一個(gè)或多個(gè)安全角色,一個(gè)安全角色包括一組活動(dòng)授權(quán),每一個(gè)活動(dòng)授權(quán)包括一組授權(quán)限制。
而定義部分是一個(gè)業(yè)務(wù)活動(dòng)包括一組活動(dòng)限制。
這種方式在處理安全授權(quán)的問題的過程是,首先獲取活動(dòng)授權(quán)是否支持活動(dòng),在查詢活動(dòng)的限制,并且將結(jié)果返回給調(diào)用者,而這其中需要處理兩個(gè)問題。
用戶授權(quán)的檢查:當(dāng)一個(gè)用戶包括多個(gè)安全角色時(shí)需要將這些安全角色中的授權(quán)信息進(jìn)行合并,這里使用拒絕優(yōu)先的原則,所以只要有授權(quán)并且不是拒絕授權(quán),就表示包括授權(quán),而如果沒有授權(quán)或其中一個(gè)授權(quán)為拒絕就表示授權(quán)失敗。這里在處理合并處理起來比較簡單。
授權(quán)限制:當(dāng)一個(gè)用戶包括多個(gè)安全角色時(shí),還需要將授權(quán)約束進(jìn)行合并,并且這里還需要考慮合并的策略。如:審核金額的限制,數(shù)值大的合并數(shù)值小的金額,而如果這是屬于一定的領(lǐng)域?qū)嵗敲催@里的合并就是將主鍵按一定規(guī)則進(jìn)行相加。這里在處理時(shí)我將這一合并定義為一個(gè)合并的策略接口,通過實(shí)現(xiàn)不同的接口來完成這個(gè)操作,基本上解決了這個(gè)問題。
當(dāng)前模型的問題
但當(dāng)出現(xiàn)了前面的需求時(shí),我發(fā)現(xiàn)我就要完蛋了,根本就沒有什么方式能夠獲取到處理相關(guān)反饋的人。這里在處理反饋信息時(shí),會(huì)根據(jù)反饋類別和反饋的國家進(jìn)行限制,如:質(zhì)量問題,中國,日本的就由技術(shù)部的張三處理;業(yè)務(wù)問題,中國,日本的就由業(yè)務(wù)部的李四處理。通過上而的模型對(duì)于這一需求我想真的是完蛋了。
并且經(jīng)過后期的實(shí)踐我發(fā)現(xiàn)多個(gè)業(yè)務(wù)活動(dòng)都需要相同的活動(dòng)限制。如:業(yè)務(wù)部的李四處理與中國,日本相關(guān)的業(yè)務(wù)問題。這里有兩個(gè)業(yè)務(wù)活動(dòng),提交定單和查詢客戶這兩個(gè)業(yè)務(wù)之中,李四都只能夠處理與中國,日本相關(guān)的內(nèi)容。如果采用以上模型那么就必須在兩個(gè)地方進(jìn)行相應(yīng)的處理,而如果這里相關(guān)的業(yè)務(wù)有10個(gè)那么當(dāng)李四重新分配管理法國和德國的時(shí)候就必須設(shè)置10次。
而且當(dāng)前公司在處理銷售時(shí)基本上是這種一個(gè)人處理一些國家的方式,這樣如果將這些信息全部設(shè)置在角色之中那么定然會(huì)讓角色信息出現(xiàn)爆炸式增長。
模型的改進(jìn)
為了實(shí)現(xiàn)前面提出的安全需求同時(shí)解決當(dāng)前模型中的問題,這里我單獨(dú)的將活動(dòng)授權(quán)提取出來為“數(shù)據(jù)規(guī)則”,同時(shí)將業(yè)務(wù)活動(dòng)對(duì)活動(dòng)限制設(shè)置為“關(guān)聯(lián)關(guān)系”。將根據(jù)授權(quán)中對(duì)授權(quán)限制的設(shè)置移動(dòng)到用戶之下,既用戶數(shù)據(jù)限制,通過這種方式的修改后的安全模型如下:
通過這種方式當(dāng)用戶需要一個(gè)活動(dòng)授權(quán)時(shí),先查詢該用戶的活動(dòng)授權(quán)情況,如果允許再通過業(yè)務(wù)活動(dòng)與數(shù)據(jù)約束的相關(guān)性,獲取到相關(guān)的數(shù)據(jù)約束的值。同時(shí)這個(gè)模型也減少了對(duì)于數(shù)據(jù)約束的合并的問題。
還需要解決的問題
同時(shí)如果需要獲取相關(guān)的用戶,這里還需要考慮到數(shù)據(jù)的過濾問題,只返回與其相知道的用戶,這個(gè)問題我這里還沒有想好。
以上模型基本實(shí)現(xiàn)功能權(quán)限和數(shù)據(jù)權(quán)限的約束,具體應(yīng)用還需要我將整個(gè)安全中心按新的模型修改完成后。
這里的模型是在實(shí)際應(yīng)用之中減去不必要的內(nèi)容后形成的安全核心內(nèi)容。
希望如果大家有什么好的意見請多賜教,歡迎大家的批評(píng)指正。
it知識(shí)庫:安全系統(tǒng)的設(shè)計(jì),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。