两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種多端共享的權限控制方法及其系統(tǒng)與流程

文檔序號:11517786閱讀:562來源:國知局
一種多端共享的權限控制方法及其系統(tǒng)與流程

本發(fā)明涉及軟件權限控制技術領域,具體涉及一種多端共享的權限控制方法及其系統(tǒng)。



背景技術:

1、隨著移動互聯(lián)網(wǎng)的普及,越來越多不同類型的客戶端的出現(xiàn)(微信、手機app、pc瀏覽器),使得界面的表現(xiàn)越來越多樣化,傳統(tǒng)的針對每個端來授權,工作不僅繁重,而且容易出錯。

2、目前傳統(tǒng)mis系統(tǒng)雖然都有基于rbac的權限控制模塊,基于角色、資源的控制方式。但它們往往不是集中管理,權限數(shù)據(jù)標準不一很難共享,而且通常是在業(yè)務系統(tǒng)中增加過濾器等方式的實現(xiàn),使得權限設計無法跨語言,對業(yè)務有一定的侵入性。

3、傳統(tǒng)的授權方式,往往是在應用層進行攔截,如果程序控制出現(xiàn)問題。很容易出現(xiàn)安全隱患、而且不便于全局了解權限的配置規(guī)則。



技術實現(xiàn)要素:

本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種多端共享的權限控制方法及其系統(tǒng),通過配置權限和界面元素關系,只對角色分配功能權限,使得一次授權多端共享相同權限,不需要針對每個端進行單獨授權,操作方式簡單,使系統(tǒng)使用更加安全不易出錯,權限統(tǒng)一攔截使得業(yè)務對權限透明化,更加利于程序移植,并且不關心業(yè)務模塊使用語言限制。

本發(fā)明的目的是通過以下技術方案來實現(xiàn)的:

一種多端共享的權限控制方法,其特征在于包括以下步驟:

步驟s01:初始化功能點,將所有的控制權限抽象成為一個功能點,功能點表示一個具體的功能或者服務;

步驟s02:給相應的功能點配置界面元素,定義具體功能點所對應的界面元素,界面元素和展現(xiàn)有關是具體界面的表達,和具體展現(xiàn)端關聯(lián),所述展現(xiàn)端是一種承載界面展現(xiàn)的載體;

步驟s03:授權,給用戶和角色授予功能點,讓用戶和功能點產(chǎn)生關聯(lián);

步驟s04:權限控制,調用鑒權控制模塊確定該用戶是否有訪問權限。

進一步的,還包括步驟s05:界面元素展示,根據(jù)不同用戶配置的權限展示出不同的界面,具體包括以下子步驟:

子步驟s51:用戶訪問后臺管理界面;

子步驟s52:獲取當前用戶和角色;

子步驟s53:根據(jù)用戶和角色找到對應的功能點;

子步驟s54:根據(jù)功能點找到對應界面元素;

子步驟s55:根據(jù)當前界面元素找到所有上級界面元素;

子步驟s56:根據(jù)界面元素上下級關系組裝界面元素;

子步驟s57:返回給客戶端并展示界面元素。

進一步的,所述的步驟s01中,所述功能點和具體的展示無關,功能點的初始化操作最佳是在開發(fā)階段定義,除此之外功能點的初始化操作也可以在其他任何階段定義。

進一步的,所述的步驟s02中,功能點可以是有界面承載的服務,也可以是沒有界面的接口,因此不是每個功能點都要和界面元素對應,功能點通過客戶端的url地址或命令模式中的操作指令識別。

進一步的,所述的步驟s04中,用戶所有請求首先經(jīng)統(tǒng)一接入模塊接入服務器,而不能直接訪問具體業(yè)務,業(yè)務系統(tǒng)可以通過防火墻等方式直接拒絕前端發(fā)來的非法請求。

進一步的,所述統(tǒng)一接入模塊,除了服務的反向代理外,還負責權限的統(tǒng)一攔截、定義路由策略,統(tǒng)一接入模塊根據(jù)返回結果和訪問端判斷,如果鑒權通過則直接訪問業(yè)務系統(tǒng),如果鑒權失敗則根據(jù)不同端跳轉到對應界面或者響應錯誤碼。

進一步的,所述的步驟s04中調用鑒權控制模塊確定該用戶是否有訪問權限具體包括以下子步驟:

子步驟s41:根據(jù)訪問的界面元素和當前用戶和角色,找到對應的功能點;

子步驟s42:根據(jù)權限點的配置判斷是否符合訪問規(guī)則;

子步驟s43:返回鑒權結果給代理服務器。

一種多端共享的權限控制系統(tǒng),其特征在于包括以下組件:

客戶端:是指與服務器相對應,為客戶提供本地服務的程序;

統(tǒng)一接入模塊:負責所有業(yè)務的反向代理服務和權限攔截,是權限控制的閥門;

鑒權控制模塊:權限控制的核心控制器、負責具體權限控制的檢查,權限控制的具體邏輯、權限的授予;

業(yè)務模塊:執(zhí)行具體業(yè)務的服務或系統(tǒng)是功能點的使用方;

客戶端請求業(yè)務模塊時總是先請求到統(tǒng)一接入模塊,統(tǒng)一接入模塊先根據(jù)客戶端id、當前用戶id和url地址訪問鑒權控制模塊,鑒權控制模塊根據(jù)相關配置得到用戶是否具有相關權限,統(tǒng)一接入模塊再根據(jù)鑒權控制模塊返回的數(shù)據(jù)決定是將請求反向代理到業(yè)務端,還是直接將錯誤信息返回給前端,如果訪問到業(yè)務模塊表明該用戶已經(jīng)具有該功能點的訪問權限,而無需相關代碼對其進行權限控制,業(yè)務模塊處理完業(yè)務邏輯,通過統(tǒng)一接入模塊直接返回給前端。

進一步的,所述的鑒權控制模塊預先初始化定義功能點,并對相應的功能點配置界面元素。

進一步的,所述的界面元素主要包括:界面名稱、界面地址、界面層級、界面對應功能點id。

本發(fā)明的有益效果是:1、通過只對功能點授權的方式,更加方便用戶授權減少管理成本,只配置一次功能點,所有終端都可使用;2、統(tǒng)一管理權限使業(yè)務模塊對權限透明化,使權限設計更加簡單系統(tǒng)、更加安全可靠;3、所有業(yè)務系統(tǒng)不能直接被外部訪問,可以防止權限穿透,業(yè)務系統(tǒng)直接拒絕所有外部請求即可,配置簡單,不易出錯。

附圖說明

圖1是本發(fā)明的整體方法步驟示意圖;

圖2是本發(fā)明系統(tǒng)組件結構圖;

圖3是本發(fā)明工作原理的詳細流程圖。

具體實施方式

下面結合附圖進一步詳細描述本發(fā)明的技術方案,但本發(fā)明的保護范圍不局限于以下所述。

如圖1所示,

一種多端共享的權限控制方法,其特征在于包括以下步驟:

步驟s01:初始化功能點,將所有的控制權限抽象成為一個功能點,功能點表示一個具體的功能或者服務;功能點和具體的展示無關;

步驟s02:給相應的功能點配置界面元素,定義具體功能點所對應的界面元素,界面元素和展現(xiàn)有關是具體界面的表達,和具體展現(xiàn)端關聯(lián),所述展現(xiàn)端是一種承載界面展現(xiàn)的載體;所述的界面元素是指菜單或者按鈕等;

步驟s03:授權,給用戶和角色授予功能點,讓用戶和功能點產(chǎn)生關聯(lián);不給角色授予界面元素的原因是:基于有對應的功能點權限才需要展示對應的界面元素的假設,功能點和界面元素本身有關系因此不需要再和角色發(fā)生關聯(lián),這樣運維人員和業(yè)務人員不需要知道功能點和界面的關系,只需要關注角色本身應該擁有什么權限,簡化了授權操作。

步驟s04:權限控制,調用鑒權控制模塊確定該用戶是否有訪問權限。

其中,本實施例中的功能點、界面元素、展現(xiàn)端具體含義如下:

功能點:一個具體的功能或者服務,比如:修改密碼、查詢用戶、查詢余額等。

界面元素:一些可見的界面可見元素,比如:表單或者按鈕。

展現(xiàn)端:一種承載界面展現(xiàn)的載體,比如:微信、pc瀏覽器、手機app等;

進一步的,還包括步驟s05:界面元素展示,根據(jù)不同用戶配置的權限展示出不同的界面,具體包括以下子步驟:

子步驟s51:用戶訪問后臺管理界面;

子步驟s52:獲取當前用戶和角色;

子步驟s53:根據(jù)用戶和角色找到對應的功能點;

子步驟s54:根據(jù)功能點找到對應界面元素;

子步驟s55:根據(jù)當前界面元素找到所有上級界面元素;

子步驟s56:根據(jù)界面元素上下級關系組裝界面元素;

子步驟s57:返回給客戶端并展示界面元素。

進一步的,所述的步驟s01中,所述功能點和具體的展示無關,功能點的初始化操作最佳是在開發(fā)階段定義;除此之外功能點的初始化操作也可以在其他任何階段定義。

進一步的,所述的步驟s02中,功能點可以是有界面承載的服務,也可以是沒有界面的接口,因此不是每個功能點都要和界面元素對應,功能點通過客戶端的url地址或命令模式中的操作指令識別。

進一步的,所述的步驟s04中,用戶所有請求首先經(jīng)統(tǒng)一接入模塊接入服務器,而不能直接訪問具體業(yè)務,業(yè)務系統(tǒng)可以通過防火墻等方式直接拒絕前端發(fā)來的非法請求。

進一步的,所述統(tǒng)一接入模塊,除了服務的反向代理外,還負責權限的統(tǒng)一攔截、定義路由策略,統(tǒng)一接入模塊根據(jù)返回結果和訪問端判斷,如果鑒權通過則直接訪問業(yè)務系統(tǒng),如果鑒權失敗則根據(jù)不同端跳轉到對應界面或者響應錯誤碼。

進一步的,所述的步驟s04中調用鑒權控制模塊確定該用戶是否有訪問權限具體包括以下子步驟:

子步驟s41:根據(jù)訪問的界面元素和當前用戶和角色,找到對應的功能點;

子步驟s42:根據(jù)權限點的配置判斷是否符合訪問規(guī)則;

子步驟s43:返回鑒權結果給代理服務器。

如圖2所示:

一種多端共享的權限控制系統(tǒng),其特征在于包括以下組件:

客戶端:是指與服務器相對應,為客戶提供本地服務的程序;

統(tǒng)一接入模塊:負責所有業(yè)務的反向代理服務和權限攔截,是權限控制的閥門;

鑒權控制模塊:權限控制的核心控制器、負責具體權限控制的檢查,權限控制的具體邏輯、權限的授予;

業(yè)務模塊:執(zhí)行具體業(yè)務的服務或系統(tǒng)是功能點的使用方;

客戶端請求業(yè)務模塊時總是先請求到統(tǒng)一接入模塊,統(tǒng)一接入模塊先根據(jù)客戶端id、當前用戶id和url地址訪問鑒權控制模塊,鑒權控制模塊根據(jù)相關配置得到用戶是否具有相關權限,統(tǒng)一接入模塊再根據(jù)鑒權控制模塊返回的數(shù)據(jù)決定是將請求反向代理到業(yè)務端,還是直接將錯誤信息返回給前端,如果訪問到業(yè)務模塊表明該用戶已經(jīng)具有該功能點的訪問權限,而無需相關代碼對其進行權限控制,業(yè)務模塊處理完業(yè)務邏輯,通過統(tǒng)一接入模塊直接返回給前端。

進一步的,所述的鑒權控制模塊預先初始化定義功能點,并對相應的功能點配置界面元素。

進一步的,所述的界面元素主要包括:界面名稱、界面地址、界面層級、界面對應功能點id。

具體的,一種多端共享的權限控制系統(tǒng)包括客戶端、統(tǒng)一接入模塊、鑒權控制模塊、業(yè)務模塊四大部分。

客戶端或稱為用戶端,是指與服務器相對應,為客戶提供本地服務的程序。比如:pc瀏覽器、微信、app。

統(tǒng)一接入模塊負責所有業(yè)務的反向代理服務和權限攔截,是權限控制的閥門。

鑒權控制模塊是權限控制的核心控制器、負責具體權限控制的檢查,權限控制的具體邏輯、權限的授予等。

業(yè)務模塊是執(zhí)行具體業(yè)務的服務或系統(tǒng)是功能點的使用方。

這四大結構是權限控制的基本要素,它們的關系是:

當客戶端請求業(yè)務模塊時總是先請求到統(tǒng)一接入模塊。

統(tǒng)一接入模塊先根據(jù)客戶端id、當前用戶id和url地址訪問鑒權控制模塊。

鑒權控制模塊根據(jù)相關配置得到用戶是否具有相關權限。

統(tǒng)一接入模塊再根據(jù)鑒權控制模塊返回的數(shù)據(jù)決定是將請求反向代理到業(yè)務端,還是直接將錯誤信息返回給前端。

如果訪問到業(yè)務模塊表明該用戶已經(jīng)具有該功能點的訪問權限,而無需相關代碼對其進行權限控制。

業(yè)務模塊處理完業(yè)務邏輯,通過統(tǒng)一接入模塊直接返回給前端。

至此整個權限相關流程執(zhí)行完畢。

一種多端共享的權限控制方法如下:

步驟s01:初始化功能點

功能點是對功能的具體描述,主要包括權限的編碼(便于程序識別)、功能點名稱、權限匹配規(guī)則(支持正則表達式的匹配),功能點和角色,用戶的關系是多對多。

具體做法:可以通過sql腳本、配置文件等方式直接初始化相關配置。

步驟s02:初始化界面元素

界面元素主要包括:界面名稱、界面地址、界面層級、界面對應功能點id。配置它們之間的關系其目的是:為了根據(jù)用戶、角色、功能點、界面元素四者之間的關系,反查詢出用戶的界面元素和功能點,以及通過界面元素反查出用戶的功能點。

步驟s03:授權

授予用戶和角色相關權限,即給給它分配功能點。使之能夠有相關功能的操作權限和展示相關界面元素。

步驟s04:權限控制,包括以下子步驟:

s001、當用戶通過客戶端訪問一個具體的前端頁面或服務時先通過統(tǒng)一接入模塊訪問后端服務。

s002、統(tǒng)一接入模塊收到請求后先訪問鑒權控制模塊,它首先會判斷當前請求是否訪問權限。具體會根據(jù)界面元素id、請求地址、和當前用戶,請求鑒權控制模塊,并返回是否擁有該權限。

s003、鑒權控制模塊在接到請求參數(shù)后會根據(jù)當前用戶或角色找到擁有功能點,以及根據(jù)當前界面元素標識對應的具體功能點來綜合判斷,當前使用哪個功能點的規(guī)則進行鑒權判斷。

s004、鑒權判斷是根據(jù)當前url和功能點上配置的權限規(guī)則進行匹配,并返回匹配結果給統(tǒng)一接入模塊。當然如果傳入的是其他的命令也可以定義規(guī)則進行匹配。

s005、統(tǒng)一接入模塊會在接到返回結果后,根據(jù)鑒權結果進行處理,如果返回成功結果則證明有訪問權限,將反向代理到真實業(yè)務模塊進行業(yè)務處理。

s006、如果返回失敗,則根據(jù)請求的客戶端跳轉到不同的未授權頁面,或者如果是ajax則返回對應的錯誤碼,由客戶端進行統(tǒng)一的處理,跳轉到統(tǒng)一頁面或者調用原生api進行業(yè)務處理。

如圖3所示:具體的工作原理如下:

開始;

開發(fā)人員對鑒權控制模塊進行初始化功能點;

運維人員對鑒權控制模塊進行界面元素的初始化,并定義界面元素和功能點關系;

后臺管理人員通過鑒權控制模塊給相應角色授予相關的功能點,完成功能點的授權操作;

客戶端進行權限訪問;

鑒權控制模塊根據(jù)用戶、角色和功能點關系找到對應的功能點;或根據(jù)菜單和功能點關系找到功能點;或根據(jù)傳入的規(guī)則和功能點表達式找到功能點;

返回鑒權結果給統(tǒng)一接入模塊,統(tǒng)一接入模塊判斷是否有訪問權限;

有訪問權限,訪問業(yè)務系統(tǒng)執(zhí)行,結束。

無訪問權限,返回給前端界面,結束。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
通榆县| 五峰| 枝江市| 上犹县| 文昌市| 琼海市| 盐津县| 渭南市| 瓮安县| 宜章县| 靖安县| 县级市| 永德县| 察雅县| 红安县| 东阿县| 鄂尔多斯市| 绥芬河市| 广昌县| 安达市| 泸西县| 万州区| 喀喇沁旗| 桂平市| 龙游县| 新安县| 安义县| 莱芜市| 南木林县| 时尚| 米易县| 靖江市| 武城县| 宜阳县| 竹山县| 罗山县| 贵州省| 高碑店市| 克拉玛依市| 宣汉县| 东莞市|