專利名稱:充分體現(xiàn)“分級(jí)分權(quán)”的安全框架的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種充分體現(xiàn)"分級(jí)分權(quán)"的安全框架,即InforGuard 監(jiān)管平臺(tái)充分體現(xiàn)"分級(jí)分權(quán)"的安全框架。
背景技術(shù):
在現(xiàn)實(shí)生活中,企業(yè)往往采用了具有層次結(jié)構(gòu)的組織結(jié)構(gòu),而"角 色"這一概念較好的抽象出這一模型,角色同組織架構(gòu)很好的融入到一 起,不同組織擁有的權(quán)限也不一樣。
對(duì)于管理員采用分級(jí)分權(quán)的管理,不同級(jí)別的管理者分配給不同的 管理對(duì)象和管理權(quán)限,讓網(wǎng)絡(luò)管理層次和企業(yè)的管理層次相一致,譬如 機(jī)房管理員可以只管理本機(jī)房的所有主機(jī)和網(wǎng)站。
現(xiàn)在的論壇中,使用登錄名稱和密碼的驗(yàn)證方式。論壇的版主、管 理員和會(huì)員擁有不同的權(quán)限。他們看到的信息也不一樣。管理員擁有最 大權(quán)限,而會(huì)員的權(quán)限最小。根據(jù)會(huì)員積分的不同能夠訪問的板塊也不 一樣。這就是一個(gè)分級(jí)分權(quán)的應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對(duì)上述的不足,提供了一種充分體現(xiàn)"分級(jí)分 權(quán)"的安全框架,能夠通過保護(hù)方法調(diào)用在更底層的級(jí)別上強(qiáng)制安全性, 通過使用安全框架,以確保用戶只有在擁有恰當(dāng)授權(quán)時(shí)才能調(diào)用受保護(hù)
的數(shù)據(jù)和方法;可以授權(quán)只有指定的人員才可以查看日志、告警等內(nèi)容 敏感信息,其他人員只能查看統(tǒng)計(jì)、分析、.報(bào)表等統(tǒng)計(jì)信息。
充分體現(xiàn)"分級(jí)分權(quán)"的安全框架,根據(jù)不同的角色授予不同的權(quán)限。
使用Spring A0P將"切面,,應(yīng)用于對(duì)象,以確保只有用戶在擁有 恰當(dāng)授權(quán)時(shí)才能調(diào)用受保護(hù)的方法。
使用分級(jí)分權(quán)的安全框架擴(kuò)展性好,不需要修改現(xiàn)有代碼,只需要 修改配置文件就可以驗(yàn)證新增業(yè)務(wù)邏輯的授權(quán)。
本發(fā)明提供的充分體現(xiàn)"分級(jí)分權(quán),,的安全框架,包括如下部分 數(shù)據(jù)授權(quán)在配置文件中定義不同的角色,給角色賦予查看數(shù)據(jù)時(shí) 不同的權(quán)限;
數(shù)據(jù)驗(yàn)證在獲取數(shù)據(jù)之前,首先獲取數(shù)據(jù)授權(quán),然后獲取數(shù)據(jù), 再根據(jù)數(shù)據(jù)授權(quán)過濾掉不允許查看的.數(shù)據(jù);
功能授權(quán)在配置文件中定義不同的角色,給角色賦予功能調(diào)用的 不同權(quán)限;功能驗(yàn)證在調(diào)用方法之前,首先獲取功能授權(quán),然后調(diào)用方法, 在根據(jù)4受一又過濾掉不允許訪問的方法。
數(shù)據(jù)驗(yàn)證和功能驗(yàn)證的過程是一樣的,具體為當(dāng)已認(rèn)證的用戶通 過手中持有的角色集合操控目標(biāo)資源時(shí),分級(jí)分權(quán)安全框架內(nèi)置的攔截 器會(huì)采用公平投票機(jī)制評(píng)估這一舉動(dòng);調(diào)用到目標(biāo)資源前,目標(biāo)用戶需 要經(jīng)過攔截器的預(yù)處理,即檢查他的身份是否符合目標(biāo)資源設(shè)定的權(quán)限 要求;調(diào)用后,攔截器會(huì)審核操作結(jié)果刪除沒有權(quán)限查看的數(shù)據(jù)和功能。
該發(fā)明的整體優(yōu)點(diǎn)是充分體現(xiàn)"分級(jí)分權(quán)"的安全框架,使用簡(jiǎn)
統(tǒng)的目的。分級(jí)分權(quán)的安全框架實(shí)現(xiàn)了應(yīng)用系統(tǒng)與安全性之間的低耦合。
圖l為本發(fā)明實(shí)施例的流程圖。
具體實(shí)施例方式
下面將對(duì)本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)說明。 一種充分體現(xiàn)"分級(jí)分權(quán)"的安全框架,包括如下部分 數(shù)據(jù)授權(quán)在配置文件中定義不同的角色,給角色賦予查看數(shù)據(jù)時(shí)
不同的權(quán)限;
數(shù)據(jù)驗(yàn)證在獲取數(shù)據(jù)之前,首先獲取數(shù)據(jù)授權(quán),然后獲取數(shù)據(jù), 再根據(jù)數(shù)據(jù)授權(quán)過濾掉不允許查看的數(shù)據(jù);
功能授權(quán)在配置文件中定義不同的角色,給角色賦予功能調(diào)用的 不同權(quán)限;
功能驗(yàn)證在調(diào)用方法之前,首先獲取功能授權(quán),然后調(diào)用方法, 在根據(jù)授權(quán)過濾掉不允許訪問的方法。
數(shù)據(jù)驗(yàn)證和功能驗(yàn)證的過程是一樣的,具體為當(dāng)已認(rèn)證的用戶通 過手中持有的角色集合操控目標(biāo)資源時(shí),分級(jí)分權(quán)安全框架內(nèi)置的攔截 器會(huì)采用公平投票機(jī)制評(píng)估這一舉動(dòng);調(diào)用到目標(biāo)資源前,目標(biāo)用戶需 要經(jīng)過攔截器的預(yù)處理,即檢查他的身份是否符合目標(biāo)資源設(shè)定的權(quán)限 要求;調(diào)用后,攔截器會(huì)審核操作結(jié)果刪除沒有權(quán)限查看的數(shù)據(jù)和功能。
攔截器參與了驗(yàn)證。攔截器的作用如附圖l所示,用戶向該系統(tǒng) 發(fā)出請(qǐng)求,攔截器分析這個(gè)請(qǐng)求是調(diào)用功能的請(qǐng)求還是數(shù)據(jù)請(qǐng)求。如果 是功能請(qǐng)求,調(diào)用功能前,在功能權(quán)限XML文件中,過濾器先獲取調(diào)用 功能的權(quán)限,過濾掉不能夠調(diào)用的功能。如果是數(shù)據(jù)請(qǐng)求,先獲取數(shù)據(jù), 再根據(jù)數(shù)據(jù)權(quán)限的XML描述過濾掉哪些不允許;故查看的數(shù)據(jù)。
例如public void doFi1ter (ServletRequest request, ServletResponse response,
Fi UerChain chain) throws IOException, ServletExcept i_on
Fi1terlnvocation fi= new Fil terlnvocation (request,response, chain); invoke (nul 1);
public void invoke (Fi1terlnvocation fi) throws IOException, ServletException {
if ((f i. getReques t () != null) &&
(f i. getHttpRequest (), getAUribute (尸/Z環(huán)—舒Z滿)!=null && observeOncePerRequest)) {
f i. get Chain (). doFi 1 ter (f i. getQequest (), f i. getResponse ()) 5 } else {
if (fi. getRequest () != null) {
f i. getRequest (). setAttr ibute (尸/Z環(huán)」?jié)?,?Boolean. :Tv 鄉(xiāng)5
〃事前評(píng)估
InterceptorStatusToken token = super.beforelnvocation (fi); try {〃調(diào)用目標(biāo)Web資源
f i. get Chain (). doFi 1 ter (f i. getReques t () , f i. get Res pose ()); } finally {〃事后審查
super,aftervocati on (token, nu 11)5
事前評(píng)估
下面的酉己置〗言息、,其中accessDecisionManager屬小生正是完成事前評(píng)估的
<bean id="filterBef oreFunct ion" class = "org.cvicse. intercept.FilterFunct ion"〉
〈property name="authenManager" ref-"authenManager" /> 〈property name="accessManager" ref="accessManager" /〉 〈property name="objectSource11〉
<value〉SECURED/secured. zul=ADMIN</value> </proper ty〉 </bean>
上述ht tpReques t Acces sDec i s ionManager acces sManager的定義如 下,開發(fā)者需要為Affir歸tiveBased配置若干投票器
<bean id="accessManager"
class-"org. cvicse. vote. Affirmative"
<property name="allowAlIDecisions" value="fa 1 se" /> 〈property name="dec i s ionVoters " > <1 ist〉
<ref bean="roleVoter" /> </list> </proper ty> </bean>
<bean id="roleVoter" class="org.civcse.vote.RoleVoter" /〉 事后審查
用戶操控到目標(biāo)資源后,調(diào)用結(jié)果可能會(huì)返回一個(gè)領(lǐng)域?qū)ο蠹希遣?不是任意用戶都能夠操作到任意領(lǐng)域?qū)ο蟮?,我們需要保護(hù)他們!
在實(shí)施領(lǐng)域?qū)ο蠹?jí)的訪問控制時(shí)(事后審查),分級(jí)分權(quán)的安全框架的 AfterlnvocationManager充當(dāng)了非常主要的角色,他會(huì)對(duì)業(yè)務(wù)對(duì)象操作的結(jié)果 進(jìn)行審查。
<bean id="contactManager
class = "org.civcse. intercept.method. MethodInterceptor">
〈property name="authenManager"〉 <ref bean="authenManager"/〉
</property>
〈property name="accessManager"><ref local="businessAccessManager"/> </proper ty>
<property name="af terlnvocat ionManager"> <ref local = "afterlnvocat ionManager"/> </property>
<property name="objectSource"> <value>
com. civcse.messageManager. searchById=USER,ADMIN com. civcse.messageManager. update=USER,ADMIN
com.civcse. messageManager. add=ADMIN com. civcse.messageManager. update=ADMIN com.civcse. messageManager. delete=ADMIN </value〉 </proper ty> </bean>
權(quán)利要求
1. 一種充分體現(xiàn)“分級(jí)分權(quán)”的安全框架,其特征在于包括如下部分?jǐn)?shù)據(jù)授權(quán)在配置文件中定義不同的角色,給角色賦予查看數(shù)據(jù)時(shí)不同的權(quán)限;數(shù)據(jù)驗(yàn)證在獲取數(shù)據(jù)之前,首先獲取數(shù)據(jù)授權(quán),然后獲取數(shù)據(jù),再根據(jù)數(shù)據(jù)授權(quán)過濾掉不允許查看的數(shù)據(jù);功能授權(quán)在配置文件中定義不同的角色,給角色賦予功能調(diào)用的不同權(quán)限;功能驗(yàn)證在調(diào)用方法之前,首先獲取功能授權(quán),然后調(diào)用方法,在根據(jù)授權(quán)過濾掉不允許訪問的方法。
2.根據(jù)權(quán)利要求1所述的充分體現(xiàn)"分級(jí)分權(quán)"的安全框架,其特 征在于數(shù)據(jù)驗(yàn)證和功能驗(yàn)證的過程是一樣的,具體為當(dāng)已認(rèn)證的 用戶通過手中持有的角色集合操控目標(biāo)資源時(shí),分級(jí)分權(quán)安全框架內(nèi) 置的欄截器會(huì)采用公平投票機(jī)制評(píng)估這一舉動(dòng);調(diào)用到目標(biāo)資源前, 目標(biāo)用戶需要經(jīng)過攔截器的預(yù)處理,即檢查他的身份是否符合目標(biāo)資 源設(shè)定的權(quán)限要求;調(diào)用后,攔截器會(huì)審核操作結(jié)果刪除沒有權(quán)限查 看的數(shù)據(jù)和功 能。
全文摘要
本發(fā)明是一種充分體現(xiàn)“分級(jí)分權(quán)”的安全框架,包括如下部分?jǐn)?shù)據(jù)授權(quán)在配置文件中定義不同的角色,給角色賦予查看數(shù)據(jù)時(shí)不同的權(quán)限;數(shù)據(jù)驗(yàn)證在獲取數(shù)據(jù)之前,首先獲取數(shù)據(jù)授權(quán),然后獲取數(shù)據(jù),再根據(jù)數(shù)據(jù)授權(quán)過濾掉不允許查看的數(shù)據(jù);功能授權(quán)在配置文件中定義不同的角色,給角色賦予功能調(diào)用的不同權(quán)限;功能驗(yàn)證在調(diào)用方法之前,首先獲取功能授權(quán),然后調(diào)用方法,在根據(jù)授權(quán)過濾掉不允許訪問的方法。該發(fā)明的整體優(yōu)點(diǎn)是充分體現(xiàn)“分級(jí)分權(quán)”的安全框架,使用簡(jiǎn)單,不需要應(yīng)用代碼中季節(jié)編寫任何與安全有關(guān)的代碼而達(dá)到保護(hù)應(yīng)用系統(tǒng)的目的。分級(jí)分權(quán)的安全框架實(shí)現(xiàn)了應(yīng)用系統(tǒng)與安全性之間的低耦合。
文檔編號(hào)H04L29/06GK101547117SQ20091001510
公開日2009年9月30日 申請(qǐng)日期2009年5月7日 優(yōu)先權(quán)日2009年5月7日
發(fā)明者春 劉, 鵬 劉, 劉宗福, 黃三偉 申請(qǐng)人:山東中創(chuàng)軟件商用中間件股份有限公司