本發(fā)明涉及GIS私有云計(jì)算技術(shù),具體涉及一種基于虛擬隔離機(jī)制的私有云GIS服務(wù)訪問(wèn)控制方法。
背景技術(shù):
近年來(lái),隨著云計(jì)算技術(shù)的快速發(fā)展,云計(jì)算的應(yīng)用已經(jīng)滲透到各行各業(yè)。亞馬遜、微軟等科技公司不斷推出企業(yè)級(jí)云計(jì)算服務(wù),以滿足廣大用戶的業(yè)務(wù)需求。GIS行業(yè)也不例外。ESRI、超圖等國(guó)內(nèi)外知名GIS公司相繼推出了云GIS產(chǎn)品和服務(wù)。
目前,傳統(tǒng)的文件系統(tǒng)、獨(dú)占式緊耦合的Web應(yīng)用服務(wù)器集群方式已無(wú)法滿足私有云GIS服務(wù)彈性負(fù)載均衡的要求,必須提供一種新的云GIS計(jì)算訪問(wèn)控制方法和通信機(jī)制。云存儲(chǔ)技術(shù)是云計(jì)算應(yīng)用的基礎(chǔ),它可以將網(wǎng)絡(luò)中異構(gòu)存儲(chǔ)設(shè)備通過(guò)軟件系統(tǒng)集成,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能(鮑愛(ài)華等,2014)。對(duì)于GIS數(shù)據(jù)服務(wù)來(lái)講,主要是為公眾提供空間分析和地理信息共享服務(wù),所以要求數(shù)據(jù)定位、查詢或修改的延遲較小。再者,考慮到地理信息數(shù)據(jù)涉密,國(guó)內(nèi)許多企業(yè)只能采用私有云計(jì)算方案。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的不足,提供一種基于虛擬隔離機(jī)制的私有云GIS服務(wù)訪問(wèn)控制方法,是一種私有云GIS平臺(tái)多租戶資源虛擬隔離方案以及面向服務(wù)的角色訪問(wèn)(Workflow-based and Service-oriented Role Based Access Control,WSRBAC)作為訪問(wèn)控制模塊的GIS數(shù)據(jù)以面向服務(wù)(Service Oriented Architecture,SOA)的方式分享的方法,其中GIS資源隔離包括網(wǎng)絡(luò)隔離和軟件隔離,通過(guò)上述兩種方法的結(jié)合,首先保證GIS數(shù)據(jù)在異構(gòu)私有云GIS平臺(tái)下的數(shù)據(jù)安全,其次用戶以角色作為權(quán)限訪問(wèn)公共GIS數(shù)據(jù),并且管理和分享私有GIS數(shù)據(jù)。
技術(shù)方案:本發(fā)明的一種基于虛擬隔離機(jī)制的私有云GIS服務(wù)訪問(wèn)控制方法,依次包括以下步驟:
(1)網(wǎng)絡(luò)控制:在私有云平臺(tái)環(huán)境中部署硬件虛擬化環(huán)境時(shí)建立三個(gè)相互獨(dú)立的虛擬網(wǎng)段,分別是數(shù)據(jù)存儲(chǔ)網(wǎng)段VLANIF16、服務(wù)資源網(wǎng)段VLANIF18、以及用戶使用網(wǎng)段VLANIF20;
(2)數(shù)據(jù)隔離與訪問(wèn)控制:
(21)強(qiáng)制隔離不同單位之間的數(shù)據(jù);
(22)相同單位內(nèi)不同組織之間的數(shù)據(jù)適度隔離并共享數(shù)據(jù);
(23)嚴(yán)格隔離組織間以及租戶間的私有數(shù)據(jù);
(24)租戶必須通過(guò)預(yù)先定義的接口來(lái)請(qǐng)求使用GIS服務(wù),VLANIF18的服務(wù)訪問(wèn)控制系統(tǒng)驗(yàn)證權(quán)限,驗(yàn)證通過(guò)后,該系統(tǒng)將GIS服務(wù)使用授權(quán)給該租戶,該租戶根據(jù)授權(quán)信息使用相應(yīng)的GIS服務(wù),GIS服務(wù)處理完成后,系統(tǒng)將處理結(jié)果通過(guò)VLANIF18返回給租戶,租戶無(wú)法直接訪問(wèn)私有云平臺(tái)的IasS層;
(25)租戶按自身的角色申請(qǐng)獲得GIS數(shù)據(jù)服務(wù),并申請(qǐng)獲得GIS應(yīng)用服務(wù)的使用權(quán),每次處理GIS應(yīng)用服務(wù)時(shí),系統(tǒng)自動(dòng)為該服務(wù)分配臨時(shí)權(quán)限;服務(wù)處理結(jié)束后,系統(tǒng)自動(dòng)回收臨時(shí)權(quán)限;
(3)云GIS服務(wù)接口策略:將硬件資源、網(wǎng)絡(luò)資源、GIS數(shù)據(jù)資源以及GIS應(yīng)用資源全部以面向服務(wù)的方式提供給用戶使用。
進(jìn)一步地,所述步驟(1)中,VLANIF16、VLANIF18和VLANIF20三個(gè)工作網(wǎng)段的構(gòu)建通過(guò)三層物理交換機(jī)或虛擬交換機(jī)實(shí)現(xiàn),其中,VLANIF16分配給一組分布式文件服務(wù)器集群使用,這組集群只能通過(guò)VLANIF18來(lái)訪問(wèn),如果要使用VLANIF16上的GIS數(shù)據(jù)服務(wù),必須通過(guò)部署在VLANIF18上的服務(wù)訪問(wèn)控制系統(tǒng)獲取文件訪問(wèn)權(quán)限后方能讀寫(xiě)GIS數(shù)據(jù),文件訪問(wèn)權(quán)限由VLANIF16中分布式文件服務(wù)器主控配置文件core-site.xml預(yù)先定義的IP地址和訪問(wèn)權(quán)限字段access-key兩者結(jié)合方能獲得分布式文件服務(wù)器控制權(quán)。
進(jìn)一步地,所述步驟(2)中,以基于角色的訪問(wèn)控制策略為基礎(chǔ);
步驟(21)中,結(jié)合主客體組織Organization標(biāo)簽,以私有數(shù)據(jù)、多租戶間共享數(shù)據(jù)、平臺(tái)內(nèi)共享數(shù)據(jù)以及其他用戶共享數(shù)據(jù)四類訪問(wèn)控制權(quán)限的方式,為不同租戶邏輯分配資源池空間,強(qiáng)制隔離私有云平臺(tái)中不同租戶之間的數(shù)據(jù),以達(dá)到某一組織的租戶無(wú)法越權(quán)訪問(wèn)其他組織未被允許訪問(wèn)的數(shù)據(jù)的目的;
步驟(22)中,以多種安全屬性的邏輯組合作為資源訪問(wèn)的條件,通過(guò)資源訪問(wèn)條件的篩選,適度隔離私有云平臺(tái)內(nèi)存儲(chǔ)的數(shù)據(jù),租戶可以根據(jù)自身安全的需求定制資源訪問(wèn)控制策略,以隔離來(lái)自不同租戶的私有數(shù)據(jù);
步驟(23)中,共享數(shù)據(jù)分為全共享數(shù)據(jù)和部分共享數(shù)據(jù)兩類,引入虛擬組織的概念,結(jié)合共享策略的制定,實(shí)現(xiàn)租戶間數(shù)據(jù)全共享以及部分共享;通過(guò)利益沖突類的定義,嚴(yán)格限制沖突租戶間和組織間的數(shù)據(jù)共享;
步驟(24)中,引入服務(wù)Service的概念,提出面向服務(wù)的角色訪問(wèn)控制模型,將角色訪問(wèn)控制從資源靜態(tài)授權(quán)保護(hù)提升為服務(wù)動(dòng)態(tài)授權(quán)保護(hù),當(dāng)租戶請(qǐng)求使用GIS服務(wù)時(shí),VLANIF18的驗(yàn)證系統(tǒng)按照租戶信息驗(yàn)證其合法性,并授予相應(yīng)角色的GIS服務(wù)使用權(quán);
步驟(25)中,系統(tǒng)可以動(dòng)態(tài)管理角色以及自動(dòng)分配角色等級(jí),每個(gè)等級(jí)的角色賦予一組GIS服務(wù)的訪問(wèn)權(quán)限,租戶可申請(qǐng)從低等級(jí)角色升級(jí)到高等級(jí)角色,除角色訪問(wèn)控制策略之外,系統(tǒng)還可采用動(dòng)態(tài)授權(quán)策略控制GIS應(yīng)用服務(wù)訪問(wèn),這種GIS應(yīng)用服務(wù)使用權(quán)限策略獨(dú)立于租戶角色權(quán)限策略,前者控制GIS應(yīng)用服務(wù)訪問(wèn),后者控制硬件資源以及GIS數(shù)據(jù)服務(wù)的訪問(wèn)。
進(jìn)一步地,所述步驟(3)的具體方法是:
(31)VLANIF18部署自主開(kāi)發(fā)的服務(wù)訪問(wèn)控制系統(tǒng),該系統(tǒng)為各GIS服務(wù)使用定義REST風(fēng)格的接口規(guī)則,供租戶訪問(wèn)GIS服務(wù),租戶通過(guò)接口規(guī)則發(fā)送GIS服務(wù)的使用請(qǐng)求,請(qǐng)求必須通過(guò)服務(wù)訪問(wèn)控制系統(tǒng)驗(yàn)證,系統(tǒng)驗(yàn)證通過(guò)后,租戶方能使用相應(yīng)的GIS服務(wù);
(32)VLANIF18部署自主開(kāi)發(fā)的硬件資源服務(wù)控制系統(tǒng),該系統(tǒng)可以將物理內(nèi)存、虛擬CPU以及存儲(chǔ)等硬件資源以服務(wù)的方式提供給租戶使用。租戶通過(guò)控制系統(tǒng)的Web客戶端申請(qǐng)硬件資源服務(wù);系統(tǒng)管理員在控制系統(tǒng)的管理端響應(yīng)并驗(yàn)證該申請(qǐng)服務(wù),驗(yàn)證通過(guò)后在硬件資源池中為其分配所需的硬件資源,再將其硬件資源的描述信息返回到Web客戶端,提供給租戶使用;
(33)VLANIF18部署自主開(kāi)發(fā)的GIS應(yīng)用服務(wù)系統(tǒng),該系統(tǒng)可以將GIS業(yè)務(wù)以服務(wù)的方式提供給租戶使用。租戶可以按兩種方式使用GIS應(yīng)用服務(wù):一種是直接使用單一GIS應(yīng)用服務(wù),另一種是將若干單一GIS應(yīng)用服務(wù)組合為一個(gè)業(yè)務(wù),提供給租戶使用。
進(jìn)一步地,所述步驟(25)中動(dòng)態(tài)授權(quán)策略控制GIS應(yīng)用服務(wù)訪問(wèn)的具體過(guò)程是:租戶按自己所屬角色的權(quán)限申請(qǐng)相應(yīng)的GIS數(shù)據(jù)服務(wù),然后申請(qǐng)GIS應(yīng)用服務(wù)的使用權(quán),系統(tǒng)將GIS數(shù)據(jù)服務(wù)和GIS應(yīng)用服務(wù)合并為工作流,并為該工作流自動(dòng)分配處理權(quán)限,當(dāng)處理完畢后,系統(tǒng)將自動(dòng)收回該工作流的權(quán)限。
有益效果:本發(fā)明在私有云平臺(tái)環(huán)境中為多租戶GIS服務(wù)的使用設(shè)計(jì)一套安全隔離、訪問(wèn)控制和通信機(jī)制,使得私有云平臺(tái)能具有多租戶處理地理空間數(shù)據(jù)的能力,能提高GIS服務(wù)處理的安全性,達(dá)到變地理空間數(shù)據(jù)為資產(chǎn)的目的。
附圖說(shuō)明
圖1為實(shí)施例中文件服務(wù)器中的數(shù)據(jù)組織方式示意圖。
圖2為實(shí)施例中REST服務(wù)接口信息的示意圖。
具體實(shí)施方式
下面對(duì)本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說(shuō)明,但是本發(fā)明的保護(hù)范圍不局限于所述實(shí)施例。
實(shí)施例1:
網(wǎng)絡(luò)控制部分的實(shí)現(xiàn):
本實(shí)施例中的網(wǎng)絡(luò)配置以華為S5700交換機(jī)為例,交換機(jī)通電后默認(rèn)開(kāi)啟一個(gè)工作網(wǎng)段。在本實(shí)例中要建立三個(gè)工作網(wǎng)段,所以重新配置交換機(jī)。具體步驟如下:
第一,交換機(jī)通過(guò)串口線跟計(jì)算機(jī)連接,計(jì)算機(jī)開(kāi)啟相應(yīng)com串口,并配置交換機(jī)com串口參數(shù),配置信息如下:頻率:9600;數(shù)據(jù)位:8;奇偶校驗(yàn):無(wú);終止位:1;數(shù)據(jù)流控制:無(wú)。
第二,在計(jì)算機(jī)中打開(kāi)串口通信程序按鍵盤(pán)任意鍵激活串口通信,收到交換機(jī)響應(yīng)信息后再輸入交換機(jī)密碼。當(dāng)密碼驗(yàn)證通過(guò)后,計(jì)算機(jī)顯示器上出現(xiàn)”<Quidway>”,說(shuō)明交換機(jī)已準(zhǔn)備就緒。此時(shí),在計(jì)算機(jī)上輸入以下命令在交換機(jī)上新建所需的三個(gè)工作網(wǎng)段:
<Quidway>
<Quidway>system-view
[Quidway]interface vlanif 1016
[Quidway-Vlanif1016]ip address 192.168.16.254 255.255.255.0
[Quidway-Vlanif1016]quit
<Quidway>
<Quidway>system-view
[Quidway]interface vlanif 1018
[Quidway-Vlanif1018]ip address 192.168.18.254 255.255.255.0
[Quidway-Vlanif1018]quit
<Quidway>
<Quidway>system-view
[Quidway]interface vlanif 1020
[Quidway-Vlanif1020]ip address 192.168.20.254 255.255.255.0
[Quidway-Vlanif1020]quit
通過(guò)以上一組命令建立了1016、1018、1020三個(gè)工作網(wǎng)段。
第三,將交換機(jī)的物理網(wǎng)口分配給新創(chuàng)建的三個(gè)工作網(wǎng)段上,配置方式如下:
(1)執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖;
(2)執(zhí)行命令interface vlanif vlan-id,進(jìn)入VLANIF接口視圖;
(3)執(zhí)行命令ip address ip-address{mask|mask-length},配置主ip地址。
下面舉例說(shuō)明具體操作。設(shè)編號(hào)0/0/1是第一個(gè)網(wǎng)口的ip地址,配置操作是:
<Quidway>system-view
[Quidway]vlan 1016
[Quidway-Vlan1016]quit
[Quidway]interface gigabitethernet 0/0/1
[Quidway-Gigabitethernet0/0/1]port hybrid pvid vlan 1016
[Quidway-Gigabitethernet0/0/1]port htbrid untagged vlan 1016
[Quidway-Gigabitethernet0/0/1]quit
通過(guò)以上命令給交換機(jī)每一個(gè)物理網(wǎng)口分配對(duì)應(yīng)的工作網(wǎng)段。
數(shù)據(jù)隔離部分的實(shí)現(xiàn):
數(shù)據(jù)隔離分為兩部分:第一,原始數(shù)據(jù)的隔離。原始數(shù)據(jù)托管到私有云平臺(tái)上的分布式文件服務(wù)器,通過(guò)分布式文件服務(wù)器和硬件資源服務(wù)控制系統(tǒng)中的文件訪問(wèn)控制模塊實(shí)現(xiàn)原始數(shù)據(jù)的操作;第二,GIS服務(wù)的訪問(wèn)控制。私有云平臺(tái)上的GIS服務(wù)被托管到GIS Server服務(wù)器,服務(wù)的訪問(wèn)控制由GIS Server服務(wù)器和硬件資源服務(wù)控制系統(tǒng)中的服務(wù)訪問(wèn)控制模塊結(jié)合實(shí)現(xiàn)。
分布式文件服務(wù)器隔離:分布式文件服務(wù)器部署在1016網(wǎng)段中,按照網(wǎng)絡(luò)控制隔離設(shè)計(jì),1016網(wǎng)段只能被1018網(wǎng)段的硬件資源服務(wù)控制系統(tǒng)的文件訪問(wèn)控制模塊訪問(wèn),1020網(wǎng)段的用戶客戶端無(wú)法直接訪問(wèn)1016網(wǎng)段的分布式文件服務(wù)器。分布式文件服務(wù)器中的數(shù)據(jù)組織方式如圖1所示。
文件訪問(wèn)控制模塊隔離:文件訪問(wèn)控制模塊是1018網(wǎng)段硬件資源服務(wù)控制系統(tǒng)的組件之一,負(fù)責(zé)用戶文件請(qǐng)求以及其他程序文件請(qǐng)求的響應(yīng)。用戶文件請(qǐng)求是指當(dāng)1020網(wǎng)段的用戶請(qǐng)求對(duì)私有云平臺(tái)上的原始數(shù)據(jù)讀寫(xiě)操作時(shí),用戶請(qǐng)求首先被1018網(wǎng)段服務(wù)訪問(wèn)控制系統(tǒng)中的用戶驗(yàn)證模塊攔截并驗(yàn)證,若用戶請(qǐng)求同時(shí)滿足身份合法性和操作合法性兩種驗(yàn)證,則用戶請(qǐng)求才會(huì)分發(fā)至服務(wù)訪問(wèn)控制系統(tǒng),于是服務(wù)訪問(wèn)控制系統(tǒng)發(fā)出指令讓1016網(wǎng)段分布式文件系統(tǒng)響應(yīng)用戶請(qǐng)求。在上述步驟執(zhí)行過(guò)程中,用戶是不能直接讀寫(xiě)1016網(wǎng)段的分布式文件服務(wù)器,更無(wú)法獲取文件存放的物理地址,所以1020網(wǎng)段的客戶端無(wú)法直接訪問(wèn)所需GIS資源,客戶端必須向1018網(wǎng)段的用戶驗(yàn)證模塊的REST服務(wù)接口發(fā)送用戶驗(yàn)證請(qǐng)求,如圖2所示,REST服務(wù)接口信息如下:
URL:http://{host}/user/generatetoken
Method:POST
Data:{username:user0606,password:ab123456}
具體實(shí)例如下:
(1)用戶通過(guò)用戶名和密碼登錄。登錄后用戶所在客戶端獲得一個(gè)從1018網(wǎng)段服務(wù)訪問(wèn)控制系統(tǒng)發(fā)送的token,token信息按JSON格式傳遞,如下所示:
這是登錄成功后用戶收到的token信息。其中,Status表示登錄狀態(tài),若登錄成功則返回success,否則返回error;Tokenstring是一串加密信息,采用用戶名、兩個(gè)隨機(jī)字符串、以及token生成時(shí)間組合在異地加密而成。在用戶獲得token后,再發(fā)送其他請(qǐng)求時(shí)就不用輸入用戶名和密碼,系統(tǒng)自動(dòng)將用戶token解密來(lái)驗(yàn)證用戶身份的合法性;Exparetime是指token生成時(shí)間;Timelong是服務(wù)有效時(shí)間,過(guò)期時(shí)間以秒為單位。1200000表示這次token有效時(shí)間為20分鐘。
(2)登錄后,用戶若上傳一個(gè)私有數(shù)據(jù),則發(fā)送如下請(qǐng)求:
URL:http://{host}/user/{username}/zone/{filefolder}?token={tokenstring}
Method:POST
Data:{file:filedata,type:[number,default 0]
其中,URL是上傳服務(wù)的API接口;host是服務(wù)訪問(wèn)控制系統(tǒng)的ip地址;username是用戶名;filefolder是用戶私有目錄地址;tokenstring是用戶的token;data是用戶要發(fā)送的post參數(shù);file是用戶要上傳的文件;type是文件的訪問(wèn)權(quán)限,0表示文件是私有的,1表示文件在組織部門(mén)內(nèi)共享,2表示文件對(duì)全平臺(tái)共享,無(wú)論是1還是2,其他用戶只能獲得文件的使用權(quán),其刪除和更改的權(quán)限始終由文件發(fā)布者所有。
若獲取私有云平臺(tái)中的GIS資源,同樣對(duì)相應(yīng)的REST服務(wù)接口發(fā)送http get請(qǐng)求,提供的信息如下:
Uri:http://{host}/user/{username}/getfile/{fileoid}?token={tokenstring}
Method:GET
其中,fileoid是私有云平臺(tái)中GIS資源的唯一標(biāo)識(shí)符,文件上傳時(shí)由系統(tǒng)自動(dòng)生成,并保存在數(shù)據(jù)庫(kù)中。用戶發(fā)送以上請(qǐng)求后,系統(tǒng)驗(yàn)證用戶token信息,驗(yàn)證通過(guò)后,系統(tǒng)再驗(yàn)證該用戶是否具有fileoid文件的讀取權(quán)限,具體操作如下:
(1)如果該文件是當(dāng)前用戶上傳的,則有讀取權(quán)限;
(2)如果該文件由其他用戶上傳的,若訪問(wèn)權(quán)限設(shè)置為組織部門(mén)內(nèi)共享,而當(dāng)前用戶與上傳用戶在同一個(gè)組織部門(mén),則有讀取權(quán)限;
(3)如果該文件由其他用戶上傳的,若訪問(wèn)權(quán)限設(shè)置為全平臺(tái)共享,則當(dāng)前用戶有讀取權(quán)限。
GIS Server隔離:GIS Server提供地圖、影像、地理處理等服務(wù)具有GIS功能的服務(wù)器。用戶在私有云平臺(tái)上通過(guò)自己的用戶名和密碼、以及所分配的角色來(lái)獲取GIS Server的使用權(quán)。若角色等級(jí)低,只具有使用自己所屬組織的GIS Server和公共GIS Server的權(quán)限;若角色等級(jí)高,除此之外,還可以有申請(qǐng)創(chuàng)建私有GIS Server的權(quán)限。
(1)使用公共GIS Server:登錄后,用戶通過(guò)以下API獲取自己所能使用的GIS Server列表:
URL:http://{host}/user/{username}/gisserver?token={tokenstring}
Method:GET
如果請(qǐng)求成功,用戶收到系統(tǒng)返回的可用GIS Server列表:
其中,type 1表示該服務(wù)器為私有GIS Server,type 2表示該服務(wù)器為公共GIS Server。用戶對(duì)私有GIS Server具有絕對(duì)控制權(quán),對(duì)公共GIS Server只有使用權(quán)限,沒(méi)有更改權(quán)限。
服務(wù)訪問(wèn)控制模塊隔離:服務(wù)訪問(wèn)控制模塊是1018網(wǎng)段控制系統(tǒng)的組件之一,用戶每次對(duì)GIS服務(wù)的訪問(wèn)請(qǐng)求都由該組件進(jìn)行驗(yàn)證,用戶還可以通過(guò)該組件獲取服務(wù)列表、以及服務(wù)的參數(shù)。用戶使用的GIS服務(wù)范圍包括私有云平臺(tái)公共GIS站點(diǎn)提供的公共GIS服務(wù),用戶所屬部門(mén)提供的部門(mén)內(nèi)共享GIS服務(wù),以及用戶自己創(chuàng)建的私有GIS站點(diǎn)中的GIS服務(wù)。
用戶調(diào)用私有云平臺(tái)REST接口服務(wù)的過(guò)程如下:
(1)用戶按照REST接口格式發(fā)送特定服務(wù)的調(diào)用請(qǐng)求:
(2)用戶請(qǐng)求被1018網(wǎng)段攔截,驗(yàn)證token信息。若token信息不符合,則返回JSON信息,說(shuō)明拒絕該次用戶服務(wù)調(diào)用請(qǐng)求;
若token信息符合,則驗(yàn)證通過(guò),用戶請(qǐng)求轉(zhuǎn)到GIS服務(wù)業(yè)務(wù)模塊,從用戶請(qǐng)求中取出特定服務(wù)oid,然后查詢數(shù)據(jù)庫(kù)獲得oid對(duì)應(yīng)的服務(wù),再?gòu)脑摲?wù)所在的GIS Server,讓用戶連接查詢到的服務(wù)中。