一種用戶權(quán)限控制方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于用戶權(quán)限管理領(lǐng)域,尤其涉及一種用戶權(quán)限控制方法和裝置。
【背景技術(shù)】
[0002]在多用戶系統(tǒng)中,根據(jù)用戶的權(quán)限和職位的不同,需要為用戶分配不同的權(quán)限,從而為用戶提供更為安全可靠的系統(tǒng)服務(wù)。
[0003]RBAC(英文全為Role-Based Access Control,中文全稱為基于角色的訪問(wèn)控制規(guī)范),是目前公認(rèn)的解決企業(yè)級(jí)應(yīng)用系統(tǒng)權(quán)限管理的有效方法。在RBAC中,權(quán)限與角色相關(guān)聯(lián),用戶通過(guò)成為適當(dāng)角色,從而得到這些角色的權(quán)限,極大地簡(jiǎn)化了權(quán)限的管理復(fù)雜度。
[0004]RBAC有三個(gè)安全原則:最小權(quán)限原則,責(zé)任分離原則和數(shù)據(jù)抽象原則。而RBAC96是最基礎(chǔ)的RBAC規(guī)范,它包括4種模型:基本模型RBAC0,角色分級(jí)模型RBAC1,限制模型RBAC2,統(tǒng)一模型RBAC3。其中的限制模型描述了實(shí)現(xiàn)責(zé)任分離原則。
[0005]RBAC2中的一個(gè)基本限制是互斥角色的限制,互斥角色是指各自權(quán)限互相制約的兩個(gè)角色。對(duì)于這類角色一個(gè)用戶在某一次活動(dòng)中只能被分配其中的一個(gè)角色,不能同時(shí)獲得兩個(gè)角色的使用權(quán)。
[0006]例如,在審計(jì)活動(dòng)中,一個(gè)用戶不能同時(shí)被指派給會(huì)計(jì)角色和審計(jì)員角色?;蛘?,在公司中,經(jīng)理和副經(jīng)理的角色也是互斥的,合同或支票只能由經(jīng)理簽字,不能由副經(jīng)理簽字。在為公司建立的RBAC2模型中,一個(gè)用戶不能同時(shí)兼得經(jīng)理和副經(jīng)理兩個(gè)角色。限制模型的互斥限制可以支持權(quán)責(zé)分離原則的實(shí)現(xiàn)。
[0007]目前常見(jiàn)的互斥限制方法是采用函數(shù)來(lái)實(shí)現(xiàn),當(dāng)為用戶指定角色或?yàn)榻巧峙錂?quán)限時(shí)就調(diào)用這些函數(shù)進(jìn)行檢查,根據(jù)函數(shù)返回的結(jié)果決定分配是否滿足限制的要求,通常只對(duì)那些可被有效檢查和那些慣例性的一些簡(jiǎn)單限制能夠進(jìn)行實(shí)現(xiàn)。
[0008]采用函數(shù)的方式實(shí)現(xiàn)互斥限制,其方法較為靈活,可以實(shí)現(xiàn)任意的限制。但是,隨著用戶的增加,要為每個(gè)用戶授權(quán)時(shí),需要逐個(gè)比對(duì)與其它用戶的權(quán)限的兼容性,不僅比較麻煩,而且容易出錯(cuò)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的在于提供一種用戶權(quán)限控制方法,以解決現(xiàn)有技術(shù)隨著用戶的增加,要為每個(gè)用戶授權(quán)時(shí),需要逐個(gè)比對(duì)與其它用戶的權(quán)限的兼容性,不僅比較麻煩,而且容易出錯(cuò)的問(wèn)題。
[0010]第一方面,本發(fā)明實(shí)施例提供了一種用戶權(quán)限控制方法,所述方法包括:
[0011]獲取用戶待授權(quán)的角色和已授權(quán)的角色;
[0012]獲取預(yù)先設(shè)定的待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組,其中所述內(nèi)互斥組中所有的角色之間互斥,所述外互斥組中所有的角色兼容,所述外互斥組中所有的角色與不在組內(nèi)的所有角色互斥;
[0013]根據(jù)所述待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組判斷是否將待授權(quán)的角色授權(quán)給用戶。
[0014]結(jié)合第一方面,在第一方面的第一種可能實(shí)現(xiàn)方式中,所述根據(jù)所述待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組判斷是否將待授權(quán)的角色授權(quán)給用戶步驟包括:
[0015]判斷待授權(quán)的角色與已授權(quán)的角色是否在同一內(nèi)互斥組;
[0016]如果待授權(quán)的角色與已授權(quán)的角色在同一內(nèi)互斥組,則拒絕授權(quán),否則,進(jìn)一步判斷待授權(quán)的角色所屬的外互斥組是否包括所有已授權(quán)的角色;
[0017]如果待授權(quán)的角色所屬的外互斥組不包括所有已授權(quán)的角色,則拒絕授權(quán),否則,進(jìn)一步判斷已授權(quán)的所有角色所屬的外互斥組是否包含待授權(quán)的角色;
[0018]如果已授權(quán)的所有角色所屬的外互斥組不包括待授權(quán)的角色,則拒絕授權(quán),否則允許授權(quán)。
[0019]結(jié)合第一方面,在第一方面的第二種可能實(shí)現(xiàn)方式中,所述方法還包括:
[0020]當(dāng)用戶不存在已授權(quán)角色時(shí),則允許授權(quán)。
[0021]結(jié)合第一方面,在第一方面的第三種可能實(shí)現(xiàn)方式中,所述根據(jù)所述待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組判斷是否將待授權(quán)的角色授權(quán)給用戶步驟包括:
[0022]如果待授權(quán)角色所屬的同一個(gè)外互斥組中包括所有已授權(quán)角色,則允許授權(quán)。
[0023]結(jié)合第一方面,在第一方面的第四種可能實(shí)現(xiàn)方式中,在所述獲取預(yù)先設(shè)定的待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組步驟之前,所述方法還包括:
[0024]建立系統(tǒng)的內(nèi)互斥組和外互斥組,所述內(nèi)互斥組的個(gè)數(shù)包括零個(gè)、一個(gè)或者一個(gè)以上,所述外互斥組的個(gè)數(shù)包括零個(gè)、一個(gè)或者一個(gè)以上,所述內(nèi)互斥組至少包括兩個(gè)角色,所述外互斥組至少包括一個(gè)角色。。
[0025]第二方面,本發(fā)明實(shí)施例提供了一種用戶權(quán)限控制裝置,所述裝置包括:
[0026]角色獲取單元,用于獲取用戶待授權(quán)的角色和已授權(quán)的角色;
[0027]關(guān)系組獲取單元,用于獲取預(yù)先設(shè)定的待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組,其中所述內(nèi)互斥組中所有的角色之間互斥,所述外互斥組中所有的角色兼容,所述外互斥組中所有的角色與不在組內(nèi)的所有角色互斥;
[0028]第一授權(quán)單元,用于根據(jù)所述待授權(quán)角色和已授權(quán)角色所屬的內(nèi)互斥組和外互斥組判斷是否將待授權(quán)的角色授權(quán)給用戶。
[0029]結(jié)合第二方面,在第二方面的第一種可能實(shí)現(xiàn)方式中,所述第一授權(quán)單元包括:
[0030]第一判斷子單元,用于判斷待授權(quán)的角色與已授權(quán)的角色是否在同一內(nèi)互斥組;
[0031]第二判斷子單元,用于如果待授權(quán)的角色與已授權(quán)的角色在同一內(nèi)互斥組,則拒絕授權(quán),否則,進(jìn)一步判斷待授權(quán)的角色所屬的外互斥組是否包括所有已授權(quán)的角色;
[0032]第三判斷子單元,用于如果待授權(quán)的角色所屬的外互斥組不包括所有已授權(quán)的角色,則拒絕授權(quán),否則,進(jìn)一步判斷已授權(quán)的所有角色所屬的外互斥組是否包含待授權(quán)的角色;
[0033]授權(quán)子單元,用于如果已授權(quán)的所有角色所屬的外互斥組不包括待授權(quán)的角色,則拒絕授權(quán),否則允許授權(quán)。
[0034]結(jié)合第二方面,在第二方面的第二種可能實(shí)現(xiàn)方式中,所述裝置還包括:
[0035]第二授權(quán)單元,用于當(dāng)用戶不存在已授權(quán)角色時(shí),則允許授權(quán)。
[0036]結(jié)合第二方面,在第二方面的第三種可能實(shí)現(xiàn)方式中,所述第一授權(quán)單元具體用于:
[0037]如果待授權(quán)角色所屬的同一個(gè)外互斥組中包括所有已授權(quán)角色,則允許授權(quán)。
[0038]結(jié)合第二方面,在第二方面的第四種可能實(shí)現(xiàn)方式中,所述裝置還包括:
[0039]關(guān)系組建立單元,用于建立系統(tǒng)的內(nèi)互斥組和外互斥組,所述內(nèi)互斥組的個(gè)數(shù)包括零個(gè)、一個(gè)或者一個(gè)以上,所述外互斥組的個(gè)數(shù)包括零個(gè)、一個(gè)或者一個(gè)以上,所述內(nèi)互斥組至少包括兩個(gè)角色,所述外互斥組至少包括一個(gè)角色。
[0040]在本發(fā)明中,通過(guò)獲取用戶待授權(quán)角色和已授權(quán)角色,根據(jù)預(yù)先設(shè)定的待授權(quán)角色所屬的內(nèi)互斥組和外互斥組,以及已授權(quán)角色所屬的內(nèi)互斥組和外互斥組進(jìn)行判斷從而決定是否將待授權(quán)角色授權(quán)給用戶。和現(xiàn)有的函數(shù)比較方式相比,本發(fā)明所述用戶權(quán)限控制方法,權(quán)限比較過(guò)程相對(duì)簡(jiǎn)單,控制精度較高,大大的提高了用戶權(quán)限的控制效率。
【附圖說(shuō)明】
[0041]圖1是本發(fā)明第一實(shí)施例提供的用戶權(quán)限控制方法的實(shí)現(xiàn)流程圖;
[0042]圖2是本發(fā)明第二實(shí)施例提供的根據(jù)關(guān)系組進(jìn)行用戶授權(quán)方法的實(shí)現(xiàn)流程圖;
[0043]圖3是本發(fā)明第三實(shí)施例提供的用戶權(quán)限控制裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0045]本發(fā)明實(shí)施例所述用戶權(quán)限控制方法,目的在于解決現(xiàn)有技術(shù)中對(duì)用戶權(quán)限進(jìn)行控制時(shí),需要通過(guò)函數(shù)運(yùn)算,逐個(gè)比較為用戶指定的角色是否和已授權(quán)的角色沖突,通過(guò)函數(shù)的返回結(jié)果決定分配是否滿足限制的要求。這樣對(duì)于一套系統(tǒng)來(lái)說(shuō),對(duì)