構(gòu)建基于角色的訪問控制系統(tǒng)的方法及云服務(wù)器的制造方法
【專利摘要】本發(fā)明實(shí)施例提供構(gòu)建RBAC的方法及云服務(wù)器。該方法包括:從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,該請(qǐng)求消息攜帶UPA數(shù)據(jù);獲取RBAC模板,并根據(jù)該RBAC模板和該UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合;根據(jù)該第一角色集合和該UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定該RBAC角色集合;向該客戶端發(fā)送該RBAC角色集合,以便該客戶端根據(jù)該RBAC角色集合構(gòu)建RBAC系統(tǒng)。本發(fā)明實(shí)施例中,不僅能夠提高RBAC角色集合的語義準(zhǔn)確性并降低成本,而且能夠提高構(gòu)建RBAC系統(tǒng)的效率。
【專利說明】構(gòu)建基于角色的訪問控制系統(tǒng)的方法及云服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,并且具體地,涉及構(gòu)建基于角色的訪問控制(Role-based Access Control, RBAC)系統(tǒng)的方法及云服務(wù)器。
【背景技術(shù)】
[0002]訪問控制是針對(duì)越權(quán)使用資源的防御措施,基本目標(biāo)是為了保障用戶對(duì)系統(tǒng)資源的合理有效訪問。訪問控制大致有三種方法,分別是傳統(tǒng)的自主訪問控制(DiscretionaryAccess Control, DAC)方法和強(qiáng)制訪問控制(Mandatory Access Control, MAC)方法,以及近年來熱門的RBAC方法。其中,DAC方法的粒度太細(xì),而MAC方法的粒度太粗,并且兩者工作量大,不便于管理。RBAC方法是策略中立的,能用其表示包括DAC和MAC在內(nèi)的不同種類的策略,而且RBAC方法更接近真實(shí)組織的管理方式,所以可以方便地描述高層策略。因此RBAC方法已逐漸成為公認(rèn)的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。
[0003]目前構(gòu)建RBAC系統(tǒng)主要通過角色工程(Role Engineering)技術(shù)來實(shí)現(xiàn)。角色工程技術(shù)主要包括自頂向下(Top-down)的方法和自底向上(Bottom-up)的方法。自頂向下的方法通常需要復(fù)雜的業(yè)務(wù)流程分析,自動(dòng)化程度低。而自底向上的方法自動(dòng)化程度高,但由于缺少業(yè)務(wù)流程分析,導(dǎo)致獲得的角色語義性不好。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供構(gòu)建RBAC的方法及云服務(wù)器,能夠提高RBAC角色集合的語義準(zhǔn)確性并降低成本,而且能夠提高構(gòu)建RBAC系統(tǒng)的效率。
[0005]一方面,提供了一種構(gòu)建RBAC的方法,包括:從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,該請(qǐng)求消息攜帶用戶權(quán)限分配UPA數(shù)據(jù);獲取RBAC模板,并根據(jù)該RBAC模板和該UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合;根據(jù)該第一角色集合和該UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定該RBAC角色集合;向該客戶端發(fā)送該RBAC角色集合,以便該客戶端根據(jù)該RBAC角色集合構(gòu)建RBAC系統(tǒng)。
[0006]另一方面,提供了一種云服務(wù)器,包括:接收模塊,用于從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,該請(qǐng)求消息攜帶用戶權(quán)限分配UPA數(shù)據(jù),并向角色匹配模塊傳輸該UPA數(shù)據(jù);角色匹配模塊,用于從該接收模塊接收該UPA數(shù)據(jù),并獲取RBAC模板,根據(jù)該RBAC模板和該UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合,并向角色挖掘模塊傳輸該第一角色集合;角色挖掘模塊,用于從該角色匹配模塊接收該第一角色集合,并根據(jù)該第一角色集合和該UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定該RBAC角色集合,并向發(fā)送模塊傳輸該RBAC角色集合;發(fā)送模塊,用于從該角色挖掘模塊接收該RBAC角色集合,并向該客戶端發(fā)送該RBAC角色集合,以便該客戶端根據(jù)該RBAC角色集合構(gòu)建RBAC系統(tǒng)。
[0007]本發(fā)明實(shí)施例中,通過根據(jù)RBAC模板和UPA數(shù)據(jù)進(jìn)行角色匹配來確定第一角色集合,并根據(jù)第一角色集合和UPA數(shù)據(jù)進(jìn)行角色挖掘來確定RBAC角色集合,使得RBAC模板所包含的業(yè)務(wù)流程信息融入RBAC角色集合,而無需進(jìn)行昂貴且復(fù)雜的業(yè)務(wù)流程分析,并且保留了角色挖掘過程的高自動(dòng)化程度,因此不僅能夠提高RBAC角色集合的語義準(zhǔn)確性并降低成本,而且能夠提高構(gòu)建RBAC系統(tǒng)的效率。
【專利附圖】
【附圖說明】
[0008]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0009]圖1是可應(yīng)用本發(fā)明實(shí)施例的RBAC系統(tǒng)的一個(gè)例子的示意圖。
[0010]圖2是根據(jù)本發(fā)明實(shí)施例的構(gòu)建RBAC系統(tǒng)的方法的示意性流程圖。
[0011]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的構(gòu)建RBAC系統(tǒng)的方法的過程的示意圖。
[0012]圖4是根據(jù)本發(fā)明實(shí)施例的RBAC模板的角色層次結(jié)構(gòu)的一個(gè)例子的示意圖。
[0013]圖5是根據(jù)本發(fā)明另一實(shí)施例的構(gòu)建RBAC系統(tǒng)的方法的過程的示意圖。
[0014]圖6是根據(jù)本發(fā)明實(shí)施例的云服務(wù)器的示意框圖。
[0015]圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的云服務(wù)器的實(shí)現(xiàn)方式的一個(gè)例子的示意圖。
[0016]圖8是根據(jù)本發(fā)明另一實(shí)施例的云服務(wù)器的實(shí)現(xiàn)方式的另一例子的示意圖。
【具體實(shí)施方式】
[0017]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
[0018]圖1是可應(yīng)用本發(fā)明實(shí)施例的RBAC系統(tǒng)的一個(gè)例子的示意圖。應(yīng)注意,圖1的例子僅僅是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例,而非限制本發(fā)明實(shí)施例的范圍。例如,在圖1中,描述了 4個(gè)用戶(User)、3個(gè)角色(Role)以及3個(gè)服務(wù)器,但本發(fā)明實(shí)施例中,用戶的數(shù)目、角色的數(shù)目以及服務(wù)器的數(shù)目還可以是其它的數(shù)目,本發(fā)明實(shí)施例對(duì)此不作限定。
[0019]在RBAC系統(tǒng)中,用戶和服務(wù)器之間增加了一層“角色”作為橋梁,角色可以看作是權(quán)限的集合,通過用戶對(duì)應(yīng)于角色以及角色對(duì)應(yīng)于權(quán)限來實(shí)現(xiàn)訪問控制。例如,在圖1中,用戶I和用戶2對(duì)應(yīng)于角色1,角色I(xiàn)的權(quán)限為可以訪問服務(wù)器1,那么用戶I和用戶2都可以訪問服務(wù)器I。用戶3對(duì)應(yīng)于角色2,角色2的權(quán)限為可以訪問服務(wù)器I和服務(wù)器2,那么用戶3可以訪問服務(wù)器I和服務(wù)器2。用戶4對(duì)應(yīng)于角色3,角色3是權(quán)限為可以訪問服務(wù)器1、服務(wù)器2和服務(wù)器3。因此,構(gòu)建RBAC系統(tǒng)的過程就是創(chuàng)建角色以及設(shè)定用戶與角色、角色與權(quán)限之間的分配關(guān)系的過程,其中構(gòu)造具有層次結(jié)構(gòu)的角色集合是最核心的過程。
[0020]圖2是根據(jù)本發(fā)明實(shí)施例的構(gòu)建RBAC系統(tǒng)的方法的示意性流程圖。圖2的方法由云服務(wù)器執(zhí)行。
[0021]210,從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,該請(qǐng)求消息攜帶用戶權(quán)限分配(User-Permission Assignment, UPA)數(shù)據(jù)。
[0022]UPA數(shù)據(jù)可以表示用戶與權(quán)限之間的對(duì)應(yīng)關(guān)系,UPA數(shù)據(jù)中每條記錄的形式可以為{用戶XX—具有的權(quán)限}。
[0023]220,獲取RBAC模板,并根據(jù)該RBAC模板和該UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有
層次結(jié)構(gòu)的第一角色集合。
[0024]可選地,作為一個(gè)實(shí)施例,云服務(wù)器可以根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,從存儲(chǔ)于云服務(wù)器的RBAC模板庫中選取RBAC模板?;蛘咴品?wù)器可以從客戶端接收RBAC模板,其中RBAC模板是客戶端根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息從RBAC模板庫中選取的。
[0025]例如,由于云服務(wù)提供商(Cloud Service Provider, CSP)通常具有大量的客戶,因此可以基于客戶已經(jīng)運(yùn)行或部署的RBAC系統(tǒng),建立RBAC模板庫。此外CSP可以按照行業(yè)(如銀彳丁、醫(yī)院等)、彳丁業(yè)特點(diǎn)(如綜合醫(yī)院、??漆t(yī)院等)等對(duì)RBAC |旲板庫中的RBAC |旲板進(jìn)行分類,存儲(chǔ)于云服務(wù)器中。這樣,云服務(wù)器或者客戶端都可以根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,從RBAC模板庫中選取合適的RBAC模板。RBAC模板的表示形式可以是多種形式,例如角色層次結(jié)構(gòu),或通過表格記錄的形式表示角色集合以及該角色集合的層次結(jié)構(gòu)等。本發(fā)明實(shí)施例對(duì)此不作限定。
[0026]本發(fā)明實(shí)施例中,由于RBAC模板包含著經(jīng)過提煉的與UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)的業(yè)務(wù)流程信息,通過根據(jù)RBAC模板和UPA數(shù)據(jù)進(jìn)行角色匹配,能夠?qū)I(yè)務(wù)流程信息融入角色匹配過程所產(chǎn)生的角色集合中,而無需進(jìn)行昂貴且復(fù)雜的業(yè)務(wù)流程分析過程,從而能夠降低構(gòu)造角色集合的成本及復(fù)雜度。
[0027]此外,由于云服務(wù)器具有強(qiáng)大的存儲(chǔ)能力,因此能夠保證存儲(chǔ)RBAC模板庫的存儲(chǔ)空間。而且由于云服務(wù)器有著大量且多元化的客戶,因此能夠保證充足的RBAC模板來源。
[0028]可選地,作為另一實(shí)施例,云服務(wù)器可以對(duì)RBAC模板和UPA數(shù)據(jù)進(jìn)行角色匹配,確定具有層次結(jié)構(gòu)的第二角色集合,向客戶端發(fā)送第二角色集合,從客戶端接收客戶端對(duì)第二角色集合的調(diào)整方案,根據(jù)調(diào)整方案對(duì)第二角色集合進(jìn)行調(diào)整,以確定第一角色集合。
[0029]例如,云服務(wù)器可以將UPA數(shù)據(jù)中的每條記錄與RBAC模板進(jìn)行匹配,確定具有層次結(jié)構(gòu)的第二角色集合。客戶端可以根據(jù)自身的實(shí)際需求,確定對(duì)第二角色集合的調(diào)整方案,并向云服務(wù)器發(fā)送該調(diào)整方案。云服務(wù)器可以根據(jù)調(diào)整方案對(duì)第二角色集合進(jìn)行修改調(diào)整,從而確定角色匹配過程產(chǎn)生的具有層次結(jié)構(gòu)的第一角色集合。
[0030]230,根據(jù)該第一角色集合和該UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定該RBAC角色集合。
[0031]可選地,作為另一實(shí)施例,云服務(wù)器可以基于第一角色集合對(duì)UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定RBAC角色集合。
[0032]具體地,云服務(wù)器可以將步驟220產(chǎn)生的具有層次結(jié)構(gòu)的第一角色集合作為輸入,對(duì)全部UPA數(shù)據(jù)進(jìn)行角色挖掘,從而確定RBAC角色集合。
[0033]由于各信息系統(tǒng)和組織的差異性,角色匹配所產(chǎn)生的第一角色集合通常無法將全部UPA數(shù)據(jù)覆蓋,因此再通過基于角色匹配過程所產(chǎn)生的第一角色集合對(duì)UPA數(shù)據(jù)進(jìn)行角色挖掘,能夠提高最終產(chǎn)生的RBAC角色集合的準(zhǔn)確性。
[0034]可選地,作為另一實(shí)施例,云服務(wù)器可以根據(jù)用于解決最小擾動(dòng)的帶層次結(jié)構(gòu)的角色挖掘問題(Minimal Perturbation Role Hierarchy Mining Problem, MinPert-RHMP)的算法,基于第一角色集合對(duì)UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定RBAC角色集合。[0035]具體地,MinPert-RHMP是指給定用戶集合U、權(quán)限集合P和UPA數(shù)據(jù),目標(biāo)是通過建立角色集合、相應(yīng)的用戶角色分配(User-Role Assignment, UA)關(guān)系以及權(quán)限角色分配(Permission-Role Assignment, PA)關(guān)系,使角色集合能夠完全覆蓋UPA數(shù)據(jù),且保證系統(tǒng)復(fù)雜度低。此外,在解決MinPert-RHMP的開始時(shí),已經(jīng)定義了一部分角色(通常稱為DRoles(Deployed Roles,已部署的角色)),那么還要求在角色集合中盡量保留DRoles。目前有多種解決MinPert-RHMP的算法,例如,云服務(wù)器可以根據(jù)StateMiner算法,以第一角色集合作為輸入,對(duì)全部UPA數(shù)據(jù)進(jìn)行角色挖掘,確定RBAC角色集合。云服務(wù)器還可以根據(jù)其它能夠解決MinPert-RHMP的算法進(jìn)行角色挖掘,本發(fā)明實(shí)施例對(duì)此不作限定。
[0036]可選地,作為另一實(shí)施例,云服務(wù)器可以確定UPA數(shù)據(jù)中與第一角色集合的角色沒有匹配的剩余UPA數(shù)據(jù),對(duì)剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定具有層次結(jié)構(gòu)的第三角色集合,將第一角色集合與第三角色集合進(jìn)行合并,以確定RBAC角色集合。
[0037]具體地,云服務(wù)器可以對(duì)角色匹配過程中沒有匹配的剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,然后將角色挖掘所產(chǎn)生的具有層次結(jié)構(gòu)的第三角色集合與第一角色集合進(jìn)行合并,確定最終的RBAC角色集合。對(duì)第三角色集合與第一角色集合進(jìn)行合并的方式可參照現(xiàn)有技術(shù),例如在第三角色集合與第一角色集合中都出現(xiàn)的公共角色,云服務(wù)器可以只保留一個(gè),并將刪掉的節(jié)點(diǎn)的父、子節(jié)點(diǎn)關(guān)系轉(zhuǎn)移到保留的那個(gè)角色上。云服務(wù)器可以將不同的角色都保留在最終的RBAC角色集合中。
[0038]本發(fā)明實(shí)施例中,由于角色匹配過程中已經(jīng)匹配的UPA數(shù)據(jù)所蘊(yùn)含的信息已經(jīng)體現(xiàn)在第一角色集合中,而且由于角色匹配過程中對(duì)RBAC模板和UPA數(shù)據(jù)進(jìn)行匹配,RBAC模板來源于UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè),那么在角色匹配過程中能夠成功匹配大部分UPA數(shù)據(jù)。因此云服務(wù)器可以對(duì)在角色匹配過程中沒有匹配的剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,從而能夠減小角色挖掘過程需要處理的數(shù)據(jù)量,提高處理效率。
[0039]可選地,作為另一實(shí)施例,云服務(wù)器可以根據(jù)用于解決帶層次結(jié)構(gòu)的角色挖掘問題(Role Hierarchy Mining Problem, RHMP)的算法,對(duì)剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定
第三角色集合。
[0040]具體地,RHMP是指給定用戶集合U、權(quán)限集合P和UPA數(shù)據(jù),目標(biāo)是通過建立角色集合、相應(yīng)的UA關(guān)系以及PA關(guān)系,使角色集合能夠完全覆蓋UPA數(shù)據(jù),且系統(tǒng)復(fù)雜度低。此夕卜,RHMP中增加考慮角色的層次結(jié)構(gòu)(即角色之間具有繼承關(guān)系等),在系統(tǒng)復(fù)雜度中需要考慮層次結(jié)構(gòu)的復(fù)雜度。目前,有多種解決RHMP的算法。例如,云服務(wù)器可以根據(jù)圖優(yōu)化(Graph Optimisation)算法,對(duì)剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定第三角色集合。云服務(wù)器還可以根據(jù)其它能夠解決RHMP的算法進(jìn)行角色挖掘,本發(fā)明實(shí)施例對(duì)此不作限定。
[0041]可選地,作為另一實(shí)施例,云服務(wù)器可以根據(jù)用于解決角色挖掘問題(RoleMining Problem, RMP)的算法,對(duì)剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定不具有層次結(jié)構(gòu)的第三角色集合,根據(jù)用于解決角色層次結(jié)構(gòu)構(gòu)建問題(Role Hierarchy Building Problem,RHBP)的算法,為不具有層次結(jié)構(gòu)的第三角色集合構(gòu)造層次結(jié)構(gòu)。
[0042]具體地,RMP是指給定用戶集合U、權(quán)限集合P和UPA數(shù)據(jù),目標(biāo)是通過建立角色集合、相應(yīng)的UA關(guān)系以及PA關(guān)系,使角色集合能夠完全覆蓋UPA數(shù)據(jù),且保證系統(tǒng)復(fù)雜度低。RHBP是指給定角色集合,目標(biāo)是為其構(gòu)造出最優(yōu)的層次結(jié)構(gòu)。云服務(wù)器可以確定不具有層次結(jié)構(gòu)的第三角色集合,然后再構(gòu)造層次結(jié)構(gòu),從而確定具有層次結(jié)構(gòu)的第三角色集合。[0043]240,向該客戶端發(fā)送該RBAC角色集合,以便該客戶端根據(jù)該RBAC角色集合構(gòu)建RBAC系統(tǒng)。
[0044]本發(fā)明實(shí)施例利用云的計(jì)算和存儲(chǔ)能力提供RaaS(RBAC as a Service,構(gòu)造RBAC即服務(wù)),即借助云強(qiáng)大的計(jì)算和存儲(chǔ)能力,通過云服務(wù)器構(gòu)造RBAC角色集合,使得客戶端根據(jù)RBAC角色集合能夠方便地構(gòu)建RBAC系統(tǒng),從而能夠提高構(gòu)建RBAC系統(tǒng)的效率并降低成本。
[0045]本發(fā)明實(shí)施例中,通過根據(jù)RBAC模板和UPA數(shù)據(jù)進(jìn)行角色匹配來確定第一角色集合,并根據(jù)第一角色集合和UPA數(shù)據(jù)進(jìn)行角色挖掘來確定RBAC角色集合,使得RBAC模板所包含的業(yè)務(wù)流程信息融入RBAC角色集合,而無需進(jìn)行昂貴且復(fù)雜的業(yè)務(wù)流程分析,并且保留了角色挖掘過程的高自動(dòng)化程度,因此不僅能夠提高RBAC角色集合的語義準(zhǔn)確性,降低成本,而且能夠提高構(gòu)建RBAC系統(tǒng)的效率。
[0046]下面將結(jié)合具體的例子詳細(xì)描述本發(fā)明實(shí)施例。應(yīng)注意,這些例子是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例,而非限制本發(fā)明實(shí)施例的范圍。
[0047]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的構(gòu)建RBAC系統(tǒng)的方法的過程的示意圖。
[0048]301,云服務(wù)器存儲(chǔ)有RBAC模板庫,對(duì)RBAC模板庫進(jìn)行更新與維護(hù)。
[0049]CSP通常具有大量的客戶,部分客戶已經(jīng)通過RBAC系統(tǒng)進(jìn)行用戶身份管理、訪問控制等功能,則CSP可以直接從這些運(yùn)行的RBAC系統(tǒng)中獲取RBAC模板。也可以從其他公司已經(jīng)部署的RBAC系統(tǒng)中抽取或購買RBAC模板,從而建立RBAC模板庫,在云服務(wù)器中存儲(chǔ)。此外CSP可以按照行業(yè)(如銀行、醫(yī)院等)、行業(yè)特點(diǎn)(如綜合醫(yī)院、??漆t(yī)院等)等對(duì)RBAC模板庫中的RBAC模板進(jìn)行分類,存儲(chǔ)于云服務(wù)器中。云服務(wù)器可以對(duì)RBAC模板庫進(jìn)行更新與維護(hù)。RBAC模板庫可以是對(duì)外公布的。RBAC模板庫中的RBAC模板的表示形式可以是角色集合以及該角色集合的層次結(jié)構(gòu)。
[0050]由于云服務(wù)器具有強(qiáng)大的存儲(chǔ)能力,因此能夠保證存儲(chǔ)RBAC模板庫的存儲(chǔ)空間。而且由于云服務(wù)器有著大量且多元化的客戶,因此能夠保證充足的RBAC模板來源。
[0051]302,客戶端向云服務(wù)器發(fā)送用于請(qǐng)求構(gòu)造RBAC角色集合的請(qǐng)求消息,該請(qǐng)求消息攜帶UPA數(shù)據(jù)。
[0052]UPA數(shù)據(jù)可以表示用戶與權(quán)限之間的關(guān)系,其中每條記錄RQ的形式為{用戶XX —具有的權(quán)限}。
[0053]303,云服務(wù)器根據(jù)步驟302中的UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,從RBAC模板庫中選取RBAC模板。
[0054]例如,云服務(wù)器可以根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)以及行業(yè)特點(diǎn),選取RBAC模板。此夕卜,由于RBAC模板庫是對(duì)外公布的,因此客戶端也可以根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)以及行業(yè)特點(diǎn),選取RBAC模板,并將RBAC模板發(fā)送給云服務(wù)器。本發(fā)明實(shí)施例對(duì)此不作限定。
[0055]RBAC模板的表示形式可以是多種方式,例如角色層次結(jié)構(gòu),或者通過表格記錄的形式表示角色集合以及該角色集合的層次結(jié)構(gòu)等。
[0056]下面將舉例說明RBAC模板的形式。圖4是根據(jù)本發(fā)明實(shí)施例的RBAC模板的角色層次結(jié)構(gòu)的一個(gè)例子的示意圖。假設(shè)云服務(wù)器根據(jù)UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,獲取的RBAC模板的一個(gè)例子如圖4所示。在圖4中,RBAC模板中的角色集合R={rl, r2, r3, r4, r5, r6},對(duì)應(yīng)的權(quán)限集合為{pi, p2, p3, p4, p5, p6}。此外,該 RBAC 模板還可以通過兩個(gè)表進(jìn)行表示,表示角色集合R以及該角色集合R的層次結(jié)構(gòu),如表1和表2所示。表1和表2是圖4所示的角色集合的另一表現(xiàn)形式。其中表1記錄了角色間的關(guān)系(如繼承、沖突等)。表2記錄了表1中的角色與權(quán)限之間的匹配關(guān)系。
[0057]表1角色之間的關(guān)系
【權(quán)利要求】
1.一種構(gòu)建基于角色的訪問控制RBAC系統(tǒng)的方法,其特征在于,包括: 從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,所述請(qǐng)求消息攜帶用戶權(quán)限分配UPA數(shù)據(jù); 獲取RBAC模板,并根據(jù)所述RBAC模板和所述UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合; 根據(jù)所述第一角色集合和所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合; 向所述客戶端發(fā)送所述RBAC角色集合,以便所述客戶端根據(jù)所述RBAC角色集合構(gòu)建RBAC系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述RBAC模板和所述UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合,包括: 對(duì)所述RBAC模板和所述UPA數(shù)據(jù)進(jìn)行角色匹配,確定具有層次結(jié)構(gòu)的第二角色集合; 向所述客戶端發(fā)送所述第二角色集合; 從所述客戶端接收所述客戶端對(duì)所述第二角色集合的調(diào)整方案; 根據(jù)所述調(diào)整方案對(duì)所述第二角色集合進(jìn)行調(diào)整,以確定所述第一角色集合。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)所述第一角色集合和所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定具有層次結(jié)構(gòu)的RBAC角色集合,包括: 基于所述第一角色集合對(duì)所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于所述第一角色集合對(duì)所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合,包括: 根據(jù)用于解決最小擾動(dòng)的帶層次結(jié)構(gòu)的角色挖掘問題MinPert-RHMP的算法,基于所述第一角色集合對(duì)所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)所述第一角色集合和所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定具有層次結(jié)構(gòu)的RBAC角色集合,包括: 確定所述UPA數(shù)據(jù)中與所述第一角色集合的角色沒有匹配的剩余UPA數(shù)據(jù); 對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定具有層次結(jié)構(gòu)的第三角色集合; 將所述第一角色集合與所述第三角色集合進(jìn)行合并,以確定所述RBAC角色集合。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定具有層次結(jié)構(gòu)的第三角色集合,包括: 根據(jù)用于解決帶層次結(jié)構(gòu)的角色挖掘問題RHMP的算法,對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定所述第三角色集合。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定具有層次結(jié)構(gòu)的第三角色集合,包括: 根據(jù)用于解決角色挖掘問題RMP的算法,對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定不具有層次結(jié)構(gòu)的第三角色集合; 根據(jù)用于解決角色層次結(jié)構(gòu)構(gòu)建問題RHBP的算法,為所述不具有層次結(jié)構(gòu)的第三角色集合構(gòu)造層次結(jié)構(gòu)。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述獲取RBAC模板,包括: 根據(jù)所述UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,從存儲(chǔ)于云服務(wù)器的RBAC模板庫中選取所述RBAC模板;或者,從所述客戶端接收所述RBAC模板,其中所述RBAC模板是所述客戶端根據(jù)所述UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息從所述RBAC模板庫中選取的。
9.一種云服務(wù)器,其特征在于,包括: 接收模塊,用于從客戶端接收用于請(qǐng)求構(gòu)造具有層次結(jié)構(gòu)的RBAC角色集合的請(qǐng)求消息,所述請(qǐng)求消息攜帶用戶權(quán)限分配UPA數(shù)據(jù); 角色匹配模塊,用于從所述接收模塊接收所述UPA數(shù)據(jù),并獲取RBAC模板,根據(jù)所述RBAC模板和所述UPA數(shù)據(jù)進(jìn)行角色匹配,以確定具有層次結(jié)構(gòu)的第一角色集合; 角色挖掘模塊,用于從所述角色匹配模塊接收所述第一角色集合,并根據(jù)所述第一角色集合和所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合; 發(fā)送模塊,用于從所述角色挖掘模塊接收所述RBAC角色集合,并向所述客戶端發(fā)送所述RBAC角色集合,以便所述客戶端根據(jù)所述RBAC角色集合構(gòu)建RBAC系統(tǒng)。
10.根據(jù)權(quán)利要求9所述的云服務(wù)器,其特征在于,所述角色匹配模塊具體用于對(duì)所述RBAC模板和所述UPA數(shù)據(jù)進(jìn)行角色匹配,確定具有層次結(jié)構(gòu)的第二角色集合;向所述客戶端發(fā)送所述第二角色集合;從所述客戶端接收所述客戶端對(duì)所述第二角色集合的調(diào)整方案;根據(jù)所述調(diào)整方案對(duì)所述第二角色集合進(jìn)行調(diào)整,以確定所述第一角色集合。
11.根據(jù)權(quán)利要求9或10所述的云服務(wù)器,其特征在于,所述角色挖掘模塊具體用于基于所述第一角色集合對(duì)所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合。
12.根據(jù)權(quán)利要求11所述的云服務(wù)器,其特征在于,所述角色挖掘模塊具體用于根據(jù)用于解決最小擾動(dòng)的帶層次結(jié)構(gòu)的角色挖掘問題MinPert-RHMP的算法,基于所述第一角色集合對(duì)所述UPA數(shù)據(jù)進(jìn)行角色挖掘,以確定所述RBAC角色集合。
13.根據(jù)權(quán)利要求9或10所述的云服務(wù)器,其特征在于,所述角色挖掘模塊具體用于確定所述UPA數(shù)據(jù)中與所述第一角色集合的角色沒有匹配的剩余UPA數(shù)據(jù);對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定具有層次結(jié)構(gòu)的第三角色集合;將所述第一角色集合與所述第三角色集合進(jìn)行合并,以確定所述RBAC角色集合。
14.根據(jù)權(quán)利要求13所述的云服務(wù)器,其特征在于,所述角色挖掘模塊具體用于根據(jù)用于解決帶層次結(jié)構(gòu)的角色挖掘問題RHMP的算法,對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定所述第三角色集合。
15.根據(jù)權(quán)利要求13所述的云服務(wù)器,其特征在于,所述角色挖掘模塊具體用于根據(jù)用于解決角色挖掘問題RMP的算法,對(duì)所述剩余UPA數(shù)據(jù)進(jìn)行角色挖掘,確定不具有層次結(jié)構(gòu)的第三角色集合;根據(jù)用于解決角色層次結(jié)構(gòu)構(gòu)建問題RHBP的算法,為所述不具有層次結(jié)構(gòu)的第三角色集合構(gòu)造層次結(jié)構(gòu)。
16.根據(jù)權(quán)利要求9至15中任一項(xiàng)所述的云服務(wù)器,其特征在于,所述角色匹配模塊具體用于根據(jù)所述UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息,從存儲(chǔ)于云服務(wù)器的RBAC模板庫中選取所述RBAC模板;或者,從所述客戶端接收所述RBAC模板,其中所述RBAC模板是所述客戶端根據(jù)所述UPA數(shù)據(jù)所關(guān)聯(lián)的行業(yè)信息從所述RBAC模板庫中選取的。
【文檔編號(hào)】H04L29/08GK103514412SQ201210213506
【公開日】2014年1月15日 申請(qǐng)日期:2012年6月26日 優(yōu)先權(quán)日:2012年6月26日
【發(fā)明者】魏何, 張新文, 吳曉昕 申請(qǐng)人:華為技術(shù)有限公司