国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

通過(guò)互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)網(wǎng)Web Service技術(shù)的研究與實(shí)現(xiàn)

2016-02-16 06:20楊金剛高效松施卉磊
鐵路計(jì)算機(jī)應(yīng)用 2016年10期
關(guān)鍵詞:令牌日志路由

楊金剛,劉 軍,高效松,施卉磊

(哈爾濱鐵路局 信息技術(shù)所,哈爾濱 150006)

通過(guò)互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)網(wǎng)Web Service技術(shù)的研究與實(shí)現(xiàn)

楊金剛,劉 軍,高效松,施卉磊

(哈爾濱鐵路局 信息技術(shù)所,哈爾濱 150006)

文章通過(guò)互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)網(wǎng)Web Service技術(shù)的研究探索,分析了鐵路安全平臺(tái)的原理和結(jié)構(gòu),提出了穿越鐵路安全平臺(tái)的一般實(shí)現(xiàn)方法,并指出了該方法的不足之處。文章結(jié)合哈爾濱鐵路局的實(shí)際項(xiàng)目,給出了互聯(lián)網(wǎng)訪問(wèn)內(nèi)部資源代理程序的實(shí)現(xiàn)方法,該代理程序?qū)崿F(xiàn)了互聯(lián)網(wǎng)訪問(wèn)路網(wǎng)資源的可配置性及零編程。

安全平臺(tái);Web Service;數(shù)字證書(shū);令牌;代理程序

近幾年,為了提升鐵路運(yùn)輸服務(wù)質(zhì)量,鐵路總公司相繼建立了12306互聯(lián)網(wǎng)售票、95306貨運(yùn)電子商務(wù)平臺(tái)等,為旅客出行和貨主貨運(yùn)提供了極大的便利,今后借助互聯(lián)網(wǎng)來(lái)方便公眾、提升服務(wù)質(zhì)量的信息系統(tǒng)項(xiàng)目將會(huì)越來(lái)越多。本文結(jié)合哈爾濱鐵路局網(wǎng)絡(luò)電報(bào)手機(jī)App、職工互動(dòng)交流平臺(tái)及微信平臺(tái)等項(xiàng)目,對(duì)通過(guò)互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)部資源的技術(shù)進(jìn)行深入研究,就通過(guò)互聯(lián)網(wǎng)穿越網(wǎng)絡(luò)安全平臺(tái)調(diào)用鐵路內(nèi)部網(wǎng)Web Service的方法進(jìn)行了詳細(xì)闡述,指出了一般實(shí)現(xiàn)方法的不足,并給出了互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)部資源代理程序的實(shí)現(xiàn)方法。

1 鐵路計(jì)算機(jī)網(wǎng)絡(luò)安全平臺(tái)概述

鐵路計(jì)算機(jī)網(wǎng)絡(luò)安全平臺(tái)(簡(jiǎn)稱:安全平臺(tái))是鐵路總公司計(jì)算機(jī)網(wǎng)絡(luò)安全工程的重要組成部分,是鐵路綜合計(jì)算機(jī)內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)(互聯(lián)網(wǎng))之間的唯一安全連接通道,其設(shè)計(jì)目標(biāo)是建設(shè)一個(gè)先進(jìn)的網(wǎng)絡(luò)安全體系架構(gòu),為鐵路內(nèi)部和外部用戶提供安全可靠的網(wǎng)絡(luò)計(jì)算和通信環(huán)境,規(guī)范鐵路網(wǎng)絡(luò)基礎(chǔ)設(shè)置,形成縱深防御體系,提高網(wǎng)絡(luò)自身防御攻擊能力和網(wǎng)絡(luò)整體性能,滿足日益發(fā)展的內(nèi)外網(wǎng)間應(yīng)用系統(tǒng)數(shù)據(jù)傳輸和安全互訪的需求。

安全平臺(tái)主要由網(wǎng)絡(luò)系統(tǒng)、訪問(wèn)控制系統(tǒng)、證書(shū)管理系統(tǒng)及日志審計(jì)系統(tǒng)等組成。其中,訪問(wèn)控制系統(tǒng)是劃分鐵路內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)的重要邊界,是實(shí)現(xiàn)應(yīng)用系統(tǒng)安全訪問(wèn)的基礎(chǔ),它在物理隔離的內(nèi)、外網(wǎng)絡(luò)之間建立安全的數(shù)據(jù)傳輸通道,對(duì)訪問(wèn)者的身份和權(quán)限進(jìn)行查驗(yàn),確保只有符合條件的授權(quán)用戶才能訪問(wèn)到受保護(hù)的系統(tǒng)資源,同時(shí)對(duì)訪問(wèn)數(shù)據(jù)格式的有效性進(jìn)行校驗(yàn),它由訪問(wèn)通道子系統(tǒng)、訪問(wèn)控制子系統(tǒng)和配置管理子系統(tǒng)組成,訪問(wèn)控制系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 安全平臺(tái)訪問(wèn)控制系統(tǒng)結(jié)構(gòu)圖

1.1 訪問(wèn)控制子系統(tǒng)

主要負(fù)責(zé)對(duì)用戶的身份信息及訪問(wèn)權(quán)限進(jìn)行管理,同時(shí)進(jìn)行用戶認(rèn)證及鑒權(quán)工作。它提供的服務(wù)包括:用戶身份認(rèn)證服務(wù)、訪問(wèn)控制服務(wù)和單點(diǎn)登錄服務(wù)。

1.2 訪問(wèn)通道子系統(tǒng)

在物理隔離的鐵路內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間建立一條安全的數(shù)據(jù)傳輸通道,并進(jìn)一步檢查進(jìn)出數(shù)據(jù)格式的有效性。它提供的服務(wù)包括:正向代理服務(wù)和反向代理服務(wù)。

1.3 配置管理子系統(tǒng)

對(duì)安全代理系統(tǒng)的配置項(xiàng)進(jìn)行管理,以及對(duì)證書(shū)庫(kù)中的證書(shū)進(jìn)行查詢。它提供的服務(wù)包括:安全代理系統(tǒng)的配置服務(wù)和證書(shū)庫(kù)證書(shū)的查詢服務(wù)。

2 互聯(lián)網(wǎng)訪問(wèn)內(nèi)網(wǎng)Web Service方法研究

2.1 安全平臺(tái)訪問(wèn)控制流程

互聯(lián)網(wǎng)用戶通過(guò)鐵路安全平臺(tái)訪問(wèn)內(nèi)部網(wǎng)應(yīng)用系統(tǒng)的過(guò)程如圖2所示,過(guò)程說(shuō)明見(jiàn)表1。

2.2 通過(guò)互聯(lián)網(wǎng)訪問(wèn)內(nèi)部Web Service一般實(shí)現(xiàn)方法

2.2.1 物理架構(gòu)

通過(guò)互聯(lián)網(wǎng)訪問(wèn)內(nèi)部Web Service一般需要3類服務(wù)器:第1類是在互聯(lián)網(wǎng)或鐵路外部服務(wù)網(wǎng)隔離區(qū)(DMZ)區(qū)部署的Web應(yīng)用服務(wù)器,用于為互聯(lián)網(wǎng)用戶提供Web 服務(wù);第2類是在鐵路外部服務(wù)網(wǎng)DMZ區(qū)部署的外網(wǎng)訪問(wèn)接口服務(wù)器,用于部署安全平臺(tái)客戶端數(shù)字證書(shū)、獲取安全平臺(tái)訪問(wèn)令牌(Token)以及為Web 應(yīng)用服務(wù)器提供內(nèi)部網(wǎng)Web Service的代理方法接口;第3類是在鐵路內(nèi)部網(wǎng)部署的Web Service接口服務(wù)器,用于訪問(wèn)鐵路內(nèi)部網(wǎng)絡(luò)的業(yè)務(wù)數(shù)據(jù)。物理架構(gòu)如圖3所示。

圖2 安全平臺(tái)訪問(wèn)控制流程圖

表1 安全平臺(tái)訪問(wèn)過(guò)程控制說(shuō)明

圖3 通過(guò)互聯(lián)網(wǎng)訪問(wèn)內(nèi)部Web Service物理架構(gòu)圖

2.2.2 外網(wǎng)訪問(wèn)接口一般實(shí)現(xiàn)方法

本節(jié)所闡述的實(shí)現(xiàn)方法以Java語(yǔ)言為例。

2.2.2.1 創(chuàng)建客戶端密鑰倉(cāng)庫(kù)(KeyStore)

互聯(lián)網(wǎng)訪問(wèn)內(nèi)網(wǎng)資源時(shí),安全平臺(tái)外網(wǎng)認(rèn)證服務(wù)器需要驗(yàn)證客戶端數(shù)字證書(shū)。編寫外網(wǎng)訪問(wèn)接口使用Java KeyStore密鑰倉(cāng)庫(kù),用Java JDK提供的keytool工具生成密鑰倉(cāng)庫(kù)并導(dǎo)入證書(shū)。導(dǎo)入的4個(gè)證書(shū)分別是:鐵路認(rèn)證中心(CA)根證書(shū)、外網(wǎng)訪問(wèn)控制證書(shū)、內(nèi)網(wǎng)訪問(wèn)控制證書(shū)以及安全平臺(tái)配置生成的PKCS#12格式客戶端證書(shū)。

2.2.2.2 獲取安全平臺(tái)訪問(wèn)令牌

安全平臺(tái)的外網(wǎng)訪問(wèn)控制服務(wù)采用的是基于SSL協(xié)議的HTTPS雙向認(rèn)證方式,認(rèn)證成功后安全平臺(tái)會(huì)為客戶端返回具有一定生存時(shí)間的訪問(wèn)令牌,持有合法令牌的訪問(wèn)請(qǐng)求可以通過(guò)安全平臺(tái)。

取得安全平臺(tái)訪問(wèn)令牌的方法是:(1)進(jìn)行SSLSocket握手,初始化SSLSocket;(2)加載2.2.2.1生成的KeyStore格式的JKS文件和口令,返回SSL上下文的SSLSocketFactory對(duì)象;(3)向HttpsURLConnection對(duì)象注入SSLSocketFactory,利用HttpsURLConnection對(duì)象請(qǐng)求外網(wǎng)認(rèn)證服務(wù)器URL,解析認(rèn)證服務(wù)器返回內(nèi)容,獲取訪問(wèn)令牌。

2.2.2.3 生成內(nèi)網(wǎng)Web Service相應(yīng)的客戶端代碼

Java JDK提供了一個(gè)工具wsimport,可以根據(jù)WSDL生成相應(yīng)的客戶端文件,在項(xiàng)目中使用這些客戶端類文件,就可以像調(diào)用本地類方法一樣調(diào)用遠(yuǎn)程Web Service方法。wsimport工具可以生成由不同語(yǔ)言編寫的Web Service的Java客戶端,生成的內(nèi)網(wǎng)Web Service的Java客戶端類文件和代碼文件,導(dǎo)入到項(xiàng)目中即可使用。

2.2.2.4 為Web Service客戶端類添加訪問(wèn)令牌

通過(guò)2.2.2.3生成的客戶端在訪問(wèn)內(nèi)網(wǎng)Web Service時(shí),必須在SOAP頭部插入采用2.2.2.2獲取的令牌信息,否則將不能通過(guò)安全平臺(tái)驗(yàn)證。

2.2.3 上述實(shí)現(xiàn)方法的不足

利用上述方法實(shí)現(xiàn)通過(guò)互聯(lián)網(wǎng)訪問(wèn)內(nèi)網(wǎng)Web Service有兩方面不足:(1)編程工作量大,靈活性差。當(dāng)內(nèi)網(wǎng)Web Service改動(dòng)時(shí),如新增接口方法、接口參數(shù)更改及調(diào)用方式改變,都必須修改外網(wǎng)訪問(wèn)接口程序,重新生成內(nèi)網(wǎng)Web Service代理類,重新發(fā)布程序;(2)可擴(kuò)展性差,這種方法僅能用于標(biāo)準(zhǔn)的Web Service,對(duì)于用戶自己實(shí)現(xiàn)的通信協(xié)議接口不支持。鑒于以上方法的不足,我們開(kāi)發(fā)了互聯(lián)網(wǎng)訪問(wèn)內(nèi)部資源代理程序,實(shí)現(xiàn)了僅通過(guò)配置項(xiàng)目及內(nèi)部資源的映射,無(wú)需編程即可實(shí)現(xiàn)通過(guò)互聯(lián)網(wǎng)對(duì)內(nèi)部資源的訪問(wèn),并且支持標(biāo)準(zhǔn)的Web Service、Web API及用戶自定義的通信協(xié)議接口。

3 代理程序的設(shè)計(jì)實(shí)現(xiàn)

3.1 代理程序總體架構(gòu)

代理程序由配置、認(rèn)證、路由及日志4部分組成。配置部分用于配置項(xiàng)目的數(shù)字證書(shū)、虛擬地址及內(nèi)部資源映射,以及生成供互聯(lián)網(wǎng)調(diào)用的接口URL。配置部分采用Flask框架用Python語(yǔ)言編寫,配置項(xiàng)的存儲(chǔ)采用MongoDB數(shù)據(jù)庫(kù);認(rèn)證部分用于從配置庫(kù)中讀取數(shù)字證書(shū)文件及密碼,提交安全平臺(tái)外網(wǎng)認(rèn)證服務(wù)器,獲取訪問(wèn)令牌。認(rèn)證部分用Java語(yǔ)言編寫;路由部分用于解析互聯(lián)網(wǎng)請(qǐng)求的URL,根據(jù)項(xiàng)目配置信息,轉(zhuǎn)換成內(nèi)部資源訪問(wèn)地址,并在內(nèi)部資源訪問(wèn)請(qǐng)求頭部附加令牌信息,然后轉(zhuǎn)發(fā)至內(nèi)部Web Service接口服務(wù)器,獲取業(yè)務(wù)數(shù)據(jù)后響應(yīng)互聯(lián)網(wǎng)請(qǐng)求。路由部分還負(fù)責(zé)根據(jù)配置庫(kù)中令牌生存時(shí)間來(lái)對(duì)認(rèn)證部分獲取的令牌進(jìn)行緩存。路由部分采用Flask框架用Python語(yǔ)言編寫,與認(rèn)證部分的通信采用Thrift協(xié)議進(jìn)行RPC調(diào)用;日志部分用于搜集代理程序的調(diào)試信息及性能信息,以便于系統(tǒng)排錯(cuò)和性能瓶頸的確定。代理程序總體架構(gòu)如圖4所示。

3.2 配置項(xiàng)設(shè)計(jì)

代理程序有兩類配置項(xiàng):(1)項(xiàng)目配置項(xiàng);(2)內(nèi)部資源映射配置項(xiàng)。兩者是One-To-Many 關(guān)系,一個(gè)項(xiàng)目可包含多個(gè)內(nèi)部資源映射,配置項(xiàng)存儲(chǔ)在MongoDB數(shù)據(jù)庫(kù)中,項(xiàng)目配置完成后,系統(tǒng)自動(dòng)形成互聯(lián)網(wǎng)調(diào)用的接口URL。下面以哈爾濱鐵路局網(wǎng)絡(luò)電報(bào)手機(jī)APP項(xiàng)目為例闡述配置項(xiàng)設(shè)計(jì)。

3.2.1 項(xiàng)目配置項(xiàng)

下面是項(xiàng)目配置項(xiàng)的一個(gè)實(shí)例,JSON格式,各數(shù)據(jù)域含義見(jiàn)表2。

表2 項(xiàng)目配置項(xiàng)各數(shù)據(jù)域含義

3.2.2 內(nèi)部資源映射配置項(xiàng)

下面是內(nèi)部資源映射配置項(xiàng)的一個(gè)實(shí)例,JSON格式,各數(shù)據(jù)域含義見(jiàn)表3。

表3 內(nèi)部資源映射配置項(xiàng)各數(shù)據(jù)域含義

3.2.3 外部接口URL格式

代理程序的配置部分根據(jù)項(xiàng)目及內(nèi)部資源映射配置,自動(dòng)為每個(gè)內(nèi)部資源生成互聯(lián)網(wǎng)訪問(wèn)接口URL,外部系統(tǒng)通過(guò)調(diào)用接口URL,實(shí)現(xiàn)內(nèi)部資源的訪問(wèn)。接口URL格式:

http://[agent_ip]:[port]/[project]/[inner_url]。

[agent_ip]:運(yùn)行代理程序服務(wù)器IP地址;

[port]:運(yùn)行代理程序服務(wù)端口;

[project]:項(xiàng)目名稱;

[inner_url]:內(nèi)部資源的相對(duì)訪問(wèn)地址。

3.3 路由時(shí)序設(shè)計(jì)

路由部分由路由解析、路由轉(zhuǎn)發(fā)、配置讀取以及認(rèn)證部分Thrift客戶端4個(gè)模塊組成,具體路由時(shí)序設(shè)計(jì)如圖5所示。

圖5 代理程序路由時(shí)序圖

3.4 認(rèn)證設(shè)計(jì)

為了提高性能,認(rèn)證與路由之間內(nèi)部通信沒(méi)有使用HTTP協(xié)議,而是使用了基于Thrift的RPC協(xié)議。Thrift是一個(gè)跨語(yǔ)言的服務(wù)部署框架,2007年由Facebook開(kāi)發(fā),2008年成為Apache開(kāi)源項(xiàng)目。認(rèn)證部分Thrift服務(wù)端采用Java語(yǔ)言編寫,路由部分使用Python語(yǔ)言編寫Thrift客戶端。Thrift服務(wù)端代碼略。

3.5 日志設(shè)計(jì)

代理程序有兩類日志:(1)錯(cuò)誤日志,記錄程序運(yùn)行中出現(xiàn)的錯(cuò)誤信息,便于分析產(chǎn)生錯(cuò)誤原因及定位出錯(cuò)位置;(2)性能日志,記錄認(rèn)證及路由過(guò)程消耗的時(shí)間,便于確定程序性能瓶頸。認(rèn)證部分日志工具采用了開(kāi)源日志組件Log4j ,路由部分日志工具使用Python自帶的Logging日志模塊。代理程序日志分析統(tǒng)一使用了Python語(yǔ)言自行編寫的分析工具。

4 結(jié)束語(yǔ)

本文主要研究了通過(guò)互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)部資源的原理及一般實(shí)現(xiàn)方法,并詳細(xì)闡述了穿越安全平臺(tái)代理程序的設(shè)計(jì)思路。隨著互聯(lián)網(wǎng)訪問(wèn)鐵路內(nèi)部網(wǎng)資源項(xiàng)目的逐漸增多,代理程序?qū)崿F(xiàn)的無(wú)需編程及靈活配置的優(yōu)勢(shì)將日益顯現(xiàn),如今代理程序已經(jīng)作為哈爾濱鐵路局網(wǎng)絡(luò)電報(bào)手機(jī)APP及數(shù)字哈局等項(xiàng)目的基礎(chǔ)設(shè)施,發(fā)揮著重要的作用。

[1]Deepak Vohra .Java 7 JAX-WS Web Services[M].Birmingham:Packt Publishing,2012.

[2]Kristina Chodorow.MongoDB權(quán)威指南[M].2版.北京:人民郵電出版社,2014.

[3]李 亮,尹遜政,孟 軍.基于安全平臺(tái)裁決的ATO系統(tǒng)冗余設(shè)計(jì)與實(shí)現(xiàn)[J].鐵路計(jì)算機(jī)應(yīng)用,2014,23 (2): 32-35.

[4]Miguel Grinberg .Flask Web開(kāi)發(fā):基于Python的Web應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2015.

[5]廖天成,王 博,何化石.運(yùn)輸全過(guò)程管理系統(tǒng)中列車運(yùn)行圖數(shù)據(jù)接口的設(shè)計(jì)與實(shí)現(xiàn)[J].鐵路計(jì)算機(jī)應(yīng)用,2013, 22(2):24-26.

責(zé)任編輯 王 浩

Web Service technology applied to access railway Intranet through Internet

YANG Jingang,LIU Jun,GAO Xiaosong,SHI Huilei
( Institute of Information Technology,Harbin Railway Administration,Harbin 150006,China)

This article made a research and exploration on Web Service technology to access railway Intranet through Internet,proposed a general method of crossing the railway safety platform through the analysis of the principle and structure of the railway safety platform,pointed out some shortcomings of the method.Based on the actual project of Harbin Railway Administration,an implementation method was given to access the internal resources agent program through Internet.The agent program achieved the confguration and zero programming to access resources of railway Intranet through Internet.

security platform;Web Service;digital certifcate;token;proxy

U29∶TP393

A

1005-8451(2016)10-0059-05

2016-05-06

哈爾濱鐵路局科研項(xiàng)目課題(KWH2015063)。

楊金剛,高級(jí)工程師;劉 軍,高級(jí)工程師。

猜你喜歡
令牌日志路由
稱金塊
一名老黨員的工作日志
扶貧日志
鐵路數(shù)據(jù)網(wǎng)路由匯聚引發(fā)的路由迭代問(wèn)題研究
基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
多點(diǎn)雙向路由重發(fā)布潛在問(wèn)題研究
一種基于虛擬分扇的簇間多跳路由算法
路由重分發(fā)時(shí)需要考慮的問(wèn)題
雅皮的心情日志
雅皮的心情日志