覃雷


摘? ?要:在部署企業對內支撐系統時,為充分利用互聯網的便捷性及微信龐大用戶群優勢,很多企業已經把面向公眾銷售業務產品服務的商城系統部署到微信公眾號上。事實上微信生態允許我們在延續這種便捷性優勢的前提下實現企業對內支撐系統的快速部署。本文基于企業微信的微工作臺針對企業內部非敏感性支撐系統的建設與部署提出自己的解決方案。
關鍵詞:微信? 企業微信? 支撐系統? 安全建設
中圖分類號:TP39? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)10(a)-0129-02
在互聯網上部署企業對內支撐系統時,業務數據安全性及員工接入的便捷性是兩個重要的關切點。當業務數據比較敏感時很多企業都采用了自建VPN接入的方式,企業自建的VPN涉及防火墻等安全防護的投入[1],整體部署成本較高。對一些敏感性不高的業務系統,很多企業采用了直接在互聯網上部署的方式,這種方式意味所有互聯網用戶都可以看到系統;同時員工需要記下各系統的賬號密碼并在每次登陸時輸入,既增加了系統安全風險,也不方便員工使用。
本文主要研究解決以下問題來實現非敏感性對內支撐系統相對更安全更便捷的建設與部署方案:如何用企業微信部署企業對內支撐系統實現互聯網訪問渠道的有效控制;如何實現企業微信與公眾號粉絲數據的關聯,進而實現公眾號上的業務數據與企業微信上的內部支撐系統數據關聯。本文涉及本地實驗環境如表1所示。
1? 在企業微信微工作臺中部署對內支撐系統
1.1 為接入的支撐系統創建單獨的應用并配置接入參數
在我們部署成功后,微信用戶可以同時通過微工作臺或企業微信APP來登陸所部署的支撐系統,雖然騰訊一直在引導用戶轉向企業微信APP,但本方案仍推薦微工作臺方式,企業微信的API接口已對微工作臺做兼容處理,所以對要接入的支撐系統來講,接入方式和代碼是完全一致的。微工作臺的優勢是讓員工可以直接用微信而不需再安裝一個新的APP來登陸。
企業管理員登陸企業微信后臺后,在應用管理頁面的自建區可以為要部署的各支撐系統單獨創建應用,每個創建成功的應用都將獲得自己的Secret及應用的單獨參數配置頁面。我們需要進入應用參數配置頁面中啟用“網頁授權及JS-SDK”(把企業支撐系統的訪問域名填入即可),同時還需進入“消息接收”選項中啟用API接收(配置接收消息的URL)。
1.2 支撐系統登陸代碼改造為“從企業微信微平臺接入并通過OAuth2.0鑒權登陸”
將企業支撐系統接入企業微信實際上僅需對原支撐系統的登陸代碼做一定改造優化,即把原登陸代碼中“核對用戶登陸名密碼并登陸”部分改造為“微信OAuth2.0鑒權并登陸”,處理邏輯詳見圖1。
雖然企業微信應用接入access_token有效期一般是2h[2],但接入微信服務端的API頻次是有限制的[3]。所以為保障接入正常上圖2中的第4、5步驟我們完成可以把新獲取到的access_token先保存到本地數據庫,后續應用需使用時先從本地數據庫讀取,如本地過期則重新刷新并保存。這樣可以實現應用內并發的多個接入點共享重復使用access_token。
1.3 創建微信消息接收與響應處理頁
企業支撐系統與微信做數據交互時,微信服務器的所有響應信息全部推送到接收消息URL(即上文“消息接收”選項中配置的URL)。微信交互的消息處理及員工的登陸日志,我們可以在此“消息接收”頁面程序中實現。
2? 企業支撐系統登陸帳號的對接同步與維護
2.1 規范企業微信登陸帳號
因為登陸鑒權入口由企業微信控制,所以企業微信的成員就是最好的支撐系統登陸帳號,維護企業微信的通訊錄即是企業支撐系統登陸帳號,而員工登陸后的業務權限則由支撐系統在后臺代碼中另外控制即可。
企業微信成員支持兩種加入方式,方式一:管理員預先在企業微信后臺批量導入成員帳號清單做預授權,成員通過微信(掃碼或搜索企業名稱)關注微工作臺即可完成加入流程;方式二:成員從微信(掃碼或搜索企業名稱)關注微工作臺(關注后審核之前看不到任何信息,相當于申請),然后管理員從企業微信的后臺進行審核。無論是哪種加入方式,企業微信的管理員都可以對成員的帳號進行編輯定制,這一點我們后面的同步管理非常有利。本方案推薦員工統一以自己手機號作為成員帳號(默認是微信號,所以管理員需要做出規范要求)。
2.2 創建同步服務,定時從微信API服務器同步企業微信通訊錄數據
盡管通過消息接收API,支撐系統后臺可以獲得微信服務器推送的成員關注、取關消息,但互聯網網絡異常情況時有發生,而微信服務器并不會因前期異常而重新下發用戶消息。所以建立一個主動與微信服務器同步企業微信通訊錄的服務是很必要的。因為同步作業可以完全不需人工交互,所以創建一個服務來實現比較合適。企業微信的通訊錄同步可以分為部門同步和部門成員同步。為方便管理,部門及成員的表結構可以完全按微信服務端的結構建立。同步時先同步部門再同步成員,代碼示例見圖2。
同步的處理策略:(1)每天定時拉取最新成員列表通過userid與本地庫進行比對;(2)最新成員列表沒有但本地庫存在的表示已取消關注;(3)最新成員列表有但本地庫沒有的則是新增成員,對新增成員進一步向微信接口獲取完整用戶信息后保存到到本地數據庫;(4)當企業員工較多時,可能涉及長時間占用本地計算資源來做寫入操作,這種情況下建議選擇非業務高峰時段進行同步作業。需要特別說明的是,因為企業微信通訊錄只影響登陸而不涉及業務權限管控,所以在同步通訊錄時對新加入的成員要做好默認業務權限的配置。
2.3 可將企業微信成員與公眾號粉絲關聯,實現微信生態內部分業務場景的協同
對已在微信公眾號上建立了商城的企業,在運營中會有很多需要把企業員工與粉絲進行關聯的業務場景,比如:(1)為提高公眾號粉絲規模,公眾號運營團隊有時需要對粉絲進行細分并劃歸不同員工負責;(2)商城銷售訂單采用促銷人激勵機制,社會促銷人員的發展需要發動員工進行組織和發展。由于我們已規定用員工手機號作為企業微信的成員帳號(即userid為手機號),要支撐上述場景只需引導過公眾號粉絲綁定手機號(這本身即是業務銷售的必要信息),然后與企業微信成員userid進行關聯即可。因為涉及公眾號粉絲維護,所以又要求我們對公眾號的粉絲也要進行同步,公眾號同步的策略與上文的企業微信通訊錄同步類似,在此略過。
3? 結語
接入企業微信進行部署后,通過OAuth2.0鑒權企業員工用自己微信就可以直接登陸企業內部支撐系統,員工的微信號即相當于支撐系統的登陸工號;哪些工號可以登陸由企業微信的通訊錄控制,登陸后的具體的業務權限由支撐系統自己管控;與此同時,支撐系統將對不通過企業微信的接入全部進行屏蔽。這些措施將幫助原來完全暴露在互聯網的企業支撐系統有效控制訪問接入的渠道,顯著提升支撐系統的安全性。此外,對已經把網上商城部署到微信公眾號的企業,當一些特殊業務場景需要做系統間的數據關聯或協同操作時,由于同樣基于微信生態這類支撐將變得更簡單快捷。
參考文獻
[1] 成松.企業網VPN接入方案設計與實施[D].南京:南京郵電大學,2016.
[2] 企業微信服務端API.https://work.weixin.qq.com/api/doc#90000/90135/91039.
[3] 訪問頻率限制.https://work.weixin.qq.com/api/doc#90000/90139/90312.