本發(fā)明屬于應(yīng)用系統(tǒng)/業(yè)務(wù)系統(tǒng)的權(quán)限控制技術(shù)領(lǐng)域,尤其涉及一種訪問控制方法及系統(tǒng)。
背景技術(shù):
授權(quán)訪問控制是一般的軟件系統(tǒng)都具有的基礎(chǔ)功能,最經(jīng)典的是基于角色的訪問控制(RBAC,Role-Based Access Control),RBAC模型一般包括:用戶(主體)、角色、資源(如菜單、功能、統(tǒng)一資源定位符URL)等,其中,用戶、角色及資源具體是m:n:q(m、n、q均為自然數(shù))的關(guān)系,即一個(gè)用戶可以擁有多個(gè)角色,一個(gè)角色擁有多個(gè)資源。一個(gè)用戶擁有哪些菜單、能夠使用哪些功能(操作),都可以根據(jù)這三層關(guān)系確定。
基于RBAC模型的訪問控制方式較為單一,其無法滿足大型企業(yè)級(jí)系統(tǒng)針對不同業(yè)務(wù)場景的更細(xì)粒度的控制要求,如假設(shè)某系統(tǒng)包括工程、檔案、資料庫等業(yè)務(wù)場景,針對工程場景,要求在RBAC模型的基礎(chǔ)上按工程進(jìn)行授權(quán),比如某用戶能夠訪問工程A的施工日志,可以對工程A的施工日志進(jìn)行添加、修改、刪除等操作;但對工程B的施工日志,只能查看,不能添加、修改或刪除;對工程C的施工日志則所有功能和數(shù)據(jù)都不可見,而另一用戶則擁有對工程A、B、C的全權(quán)訪問權(quán)限(查看、新建、修改、刪除)等,RBAC模型由于控制方式較為單一,則無法按照業(yè)務(wù)場景實(shí)現(xiàn)更細(xì)粒度的授權(quán)控制。
傳統(tǒng)方式下,針對大型企業(yè)級(jí)系統(tǒng)針對不同業(yè)務(wù)場景的控制要求,一般將系統(tǒng)按不同業(yè)務(wù)場景,如以上的工程、檔案、資料庫等拆分成不同的子系統(tǒng),并針對每一子系統(tǒng),根據(jù)業(yè)務(wù)需求通過硬編碼方式在業(yè)務(wù)層面對其訪問控制策略進(jìn)行定制開發(fā),此種方式存在開發(fā)效率低、隨意性大的弊端,且缺乏系統(tǒng)級(jí)的標(biāo)準(zhǔn)控制邏輯,各子系統(tǒng)之間的控制策略可能不一致,導(dǎo)致影響系統(tǒng)架構(gòu)穩(wěn)定和用戶操作體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種訪問控制方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)的控制方式存在的問題,支持對業(yè)務(wù)系統(tǒng)的不同業(yè)務(wù)場景進(jìn)行更細(xì)粒度的權(quán)限控制。
為此,本發(fā)明公開如下技術(shù)方案:
一種訪問控制方法,包括:
截獲用戶向業(yè)務(wù)系統(tǒng)發(fā)出的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括第一用戶標(biāo)識(shí)、授權(quán)實(shí)例標(biāo)識(shí)及資源標(biāo)識(shí);其中,所述業(yè)務(wù)系統(tǒng)包括至少一個(gè)業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,所述授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng);所述資源標(biāo)識(shí)對應(yīng)的目標(biāo)資源屬于目標(biāo)授權(quán)實(shí)例對應(yīng)的資源集合,所述目標(biāo)授權(quán)實(shí)例為所述授權(quán)實(shí)例標(biāo)識(shí)對應(yīng)的授權(quán)實(shí)例;
基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)及預(yù)先存儲(chǔ)的授權(quán)關(guān)系數(shù)據(jù),驗(yàn)證所述用戶是否具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限;
如果具有,則發(fā)送所述業(yè)務(wù)請求至所述業(yè)務(wù)系統(tǒng),使得所述業(yè)務(wù)系統(tǒng)響應(yīng)所述業(yè)務(wù)請求;如果不具有,則進(jìn)行預(yù)定的錯(cuò)誤處理。
上述方法,優(yōu)選的,所述業(yè)務(wù)系統(tǒng)中的每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)領(lǐng)域,每個(gè)所述授權(quán)領(lǐng)域?qū)?yīng)一授權(quán)實(shí)例集合及一候選角色集合;所述候選角色集合中的每一候選角色與相對應(yīng)授權(quán)領(lǐng)域下的至少一個(gè)授權(quán)實(shí)例對應(yīng)的部分或全部資源相對應(yīng);所述授權(quán)關(guān)系數(shù)據(jù)包括用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系,所述授權(quán)角色屬于所述候選角色集合;
則所述基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)及預(yù)先存儲(chǔ)的授權(quán)關(guān)系數(shù)據(jù),驗(yàn)證所述用戶是否具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限包括:
依據(jù)已授權(quán)用戶的用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系,以及各候選角色與相應(yīng)授權(quán)實(shí)例及資源間的對應(yīng)關(guān)系,驗(yàn)證所述第一用戶標(biāo)識(shí)與所述目標(biāo)授權(quán)實(shí)例及所述目標(biāo)資源是否匹配;
如果匹配,則所述用戶具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限;如果不匹配,則所述用戶不具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限。
上述方法,優(yōu)選的,所述業(yè)務(wù)系統(tǒng)對應(yīng)一全局授權(quán)領(lǐng)域,所述全局授權(quán)領(lǐng)域?qū)?yīng)且僅對應(yīng)一個(gè)系統(tǒng)級(jí)授權(quán)實(shí)例,所述系統(tǒng)級(jí)授權(quán)實(shí)例對應(yīng)的資源集合為由所述業(yè)務(wù)系統(tǒng)的系統(tǒng)級(jí)資源構(gòu)成的集合。
上述方法,優(yōu)選的,還包括:
當(dāng)所述業(yè)務(wù)系統(tǒng)的業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生變化時(shí),對發(fā)生變化的應(yīng)用實(shí)例進(jìn)行同步的授權(quán)實(shí)例信息更新。
上述方法,優(yōu)選的,所述當(dāng)所述業(yè)務(wù)系統(tǒng)的業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生變化時(shí),對發(fā)生變化的應(yīng)用實(shí)例進(jìn)行同步的授權(quán)實(shí)例信息更新包括:
當(dāng)業(yè)務(wù)場景產(chǎn)生新增的應(yīng)用實(shí)例時(shí),通過預(yù)設(shè)的同步接口為所述業(yè)務(wù)場景新增的應(yīng)用實(shí)例產(chǎn)生相對應(yīng)的授權(quán)實(shí)例;
當(dāng)業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生修改時(shí),通過所述同步接口對所述業(yè)務(wù)場景發(fā)生修改的應(yīng)用實(shí)例對應(yīng)的授權(quán)實(shí)例進(jìn)行相應(yīng)的信息修改;
當(dāng)業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例被刪除時(shí),通過所述同步接口清除被刪除的應(yīng)用實(shí)例所對應(yīng)的授權(quán)實(shí)例。
一種訪問控制系統(tǒng),包括:
截獲模塊,用于截獲用戶向業(yè)務(wù)系統(tǒng)發(fā)出的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括第一用戶標(biāo)識(shí)、授權(quán)實(shí)例標(biāo)識(shí)及資源標(biāo)識(shí);其中,所述業(yè)務(wù)系統(tǒng)包括至少一個(gè)業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,所述授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng);所述資源標(biāo)識(shí)對應(yīng)的目標(biāo)資源屬于目標(biāo)授權(quán)實(shí)例對應(yīng)的資源集合,所述目標(biāo)授權(quán)實(shí)例為所述授權(quán)實(shí)例標(biāo)識(shí)對應(yīng)的授權(quán)實(shí)例;
驗(yàn)證模塊,用于基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)及預(yù)先存儲(chǔ)的授權(quán)關(guān)系數(shù)據(jù),驗(yàn)證所述用戶是否具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限;
控制模塊,用于在驗(yàn)證通過時(shí),則發(fā)送所述業(yè)務(wù)請求至所述業(yè)務(wù)系統(tǒng),使得所述業(yè)務(wù)系統(tǒng)響應(yīng)所述業(yè)務(wù)請求;在驗(yàn)證不通過時(shí),進(jìn)行預(yù)定的錯(cuò)誤處理。
上述系統(tǒng),優(yōu)選的,所述業(yè)務(wù)系統(tǒng)中的每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)領(lǐng)域,每個(gè)所述授權(quán)領(lǐng)域?qū)?yīng)一授權(quán)實(shí)例集合及一候選角色集合;所述候選角色集合中的每一候選角色與相對應(yīng)授權(quán)領(lǐng)域下的至少一個(gè)授權(quán)實(shí)例對應(yīng)的部分或全部資源相對應(yīng);所述授權(quán)關(guān)系數(shù)據(jù)包括用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系,所述授權(quán)角色屬于所述候選角色集合;
則所述驗(yàn)證模塊包括:
驗(yàn)證單元,用于依據(jù)已授權(quán)用戶的用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系,以及各候選角色與相應(yīng)授權(quán)實(shí)例及資源間的對應(yīng)關(guān)系,驗(yàn)證所述第一用戶標(biāo)識(shí)與所述目標(biāo)授權(quán)實(shí)例及所述目標(biāo)資源是否匹配;
確定單元,用于在匹配時(shí),確定所述用戶具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限;在不匹配,確定所述用戶不具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限。
上述系統(tǒng),優(yōu)選的,還包括:
同步更新模塊,用于在所述業(yè)務(wù)系統(tǒng)的業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生變化時(shí),對發(fā)生變化的應(yīng)用實(shí)例進(jìn)行同步的授權(quán)實(shí)例信息更新。
上述系統(tǒng),優(yōu)選的,所述同步更新模塊包括:
第一同步單元,用于在業(yè)務(wù)場景產(chǎn)生新增的應(yīng)用實(shí)例時(shí),通過預(yù)設(shè)的同步接口為所述業(yè)務(wù)場景新增的應(yīng)用實(shí)例產(chǎn)生相對應(yīng)的授權(quán)實(shí)例;
第二同步單元,用于在業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生修改時(shí),通過所述同步接口對所述業(yè)務(wù)場景發(fā)生修改的應(yīng)用實(shí)例對應(yīng)的授權(quán)實(shí)例進(jìn)行相應(yīng)的信息修改;
第三同步單元,用于在業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例被刪除時(shí),通過所述同步接口清除被刪除的應(yīng)用實(shí)例所對應(yīng)的授權(quán)實(shí)例。
綜上所述,大型的企業(yè)級(jí)業(yè)務(wù)系統(tǒng)往往包含至少一個(gè)業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景會(huì)對應(yīng)包含至少一個(gè)應(yīng)用實(shí)例,基于此,本申請方法在RBAC模型的基礎(chǔ)上,增加了新的模型對象——授權(quán)實(shí)例,其中,授權(quán)實(shí)例與業(yè)務(wù)系統(tǒng)中業(yè)務(wù)場景的具體應(yīng)用實(shí)例相對應(yīng),也就是說,業(yè)務(wù)系統(tǒng)包含的每個(gè)業(yè)務(wù)場景均對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng)。由此可見,本申請方法通過新增的模型對象——授權(quán)實(shí)例,可實(shí)現(xiàn)對業(yè)務(wù)系統(tǒng)按各業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)資源劃分,在應(yīng)用本申請時(shí),可基于這一更細(xì)粒度的授權(quán)資源劃分情況,在權(quán)限控制層面針對每個(gè)業(yè)務(wù)場景分別設(shè)置該場景下對應(yīng)于不同資源權(quán)限的多個(gè)候選角色,即實(shí)現(xiàn)了按業(yè)務(wù)場景進(jìn)行場景下的候選角色設(shè)置,后續(xù)在用戶訪問系統(tǒng)時(shí),可基于用戶具有的業(yè)務(wù)場景下的角色,對其按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的訪問權(quán)限控制,可見本申請克服了現(xiàn)有技術(shù)存在的問題,可有效滿足大型企業(yè)級(jí)系統(tǒng)針對不同業(yè)務(wù)場景的更細(xì)粒度的控制要求。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一提供的訪問控制方法流程圖;
圖2是本發(fā)明實(shí)施例二提供的訪問控制方法流程圖;
圖3-圖4是本發(fā)明實(shí)施例三提供的訪問控制系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了引用和清楚起見,下文中使用的技術(shù)名詞、簡寫或縮寫總結(jié)解釋如下:
資源:系統(tǒng)具有的功能資源信息,是一個(gè)樹型結(jié)構(gòu),包括系統(tǒng)的菜單、功能(按鈕)、服務(wù)或接口地址等。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
本申請實(shí)施例一提供一種訪問控制方法,該方法適用于對大型企業(yè)級(jí)系統(tǒng)按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)控制,參考圖1示出的訪問控制方法流程圖,該方法可以包括以下步驟:
S101:截獲用戶向業(yè)務(wù)系統(tǒng)發(fā)出的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括第一用戶標(biāo)識(shí)、授權(quán)實(shí)例標(biāo)識(shí)及資源標(biāo)識(shí);其中,所述業(yè)務(wù)系統(tǒng)包括至少一個(gè)業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,所述授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng);所述資源標(biāo)識(shí)對應(yīng)的目標(biāo)資源屬于目標(biāo)授權(quán)實(shí)例對應(yīng)的資源集合,所述目標(biāo)授權(quán)實(shí)例為所述授權(quán)實(shí)例標(biāo)識(shí)對應(yīng)的授權(quán)實(shí)例。
S102:基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)及預(yù)先存儲(chǔ)的授權(quán)關(guān)系數(shù)據(jù),驗(yàn)證所述用戶是否具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限。
S103:如果具有,則發(fā)送所述業(yè)務(wù)請求至所述業(yè)務(wù)系統(tǒng),使得所述業(yè)務(wù)系統(tǒng)響應(yīng)所述業(yè)務(wù)請求。
S104:如果不具有,則進(jìn)行預(yù)定的錯(cuò)誤處理。
接下來對本申請方案的實(shí)現(xiàn)過程進(jìn)行詳細(xì)說明。
大型的企業(yè)級(jí)業(yè)務(wù)系統(tǒng)往往包含至少一個(gè)業(yè)務(wù)場景,如工程、檔案及資料庫等業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景會(huì)對應(yīng)包含至少一個(gè)應(yīng)用實(shí)例,以工程為例,其可以包括工程A、工程B、工程C等應(yīng)用實(shí)例,各應(yīng)用實(shí)例分別提供相應(yīng)的資源集合,如菜單、功能和/或URL(Uniform Resoure Locator,統(tǒng)一資源定位符)等各種資源。基于大型企業(yè)級(jí)系統(tǒng)存在的針對不同業(yè)務(wù)場景的更細(xì)粒度的控制需求,本申請方法在RBAC模型的基礎(chǔ)上,增加了新的模型對象——授權(quán)實(shí)例,其中,授權(quán)實(shí)例與業(yè)務(wù)系統(tǒng)中業(yè)務(wù)場景的具體應(yīng)用實(shí)例相對應(yīng),也就是說,業(yè)務(wù)系統(tǒng)包含的每個(gè)業(yè)務(wù)場景均對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng)。
本申請同時(shí)針對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)場景增加授權(quán)領(lǐng)域這一對象,其中授權(quán)領(lǐng)域用于對業(yè)務(wù)系統(tǒng)按不同業(yè)務(wù)場景進(jìn)行授權(quán)控制時(shí)的領(lǐng)域劃分,假設(shè)業(yè)務(wù)系統(tǒng)包括工程、檔案及資料庫等不同場景,則可對應(yīng)將業(yè)務(wù)系統(tǒng)的授權(quán)領(lǐng)域劃分為系統(tǒng)領(lǐng)域、工程領(lǐng)域、檔案領(lǐng)域及資料庫領(lǐng)域等各個(gè)授權(quán)領(lǐng)域,一個(gè)授權(quán)領(lǐng)域?qū)?yīng)一個(gè)業(yè)務(wù)場景,而對于系統(tǒng)領(lǐng)域,則其具體與整個(gè)業(yè)務(wù)系統(tǒng)相對應(yīng),是系統(tǒng)級(jí)的授權(quán)領(lǐng)域。
某一業(yè)務(wù)場景對應(yīng)的各個(gè)授權(quán)實(shí)例具體是該業(yè)務(wù)場景所對應(yīng)的授權(quán)領(lǐng)域下的實(shí)例,即一個(gè)業(yè)務(wù)場景對應(yīng)的授權(quán)領(lǐng)域可對應(yīng)包含一相應(yīng)的授權(quán)實(shí)例集合,仍以工程場景為例,在該場景對應(yīng)的授權(quán)領(lǐng)域即工程領(lǐng)域下,可對應(yīng)包括工程A授權(quán)實(shí)例、工程B授權(quán)實(shí)例、工程C授權(quán)實(shí)例等等,其中,授權(quán)實(shí)例具體為對業(yè)務(wù)系統(tǒng)按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)控制時(shí),所需的針對業(yè)務(wù)場景應(yīng)用實(shí)例的一些關(guān)聯(lián)基礎(chǔ)數(shù)據(jù),比如所述工程A授權(quán)實(shí)例具體可以包括工程A的工程編號(hào)、負(fù)責(zé)人員和/或臺(tái)賬信息等用于與業(yè)務(wù)系統(tǒng)中的工程A相關(guān)聯(lián)的一些基礎(chǔ)數(shù)據(jù),而對于檔案授權(quán)實(shí)例,則其具體可以包括檔案分類號(hào),如工程檔案號(hào)、財(cái)務(wù)檔案號(hào)等,通過包含的一些必要的關(guān)聯(lián)基礎(chǔ)數(shù)據(jù),授權(quán)實(shí)例可實(shí)現(xiàn)與業(yè)務(wù)系統(tǒng)中相應(yīng)業(yè)務(wù)場景下的相應(yīng)應(yīng)用實(shí)例相關(guān)聯(lián),進(jìn)而可實(shí)現(xiàn)與相應(yīng)應(yīng)用實(shí)例提供的一系列資源相關(guān)聯(lián)。
而系統(tǒng)領(lǐng)域只有一個(gè)實(shí)例,其代表整個(gè)系統(tǒng)本身,該實(shí)例對應(yīng)的資源具體為系統(tǒng)級(jí)別的資源,即業(yè)務(wù)系統(tǒng)中各個(gè)業(yè)務(wù)場景所提供的資源之外的資源。從而,本申請中,業(yè)務(wù)系統(tǒng)提供的某一個(gè)資源一定屬于某一個(gè)授權(quán)領(lǐng)域,具體按該資源屬于系統(tǒng)級(jí)資源或場景級(jí)資源分別對應(yīng)屬于系統(tǒng)領(lǐng)域或相應(yīng)業(yè)務(wù)場景對應(yīng)的授權(quán)領(lǐng)域。
在增加授權(quán)領(lǐng)域和授權(quán)實(shí)例兩個(gè)對象的基礎(chǔ)上,本申請利用授權(quán)領(lǐng)域及授權(quán)對象對業(yè)務(wù)系統(tǒng)按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)資源劃分,具體地,可在權(quán)限控制層面針對業(yè)務(wù)系統(tǒng)包括的業(yè)務(wù)場景構(gòu)建授權(quán)領(lǐng)域,例如針對業(yè)務(wù)系統(tǒng)包括的工程、檔案、資料庫等業(yè)務(wù)場景,構(gòu)建相應(yīng)的工程、檔案、資料庫等授權(quán)領(lǐng)域,并在每一授權(quán)領(lǐng)域下,按相應(yīng)業(yè)務(wù)場景包含的應(yīng)用實(shí)例,構(gòu)建該授權(quán)領(lǐng)域下的授權(quán)實(shí)例集合,同時(shí)針對每一授權(quán)實(shí)例,為其關(guān)聯(lián)相應(yīng)應(yīng)用實(shí)例提供的資源集合的資源信息。在權(quán)項(xiàng)控制層面所創(chuàng)建的包含授權(quán)領(lǐng)域、授權(quán)實(shí)例、資源信息的三級(jí)架構(gòu),實(shí)現(xiàn)了對業(yè)務(wù)系統(tǒng)按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)資源劃分。
之后,可針對各個(gè)授權(quán)領(lǐng)域進(jìn)行相互獨(dú)立的角色設(shè)置,對于某一授權(quán)領(lǐng)域,具體可根據(jù)該領(lǐng)域的實(shí)際業(yè)務(wù)需求分別設(shè)置對應(yīng)于不同訪問權(quán)限/資源權(quán)項(xiàng)的多個(gè)候選角色,每一候選角色與相對應(yīng)授權(quán)領(lǐng)域下的至少一個(gè)授權(quán)實(shí)例對應(yīng)的部分或全部資源相對應(yīng);以工程領(lǐng)域?yàn)槔?,可針對工程領(lǐng)域包含的工程A、工程B、工程C等多個(gè)授權(quán)實(shí)例,以及各個(gè)授權(quán)實(shí)例對應(yīng)的不同的資源信息,設(shè)置角色1、角色2、角色3等多個(gè)候選角色,每個(gè)候選角色擁有不同的訪問權(quán)限,例如角色1能夠?qū)こ填I(lǐng)域下所有工程進(jìn)行全權(quán)訪問(查看、增刪該等),角色2能夠訪問工程A的施工日志,可以對工程A的施工日志進(jìn)行添加、修改、刪除等操作;但對工程B的施工日志,只能查看,不能添加、修改或刪除;對工程C的施工日志則所有功能和數(shù)據(jù)都不可見等等。相類似地,對于檔案、資料庫等授權(quán)領(lǐng)域,同樣可按其業(yè)務(wù)需求預(yù)先設(shè)置一系列分別對應(yīng)不同訪問權(quán)限的候選角色。
在此基礎(chǔ)上,可通過為各個(gè)用戶在其所需的授權(quán)領(lǐng)域下為其分配所需的角色,實(shí)現(xiàn)為各個(gè)用戶按業(yè)務(wù)場景配置相應(yīng)的訪問權(quán)限/資源權(quán)限,同一用戶可在多個(gè)業(yè)務(wù)場景/授權(quán)領(lǐng)域下分別擁有相匹配的多個(gè)角色,從而,該用戶可通過其在多個(gè)業(yè)務(wù)場景下?lián)碛械南鄳?yīng)角色,對多個(gè)業(yè)務(wù)場景進(jìn)行相應(yīng)權(quán)限的資源訪問。比如,假設(shè)工程總監(jiān)在工程領(lǐng)域擁有角色x,該角色x可以對工程領(lǐng)域的所有工程資源進(jìn)行全權(quán)訪問,而其在檔案領(lǐng)域擁有角色y,該角色y僅能對工程檔案號(hào)對應(yīng)的相關(guān)檔案進(jìn)行全權(quán)訪問,而對于財(cái)務(wù)檔案號(hào)對應(yīng)的相關(guān)檔案則僅具有查看權(quán)限等,從而工程總監(jiān)可基于所述角色x、角色y分別對工程場景及檔案場景進(jìn)行相應(yīng)權(quán)限的訪問。
通過以上闡述可知,本申請將授權(quán)模型擴(kuò)展為包含用戶、授權(quán)實(shí)例、角色、資源等模型對象,且所述各模型對象:用戶、授權(quán)實(shí)例、角色、資源間存在m:n:q:r的關(guān)系,其中,m、n、q、r均為自然數(shù),通過這一擴(kuò)展的授權(quán)模型,可有效滿足大型企業(yè)級(jí)系統(tǒng)針對不同業(yè)務(wù)場景的更細(xì)粒度的控制要求。
在構(gòu)建授權(quán)模型并基于授權(quán)模型為用戶分配相應(yīng)角色的基礎(chǔ)上,可對用戶對業(yè)務(wù)系統(tǒng)的訪問過程進(jìn)行相應(yīng)的訪問權(quán)限控制。
具體地,在用戶向業(yè)務(wù)系統(tǒng)發(fā)出業(yè)務(wù)請求時(shí),如用戶通過客戶端向業(yè)務(wù)系統(tǒng)發(fā)出業(yè)務(wù)請求時(shí),攔截用戶的業(yè)務(wù)請求,該業(yè)務(wù)請求包括所述用戶的第一用戶標(biāo)識(shí)、授權(quán)實(shí)例標(biāo)識(shí)及資源標(biāo)識(shí)(如用戶ID、授權(quán)實(shí)例ID、資源ID等),其中,該資源標(biāo)識(shí)對應(yīng)的目標(biāo)資源屬于目標(biāo)授權(quán)實(shí)例對應(yīng)的資源集合,所述目標(biāo)授權(quán)實(shí)例為所述授權(quán)實(shí)例標(biāo)識(shí)對應(yīng)的授權(quán)實(shí)例。
之后,基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)在維護(hù)的授權(quán)關(guān)系數(shù)據(jù)中查詢匹配項(xiàng),若匹配成功,則驗(yàn)證通過,否則驗(yàn)證未通過。具體地,可首先通過查詢已授權(quán)的用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系數(shù)據(jù),確定所述第一用戶標(biāo)識(shí)是否存在相匹配的授權(quán)角色,如果存在,則繼續(xù)查詢各候選角色與相應(yīng)授權(quán)實(shí)例及資源間的對應(yīng)關(guān)系數(shù)據(jù),確定該對應(yīng)關(guān)系數(shù)據(jù)中是否存在與所述授權(quán)角色(第一用戶標(biāo)識(shí)對應(yīng)的授權(quán)角色)、所述目標(biāo)授權(quán)實(shí)例、所述目標(biāo)資源相對應(yīng)的匹配項(xiàng),如果存在相應(yīng)匹配項(xiàng),則表征該用戶存在對所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源進(jìn)行訪問的權(quán)限,從而驗(yàn)證通過;否則,則不具備相應(yīng)的訪問權(quán)項(xiàng),驗(yàn)證未通過。
在驗(yàn)證通過時(shí),可對攔截的用戶業(yè)務(wù)請求進(jìn)行放行,將其發(fā)送至所述業(yè)務(wù)系統(tǒng),從而使得所述業(yè)務(wù)系統(tǒng)基于該業(yè)務(wù)請求執(zhí)行相應(yīng)的響應(yīng)操作;如果驗(yàn)證未通過,則向用戶返回錯(cuò)誤信息,訪問失敗。
具體實(shí)施本發(fā)明時(shí),可在應(yīng)用服務(wù)器上實(shí)現(xiàn)本申請?zhí)峁┑氖跈?quán)模型構(gòu)建及權(quán)限控制過程,并將其作為大型應(yīng)用系統(tǒng)的一個(gè)基礎(chǔ)組件,該基礎(chǔ)組件針對業(yè)務(wù)系統(tǒng)的各業(yè)務(wù)場景可提供相一致的系統(tǒng)級(jí)控制策略,本申請所提供的控制策略的開發(fā)過程與業(yè)務(wù)系統(tǒng)中業(yè)務(wù)場景的開發(fā)過程相互獨(dú)立,從而與現(xiàn)有技術(shù)中針對每一業(yè)務(wù)場景,根據(jù)業(yè)務(wù)需求通過硬編碼方式在業(yè)務(wù)層面對其訪問控制策略進(jìn)行定制開發(fā)的方式存在實(shí)質(zhì)不同,因此應(yīng)用本申請方案可有效保證業(yè)務(wù)系統(tǒng)的系統(tǒng)架構(gòu)穩(wěn)定,可提升用戶的操作體驗(yàn)。
由此可見,本申請方法通過新增的模型對象——授權(quán)實(shí)例,可實(shí)現(xiàn)對業(yè)務(wù)系統(tǒng)按各業(yè)務(wù)場景進(jìn)行更細(xì)粒度的授權(quán)資源劃分,在應(yīng)用本申請時(shí),可基于這一更細(xì)粒度的授權(quán)資源劃分情況,在權(quán)限控制層面針對每個(gè)業(yè)務(wù)場景分別設(shè)置該場景下對應(yīng)于不同資源權(quán)限的多個(gè)候選角色,即實(shí)現(xiàn)了按在業(yè)務(wù)場景進(jìn)行候選角色設(shè)置,后續(xù)在用戶訪問系統(tǒng)時(shí),可基于用戶具有的業(yè)務(wù)場景下的角色,對其按業(yè)務(wù)場景進(jìn)行更細(xì)粒度的訪問權(quán)限控制,可見本申請克服了現(xiàn)有技術(shù)存在的問題,可有效滿足大型企業(yè)級(jí)系統(tǒng)針對不同業(yè)務(wù)場景的更細(xì)粒度的控制要求。
實(shí)施例二
本實(shí)施例二中,參考圖2示出的訪問控制方法的流程圖,所述方法還可以包括以下步驟:
S105:當(dāng)所述業(yè)務(wù)系統(tǒng)的業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生變化時(shí),對發(fā)生變化的應(yīng)用實(shí)例進(jìn)行同步的授權(quán)實(shí)例信息更新。
具體地,當(dāng)業(yè)務(wù)場景產(chǎn)生新增的應(yīng)用實(shí)例時(shí),通過預(yù)設(shè)的同步接口在相對應(yīng)的授權(quán)領(lǐng)域下為所述新增的應(yīng)用實(shí)例產(chǎn)生相對應(yīng)的授權(quán)實(shí)例;例如,在工程場景中,如果新增了工程D,則通過所述同步接口在工程領(lǐng)域下生成工程D對應(yīng)的授權(quán)實(shí)例,如生成工程D的工程編號(hào)、負(fù)責(zé)人員等等;
當(dāng)業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生修改時(shí),通過所述同步接口在相對應(yīng)的授權(quán)領(lǐng)域下對發(fā)生修改的應(yīng)用實(shí)例對應(yīng)的授權(quán)實(shí)例進(jìn)行相應(yīng)的信息修改;如當(dāng)工程A的負(fù)責(zé)人員發(fā)生變化時(shí),則通過所述同步接口具體對工程A的授權(quán)實(shí)例中的負(fù)責(zé)人信息進(jìn)行更新;
當(dāng)業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例被刪除時(shí),通過所述同步接口在相對應(yīng)的授權(quán)領(lǐng)域下清除被刪除的應(yīng)用實(shí)例所對應(yīng)的授權(quán)實(shí)例,例如,當(dāng)工程B在業(yè)務(wù)系統(tǒng)中被刪除時(shí),則通過所述同步接口對工程領(lǐng)域下的工程B的授權(quán)實(shí)例進(jìn)行同步刪除。
后續(xù),相應(yīng)管理人員,如系統(tǒng)級(jí)管理人員或業(yè)務(wù)場景級(jí)/授權(quán)領(lǐng)域級(jí)的管理人員可基于同步更新后的新的授權(quán)實(shí)例信息進(jìn)行角色的權(quán)限劃分或授權(quán)。
需要說明的是,系統(tǒng)領(lǐng)域只有一個(gè)實(shí)例,其代表整個(gè)系統(tǒng)本身,不需要進(jìn)行更新同步。還需要說明的是,本實(shí)施例的步驟S105與以上步驟S101-S104的先后執(zhí)行次序不局限于圖2示出的次序,其中,授權(quán)實(shí)例信息的更新是與業(yè)務(wù)系統(tǒng)中業(yè)務(wù)場景產(chǎn)生的相應(yīng)數(shù)據(jù)變化同步進(jìn)行的,即當(dāng)業(yè)務(wù)系統(tǒng)產(chǎn)生相應(yīng)數(shù)據(jù)變化時(shí),數(shù)據(jù)接口實(shí)時(shí)地、同步地更新相應(yīng)的授權(quán)實(shí)例信息,因此實(shí)際應(yīng)用中該步驟S105的執(zhí)行不限于步驟S101-S104的執(zhí)行情況,在步驟S101-S104未執(zhí)行或執(zhí)行過程中均可基于業(yè)務(wù)系統(tǒng)的數(shù)據(jù)變化情況,對授權(quán)實(shí)例信息進(jìn)行所需的實(shí)時(shí)更新。
本實(shí)施例通過在業(yè)務(wù)系統(tǒng)的數(shù)據(jù)發(fā)生變時(shí),利用同步接口同步更新對應(yīng)的授權(quán)實(shí)例信息,可有效維護(hù)權(quán)限控制層面信息與業(yè)務(wù)層面信息的一致性,進(jìn)而可有效確保業(yè)務(wù)系統(tǒng)訪問權(quán)限控制的高度準(zhǔn)確性。
實(shí)施例三
本實(shí)施例三公開一種訪問控制系統(tǒng),該系統(tǒng)與以上實(shí)施例公開的訪問控制方法相對應(yīng)。
相應(yīng)于實(shí)施例一,參考圖3示出的訪問控制系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)可以包括截獲模塊100、驗(yàn)證模塊200和控制模塊300。
截獲模塊100,用于截獲用戶向業(yè)務(wù)系統(tǒng)發(fā)出的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括第一用戶標(biāo)識(shí)、授權(quán)實(shí)例標(biāo)識(shí)及資源標(biāo)識(shí);其中,所述業(yè)務(wù)系統(tǒng)包括至少一個(gè)業(yè)務(wù)場景,每個(gè)業(yè)務(wù)場景對應(yīng)一相應(yīng)的授權(quán)實(shí)例集合,所述授權(quán)實(shí)例集合中的每一授權(quán)實(shí)例與相應(yīng)業(yè)務(wù)場景的一相應(yīng)應(yīng)用實(shí)例提供的資源集合相對應(yīng);所述資源標(biāo)識(shí)對應(yīng)的目標(biāo)資源屬于目標(biāo)授權(quán)實(shí)例對應(yīng)的資源集合,所述目標(biāo)授權(quán)實(shí)例為所述授權(quán)實(shí)例標(biāo)識(shí)對應(yīng)的授權(quán)實(shí)例。
驗(yàn)證模塊200,用于基于所述第一用戶標(biāo)識(shí)、所述授權(quán)實(shí)例標(biāo)識(shí)、所述資源標(biāo)識(shí)及預(yù)先存儲(chǔ)的授權(quán)關(guān)系數(shù)據(jù),驗(yàn)證所述用戶是否具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限。
所述驗(yàn)證模塊200包括驗(yàn)證單元和確定單元。
驗(yàn)證單元,用于依據(jù)用戶標(biāo)識(shí)與授權(quán)角色間的對應(yīng)關(guān)系,以及各候選角色與相應(yīng)授權(quán)實(shí)例及資源間的對應(yīng)關(guān)系,驗(yàn)證所述第一用戶標(biāo)識(shí)與所述目標(biāo)授權(quán)實(shí)例及所述目標(biāo)資源是否匹配;
確定單元,用于在匹配時(shí),確定所述用戶具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限;在不匹配,確定所述用戶不具有訪問所述目標(biāo)授權(quán)實(shí)例下的所述目標(biāo)資源的權(quán)限。
控制模塊300,用于在驗(yàn)證通過時(shí),則發(fā)送所述業(yè)務(wù)請求至所述業(yè)務(wù)系統(tǒng),使得所述業(yè)務(wù)系統(tǒng)響應(yīng)所述業(yè)務(wù)請求;在驗(yàn)證不通過時(shí),進(jìn)行預(yù)定的錯(cuò)誤處理。
相應(yīng)于實(shí)施例二,參考圖4示出的訪問控制系統(tǒng)的結(jié)構(gòu)示意圖,所述系統(tǒng)還可以包括同步更新模塊400,該模塊包括第一同步單元、第二同步單元和第三同步單元。
第一同步單元,用于在業(yè)務(wù)場景產(chǎn)生新增的應(yīng)用實(shí)例時(shí),通過預(yù)設(shè)的同步接口為所述新增的應(yīng)用實(shí)例產(chǎn)生相對應(yīng)的授權(quán)實(shí)例;
第二同步單元,用于在業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例發(fā)生修改時(shí),通過所述同步接口對發(fā)生修改的應(yīng)用實(shí)例對應(yīng)的授權(quán)實(shí)例進(jìn)行相應(yīng)的信息修改;
第三同步單元,用于在業(yè)務(wù)場景對應(yīng)的應(yīng)用實(shí)例被刪除時(shí),通過所述同步接口清除被刪除的應(yīng)用實(shí)例所對應(yīng)的授權(quán)實(shí)例。
對于本發(fā)明實(shí)施例三公開的訪問控制系統(tǒng)而言,由于其與實(shí)施例一至實(shí)施例二公開的訪問控制方法相對應(yīng),所以描述的比較簡單,相關(guān)相似之處請參見實(shí)施例一至實(shí)施例二中訪問控制方法部分的說明即可,此處不再詳述。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
為了描述的方便,描述以上系統(tǒng)或裝置時(shí)以功能分為各種模塊或單元分別描述。當(dāng)然,在實(shí)施本申請時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。