鈕 卿
(神華國能集團有限公司,北京 100033)
隨著4G和無線網(wǎng)絡(luò)的普及,移動應(yīng)用技術(shù)得到了長足發(fā)展和廣泛應(yīng)用,智能移動終端也日趨普及,互聯(lián)網(wǎng)與實體經(jīng)濟融合不斷加深,各行各業(yè)的辦公模式也在發(fā)生深刻的變化[1-4].雙網(wǎng)隔離環(huán)境下的傳統(tǒng)發(fā)電企業(yè)管理信息系統(tǒng)由于受限于辦公地點和信息內(nèi)網(wǎng),只能通過內(nèi)網(wǎng)辦公電腦進行訪問,這使得員工一旦出差或離開工位就無法方便地處理日常工作.通過建設(shè)移動應(yīng)用系統(tǒng),使公司員工可以通過移動終端隨時隨地開展業(yè)務(wù),可以有效提高企業(yè)日常事務(wù)和生產(chǎn)運營管理的方便性及工作效率[5-7].
近年,某發(fā)電集團在雙網(wǎng)隔離環(huán)境下建成了模塊化的統(tǒng)一移動平臺,標(biāo)準(zhǔn)功能以集團總部應(yīng)用為主,部分通用功能基層單位也可以使用.隨著基層單位本地個性化業(yè)務(wù)需求的不斷涌現(xiàn),部分單位可將本地應(yīng)用模塊發(fā)布至集團公司移動平臺,但是存在以下問題: 由于系統(tǒng)沒有專門針對兩級應(yīng)用進行優(yōu)化,因此無法較完整地支持兩級應(yīng)用,影響系統(tǒng)使用體驗,增加新模塊建設(shè)難度和系統(tǒng)運維難度.
為充分發(fā)揮基層單位積極性,有必要建立統(tǒng)一標(biāo)準(zhǔn)并能夠柔性適應(yīng)各單位本地業(yè)務(wù)需求的集團級移動平臺.目前相關(guān)研究報道尚少,本文針對以上問題,基于4G和Wi-Fi無線網(wǎng)絡(luò)、Hybrid移動開發(fā)技術(shù)、Nginx反向代理技術(shù)、SSL VPN、安全隔離網(wǎng)閘等相關(guān)技術(shù)的應(yīng)用,對移動平臺整體架構(gòu)的完善、身份認證、接口服務(wù)和網(wǎng)絡(luò)環(huán)境無縫切換等方面關(guān)鍵機制的設(shè)計與優(yōu)化進行了探討.
為支持兩級應(yīng)用,按照移動門戶模式建設(shè)移動平臺,主要包括以下幾個主要部分: 移動應(yīng)用(Application,APP)、移動代理服務(wù)平臺(Mobile Agent Server,MAS)、企業(yè)移動管理平臺(Enterprise Mobile Management,EMM).
與傳統(tǒng)的移動應(yīng)用部署方式相比,移動門戶可以為用戶提供統(tǒng)一的企業(yè)移動應(yīng)用安全入口.移動門戶內(nèi)部采用模塊化的業(yè)務(wù)應(yīng)用管理模式,所有業(yè)務(wù)功能作為移動門戶的子模塊,根據(jù)權(quán)限和用戶需求下載使用,避免安裝多個移動應(yīng)用.對于雙網(wǎng)隔離下兩級應(yīng)用的移動平臺,移動門戶模式更能夠提高用戶體驗,降低維護難度.
同時,移動門戶將技術(shù)類需求和業(yè)務(wù)類需求的實現(xiàn)分離,有利于移動應(yīng)用建設(shè)管理.移動應(yīng)用的整體框架和通用功能在建設(shè)移動門戶時統(tǒng)一設(shè)計,并向各業(yè)務(wù)模塊提供通用的技術(shù)類服務(wù).新開發(fā)業(yè)務(wù)應(yīng)用模塊時只需要將重心放在業(yè)務(wù)功能的實現(xiàn)上.
1.1.1 移動門戶APP
移動應(yīng)用采用Hybrid模式構(gòu)建,能夠較大程度兼容不同品牌移動終端設(shè)備和操作系統(tǒng),開發(fā)人員不需要精通多種移動操作系統(tǒng)的復(fù)雜開發(fā)技術(shù),遇到無法統(tǒng)一的技術(shù)差異時也只需分別開發(fā)不同平臺的插件作為補充,從而使得主要精力專注于功能和業(yè)務(wù)實現(xiàn).通過Hybrid模式構(gòu)建企業(yè)移動門戶,已經(jīng)成為企業(yè)移動信息化的一種主流選擇[3,4].Hybrid開發(fā)模型如圖1所示.
Hybrid開發(fā)模型綜合了Web App和Native App兩種移動開發(fā)模式的優(yōu)點,使用HTML5技術(shù)構(gòu)建用戶界面,并具有訪問設(shè)備的原生功能.
圖1 Hybrid App開發(fā)模型示意圖
本文使用成熟的Hybrid移動應(yīng)用開發(fā)和打包引擎,開發(fā)時前端以Html5+javascript為主,基本實現(xiàn)一次開發(fā),多平臺版本APP打包.
采用VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))和SDK(Software Development Kit,軟件開發(fā)工具包)提供的接口方式,在開發(fā)過程中實現(xiàn)VPN客戶端與移動門戶APP的一體化集成,為移動門戶APP提供專屬的SSL(Security Socket Layer,安全套接層)VPN通道[5].
1.1.2 移動代理服務(wù)平臺(MAS)
采用Node.js技術(shù)構(gòu)建移動代理服務(wù)平臺,為移動端使用企業(yè)內(nèi)部應(yīng)用系統(tǒng)、數(shù)據(jù)庫等資源提供包含數(shù)據(jù)處理邏輯的代理接口,優(yōu)化任務(wù)并行處理,避免阻塞操作,同時可以使得MAS接口的開發(fā)語言與移動應(yīng)用前端保持一致,降低系統(tǒng)建設(shè)與維護難度[3,4].
對于新開發(fā)系統(tǒng),要求在建設(shè)時預(yù)留移動化業(yè)務(wù)接口.對于現(xiàn)有業(yè)務(wù)系統(tǒng),為了在盡可能不修改系統(tǒng)的情況下實現(xiàn)移動化,在對接時一般采用Web適配技術(shù).
移動平臺與業(yè)務(wù)應(yīng)用系統(tǒng)集成關(guān)系如圖2所示.App調(diào)用MAS接口時,后者會相應(yīng)調(diào)用業(yè)務(wù)應(yīng)用系統(tǒng)的業(yè)務(wù)接口,MAS將返回的數(shù)據(jù)解析后,交由移動門戶App進行展現(xiàn).
1.1.3 企業(yè)移動管理平臺(EMM)
使用支持集團級應(yīng)用的成熟企業(yè)移動管理平臺,為企業(yè)提供對用戶、設(shè)備、應(yīng)用的準(zhǔn)入與綜合管理服務(wù),并在此基礎(chǔ)上實現(xiàn)企業(yè)應(yīng)用商店、移動接入控制、移動運行監(jiān)控等關(guān)鍵功能.移動管理平臺應(yīng)具備二次開發(fā)、集成業(yè)務(wù)管理后臺、擴展服務(wù)的能力,保障移動管理體系的完善和全面.
圖2 系統(tǒng)集成示意圖
為支持兩級應(yīng)用,應(yīng)支持建立多級組織機構(gòu)、多級管理權(quán)限、用戶多組織機構(gòu)授權(quán).集團公司管理員可以管理集團總部及各單位的用戶、設(shè)備與應(yīng)用模塊,基層單位管理員可以管理本單位的用戶、設(shè)備與應(yīng)用模塊.
系統(tǒng)主要由MAS服務(wù)器、EMM服務(wù)器、文檔轉(zhuǎn)換服務(wù)器、反向代理服務(wù)器、安全隔離網(wǎng)閘、SSL VPN、移動終端等關(guān)鍵節(jié)點組成[5-17],網(wǎng)絡(luò)接入方式主要包括移動網(wǎng)絡(luò)接入和Wi-Fi接入,如圖3.
在集團側(cè),MAS服務(wù)器部署在集團內(nèi)網(wǎng)核心業(yè)務(wù)區(qū),對內(nèi)與集團業(yè)務(wù)服務(wù)器對接,對外與移動終端、EMM服務(wù)器對接;EMM服務(wù)器部署在集團外網(wǎng)DMZ區(qū),對內(nèi)與MAS服務(wù)器對接,對外與移動終端對接.通過DMZ區(qū)的反向代理服務(wù)器發(fā)布對外服務(wù).
圖3 網(wǎng)絡(luò)架構(gòu)示意圖
為解決基層單位無法在本地使用的問題,各基層單位通過廠內(nèi)局域網(wǎng)為移動平臺提供新的接入通道.在雙網(wǎng)隔離環(huán)境下,應(yīng)部署安全隔離網(wǎng)閘和廠級MAS服務(wù)器.MAS服務(wù)器部署在內(nèi)網(wǎng)核心業(yè)務(wù)區(qū),對內(nèi)與本地業(yè)務(wù)服務(wù)器對接,對外與移動終端對接.在集團和基層單位,通過對安全隔離網(wǎng)閘、SSL VPN等進行設(shè)置,確保只能訪問到內(nèi)網(wǎng)的反向代理服務(wù)器.
網(wǎng)絡(luò)線路升級后,共有2+N條入口線路:
集團線路1: 移動終端通過集團辦公Wi-Fi接入,可直接訪問集團和各單位的MAS服務(wù)在集團側(cè)反向代理服務(wù)器映射到安全隔離網(wǎng)閘DMZ區(qū)的地址.
集團線路2: 移動終端通過移動網(wǎng)絡(luò)或其他Wi-Fi的互聯(lián)網(wǎng)接入集團側(cè).
(1)EMM服務(wù)器均通過反向代理服務(wù)器代理.
(2)接入VPN后,訪問集團和各單位MAS的反向代理服務(wù)器映射到安全隔離網(wǎng)閘DMZ區(qū)的地址.
各基層單位線路N: 移動終端通過廠內(nèi)LTE或Wi-Fi接入,可直接訪問集團和各單位MAS的反向代理服務(wù)器映射到安全隔離網(wǎng)閘廠內(nèi)局域網(wǎng)側(cè)的地址.
系統(tǒng)應(yīng)用架構(gòu)包括提供基礎(chǔ)服務(wù)的通用功能模塊和業(yè)務(wù)功能模塊[5-10],如圖4.
圖4 應(yīng)用架構(gòu)示意圖
基礎(chǔ)功能模塊包括: 移動門戶、VPN連接、身份認證、智能診斷、推送服務(wù)、應(yīng)用商店等.
業(yè)務(wù)功能模塊包括: 集團統(tǒng)一建設(shè)模塊例如生產(chǎn)經(jīng)營、環(huán)保監(jiān)督、協(xié)同辦公、統(tǒng)一待辦、通知公告、生產(chǎn)管理、通訊錄等.基層單位包括例如移動點巡檢、到崗到位、生產(chǎn)監(jiān)控信息等.
系統(tǒng)安全架構(gòu)應(yīng)從網(wǎng)絡(luò)、應(yīng)用、數(shù)據(jù)、終端等多方面進行設(shè)計,形成完整的安全防護體系[11-16].
(1)網(wǎng)絡(luò)安全: 通過SSL VPN建立安全網(wǎng)絡(luò)接入通道,采用WPA2-PSK(AES)加密算法管理設(shè)備接入辦公Wi-Fi,并做設(shè)備準(zhǔn)入控制.通過安全隔離網(wǎng)閘、VPN等設(shè)置最小訪問范圍.
(2)應(yīng)用安全: 通過反向代理設(shè)置最小服務(wù)訪問范圍.采用多重身份認證機制,設(shè)置設(shè)備白名單并進行綁定.采用應(yīng)用級SSL加密.密碼設(shè)置防窮舉攻擊機制.采用系統(tǒng)用戶停用機制.可根據(jù)需要將用戶鎖定.對用戶操作進行詳細的記錄.
(3)數(shù)據(jù)安全: 按照最小緩存策略設(shè)計,內(nèi)部文件以加密圖片形式傳輸并自動清理緩存.用戶名、密碼均加密存儲.應(yīng)用傳輸時數(shù)據(jù)使用高強度算法加密.
(4)終端安全: 移動終端設(shè)置例如開機密碼、鎖定屏幕等機制,防止手機終端被盜用帶來的隱患.安裝安全防護軟件,減少病毒威脅,阻止越權(quán)訪問,并實現(xiàn)重要數(shù)據(jù)的遠程擦除功能.
為了滿足對基層單位個性化業(yè)務(wù)的完整支持,既統(tǒng)一標(biāo)準(zhǔn)又能夠柔性適應(yīng)各單位本地業(yè)務(wù)需求,保證廣域網(wǎng)中斷的情況下還能夠部分使用業(yè)務(wù),移動平臺升級為多網(wǎng)絡(luò)入口,也相應(yīng)增加了技術(shù)復(fù)雜性.為實現(xiàn)不同網(wǎng)絡(luò)環(huán)境下的無縫切換,移動平臺的兩級應(yīng)用按照以下原則進行優(yōu)化:
(1)用戶無論屬于集團總部還是基層單位,都可以使用具有權(quán)限的業(yè)務(wù)功能.
(2)移動端無論處于集團總部、基層單位還是其他網(wǎng)絡(luò)位置,都能夠以最佳方式正確訪問具有權(quán)限的業(yè)務(wù)功能.
(3)自動判斷當(dāng)前網(wǎng)絡(luò)環(huán)境,采用適用的方式保證系統(tǒng)的持續(xù)訪問.
本文從身份認證、接口服務(wù)、網(wǎng)絡(luò)環(huán)境無縫切換等方面對兩級應(yīng)用優(yōu)化進行討論.
身份認證主要包括以下兩類: 集團公司業(yè)務(wù)和部分基層業(yè)務(wù)接入的集團的統(tǒng)一身份認證,其他基層單位業(yè)務(wù)采用的本地認證.按照以上原則,身份認證需要做以下優(yōu)化:
(1)初始化身份認證: 在首次使用移動門戶APP時,應(yīng)通過集團入口進行認證.建立VPN通道后,使用集團統(tǒng)一身份認證帳號進行認證,由集團MAS提供身份認證接口.如果認證成功,則在EMM中將此移動設(shè)備加入白名單,并綁定身份,以后啟動移動門戶APP時只需定期更新集團統(tǒng)一身份認證信息,但不需要頻繁輸入.移動端相應(yīng)增加保護密碼,例如文本密碼、手勢密碼或指紋密碼等.
(2)日常身份認證: 無論用戶的網(wǎng)絡(luò)狀態(tài)如何,客戶端都會在后臺向集團MAS接口發(fā)起統(tǒng)一身份認證.如果通過認證,則可使用全部集成到集團的業(yè)務(wù)模塊.對于基層單位本地在線業(yè)務(wù)模塊,則另行通過本地MAS進行身份認證.對于需要離線使用的模塊,在該模塊每次認證成功后,允許免登錄使用,待下次聯(lián)網(wǎng)使用時,再次進行身份認證,通過認證后同步業(yè)務(wù)數(shù)據(jù).如移動門戶APP啟動時由于網(wǎng)絡(luò)原因未完成某類型的身份認證,則對應(yīng)的模塊不可用,當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生改變時,移動門戶APP會再次發(fā)起身份認證,通過認證后自動點亮相關(guān)模塊.
為實現(xiàn)不同網(wǎng)絡(luò)環(huán)境下移動接口服務(wù)的最大可用性,方便使用和維護,按照以下思路優(yōu)化部署移動接口服務(wù):
(1)分別通過各單位MAS服務(wù)處理本單位側(cè)業(yè)務(wù),即: 集團MAS為接入集團統(tǒng)一身份認證的所有系統(tǒng)提供業(yè)務(wù)處理接口;基層單位MAS為其他本地業(yè)務(wù)系統(tǒng)提供業(yè)務(wù)處理接口.這樣,若發(fā)生例如廣域網(wǎng)中斷的情況,基層單位用戶可以通過本地線路使用本地業(yè)務(wù)功能,通過集團線路2使用已接入集團的業(yè)務(wù)功能.
(2)每個網(wǎng)絡(luò)線路上內(nèi)網(wǎng)的反向代理服務(wù)器均發(fā)布集團和基層單位MAS的服務(wù),即: 集團反向側(cè)代理服務(wù)器將集團MAS和各基層單位MAS的業(yè)務(wù)接口全部進行代理,各單位反向代理服務(wù)器將集團MAS和本單位MAS的業(yè)務(wù)接口進行代理.這樣,只要基層用戶的移動終端能夠接入本單位線路或集團線路中的任何一條,都可以使用該用戶具有權(quán)限的全部業(yè)務(wù)功能.
反向代理技術(shù)是由代理服務(wù)器作為應(yīng)用服務(wù)的前置機,接收用戶的訪問請求并轉(zhuǎn)發(fā)到相應(yīng)的應(yīng)用服務(wù)器,再將應(yīng)用服務(wù)器的響應(yīng)結(jié)果返回給用戶,反向代理過程對于用戶是無感知的.相比較于其他常用的反向代理服務(wù)軟件,Nginx是一款輕量級的產(chǎn)品,其內(nèi)存占用少,業(yè)務(wù)擴展性強,并發(fā)能力強,具有很高的可靠性和穩(wěn)定性,可支持企業(yè)移動平臺所使用的HTTP和HTTPS協(xié)議,適用于企業(yè)級中小型應(yīng)用,在同類型的反向代理服務(wù)軟件中表現(xiàn)較好[17].
本文中集團側(cè)將Nginx反向代理服務(wù)器分別部署在DMZ區(qū)(NginxG1)、內(nèi)網(wǎng)區(qū)(NginxG2).每個基層單位在本單位內(nèi)網(wǎng)區(qū)部署一臺Nginx反向代理服務(wù)器(用NginxN代表).通過配置MAS服務(wù)代理,并提供統(tǒng)一的域名HOSTmas,無論用戶處于集團網(wǎng)絡(luò)還是廠級網(wǎng)絡(luò),都可根據(jù)移動端不同的業(yè)務(wù)請求轉(zhuǎn)發(fā)至不同的MAS服務(wù)端,便于系統(tǒng)開發(fā)和維護.
2.2.1 集團接口服務(wù)的代理
集團接口服務(wù)的代理如圖5所示.
(1)集團MAS服務(wù)器MasG內(nèi)網(wǎng)地址為IPmG,對外提供業(yè)務(wù)接口、推送消息接口、管理后臺三項服務(wù).
(2)集團反向代理NginxG2地址為IPnG2,在NginxG2上配置MasG的代理訪問至IPmG.對MAS管理后臺URL進行過濾,只對外提供業(yè)務(wù)接口、推送消息接口兩項服務(wù).
(3)廠級反向代理NginxN地址為IPnN,在NginxN上配置NginxG2的代理訪問至IPnG2,將集團業(yè)務(wù)接口發(fā)布至NginxN.
(4)安全隔離網(wǎng)閘GapG的DMZ端地址為IPgG,在GapG上配置將內(nèi)網(wǎng)NginxG2地址映射為DMZ端地址IPgG和端口PORTmas,將MAS提供的對外服務(wù)發(fā)布至外網(wǎng)DMZ區(qū).
(5)在外網(wǎng)DMZ區(qū)域名服務(wù)器和VPN移動應(yīng)用環(huán)境配置中,將域名HOSTmas指向GapG的DMZ端地址IPgG.確保通過辦公Wi-Fi或VPN接入的終端使用統(tǒng)一的域名訪問MAS服務(wù).
(6)反向代理NginxG1地址IPnG1,在NginxG1上配置MAS代理訪問至IPgG,代理推送接口.
(7)將互聯(lián)網(wǎng)域名HOSTapp指向外網(wǎng)防火墻FWG的互聯(lián)網(wǎng)地址IPfG,在FWG中配置將NginxG1綁定域名HOSTapp.
(8)配置NginxG1,對MAS業(yè)務(wù)接口URL進行過濾,只允許通過域名HOSTapp訪問MAS服務(wù)接口,只對外推送消息接口一項服務(wù).
(9)EMM的配置同理,將自動升級、設(shè)備管理接口發(fā)布至互聯(lián)網(wǎng).
圖5 集團接口服務(wù)代理示意圖
2.2.2 廠級接口服務(wù)的代理
廠級接口服務(wù)的代理如圖6所示.
(1)廠級MAS服務(wù)器MasN內(nèi)網(wǎng)地址為IPmN,對外提供業(yè)務(wù)接口、管理后臺兩項服務(wù).
(2)廠級反向代理NginxN地址為IPnN.在NginxN上配置MasN的代理訪問至IPmN,代理廠級業(yè)務(wù)接口.
(3)在NginxG2上配置NginxN的代理訪問至IPnN,代理來自于NginxN的廠級業(yè)務(wù)接口.對于多家基層單位,以此方法分別配置廠級業(yè)務(wù)接口的代理.
(4)廠級安全隔離網(wǎng)閘GapN的DMZ端地址為IPgN,在GapN上配置將內(nèi)網(wǎng)NginxN地址映射為外部地址IPgN和端口PORTmas.將MAS服務(wù)DMZ區(qū)域名HOSTmas指向GapN的DMZ端地址IPgN.
用戶無論處于移動網(wǎng)絡(luò)、外部Wi-Fi還是辦公Wi-Fi,在改變所處網(wǎng)絡(luò)環(huán)境后,系統(tǒng)都能夠在新環(huán)境中自動連接,實現(xiàn)用戶基本無感知的無縫切換.
(1)配置辦公Wi-Fi列表: 在EMM服務(wù)上維護各單位適用的辦公Wi-Fi列表.移動門戶APP完成用戶綁定后,根據(jù)用戶所在單位下載相應(yīng)的辦公Wi-Fi列表,每次接入EMM服務(wù)認證時,檢測是否有新版本的辦公Wi-Fi列表,如有則進行更新,確保辦公Wi-Fi列表處于最新狀態(tài).
(2)網(wǎng)絡(luò)狀態(tài)切換時的處理策略: 當(dāng)移動端接入網(wǎng)絡(luò)狀態(tài)切換后,若未處于辦公Wi-Fi下,則自動嘗試通過互聯(lián)網(wǎng)(集團線路1)建立至集團VPN的安全通道;若處于辦公Wi-Fi列表所包含名稱的網(wǎng)絡(luò)中,則訪問域名為HOSTmas的服務(wù)端,判斷是否為辦公Wi-Fi.若能夠訪問域名為HOSTmas的服務(wù)端,則處于辦公Wi-Fi,可正常開展業(yè)務(wù);若不能訪問,則在下次網(wǎng)絡(luò)狀態(tài)切換之前,都認為移動端處于非辦公Wi-Fi下,標(biāo)記該狀態(tài)并自動嘗試通過互聯(lián)網(wǎng)建立集團VPN安全通道.此時,只要移動端能夠訪問互聯(lián)網(wǎng),或處于企業(yè)內(nèi)部辦公Wi-Fi網(wǎng)絡(luò)中,都能夠訪問域名為HOSTmas的服務(wù)端,并通過當(dāng)前線路的代理服務(wù)與MAS對接;由于不同的MAS服務(wù)各司其職,反向代理服務(wù)只是轉(zhuǎn)發(fā)數(shù)據(jù),不另外生成會話,所以網(wǎng)絡(luò)切換后,即使切換了代理服務(wù)也不會影響MAS的會話狀態(tài),從而實現(xiàn)業(yè)務(wù)的無縫切換.
圖6 兩級接口服務(wù)代理示意圖
本文在某發(fā)電集團企業(yè)的移動平臺現(xiàn)狀基礎(chǔ)上進一步研究,設(shè)計了雙網(wǎng)隔離環(huán)境下支持兩級應(yīng)用的集團級移動平臺,通過網(wǎng)絡(luò)架構(gòu)升級,以及對身份認證、接口服務(wù)和網(wǎng)絡(luò)環(huán)境無縫切換的優(yōu)化,解決了系統(tǒng)兩級應(yīng)用的問題,并進行了部分應(yīng)用實踐,方案具有可行性,為雙網(wǎng)隔離環(huán)境的集團企業(yè)建設(shè)移動平臺提供了一定的參考.