鐘睿
(中國(guó)鐵建昆侖投資集團(tuán)有限公司 四川省成都市 610041)
在傳統(tǒng)的企業(yè)信息系統(tǒng)建設(shè)中,一般采用按業(yè)務(wù)類(lèi)型分散式地建設(shè)各業(yè)務(wù)系統(tǒng)。與傳統(tǒng)分散的各業(yè)務(wù)系統(tǒng)相比,建立統(tǒng)一的企業(yè)門(mén)戶可以為企業(yè)信息系統(tǒng)提供穩(wěn)定的、可伸縮和可靠的基礎(chǔ)和框架結(jié)構(gòu)。能夠?yàn)樽罱K用戶提供更個(gè)性化的功能,更直觀和易用的界面,可以簡(jiǎn)化用戶的使用并提高工作效率。另外還可作為信息化管理工具,讓企業(yè)管理者能夠了解企業(yè)的經(jīng)營(yíng)狀況,實(shí)時(shí)調(diào)整企業(yè)的運(yùn)營(yíng)。企業(yè)的領(lǐng)導(dǎo)、員工都能利用此門(mén)戶找到相關(guān)的信息,實(shí)現(xiàn)業(yè)務(wù)協(xié)作,提升工作效率。實(shí)現(xiàn)“以業(yè)務(wù)功能為驅(qū)動(dòng),以服務(wù)為導(dǎo)向”的企業(yè)信息化管理理念。
企業(yè)建設(shè)的應(yīng)用系統(tǒng)越多,其所包含的開(kāi)發(fā)技術(shù)就越多,這種技術(shù)異質(zhì)性環(huán)境的影響也越大。企業(yè)門(mén)戶已經(jīng)成為應(yīng)用系統(tǒng)集成領(lǐng)域的主導(dǎo)技術(shù),可以輕松跨越底層技術(shù)的異質(zhì)性帶來(lái)的麻煩。融合各業(yè)務(wù)系統(tǒng)的組織架構(gòu)、人員信息、基礎(chǔ)數(shù)據(jù)、業(yè)務(wù)信息、消息推送等相關(guān)資源,首先需要解決的是各業(yè)務(wù)系統(tǒng)賬戶的身份認(rèn)證問(wèn)題,這就需要通過(guò)單點(diǎn)登錄技術(shù)來(lái)實(shí)現(xiàn)。
傳統(tǒng)的分散式信息系統(tǒng),用戶需要分別登錄到各自系統(tǒng)內(nèi)才能進(jìn)行相關(guān)業(yè)務(wù)辦理,每個(gè)業(yè)務(wù)系統(tǒng)有其獨(dú)立的組織架構(gòu)體系和用戶名、密碼,用戶必須記住這些用戶名和密碼才能使用相應(yīng)的系統(tǒng)。從系統(tǒng)安全、系統(tǒng)管理、用戶方便性角度來(lái)說(shuō),利用單點(diǎn)登錄技術(shù)建立的企業(yè)門(mén)戶集成了所有的業(yè)務(wù)系統(tǒng),并且每個(gè)員工只需一個(gè)用戶名和密碼即可登錄所有授權(quán)的業(yè)務(wù)系統(tǒng),實(shí)現(xiàn)對(duì)用戶賬號(hào)的集中管理,這就是單點(diǎn)登錄系統(tǒng)(Single Sign On),簡(jiǎn)稱(chēng)為SSO。
以人力資源系統(tǒng)的組織架構(gòu)和人員信息為基礎(chǔ)建立的單點(diǎn)登錄系統(tǒng),可以集中管理企業(yè)所有信息系統(tǒng)的用戶帳戶。從任何一個(gè)系統(tǒng)登錄后,用戶都可以直接訪問(wèn)其他業(yè)務(wù)系統(tǒng)的授權(quán)資源,完成對(duì)用戶身份的統(tǒng)一認(rèn)證。為實(shí)現(xiàn)各業(yè)務(wù)系統(tǒng)要素的深度整合奠定了良好的技術(shù)架構(gòu),也為未來(lái)信息系統(tǒng)的建設(shè)明確了統(tǒng)一的用戶管理開(kāi)發(fā)框架,避免重復(fù)投資。并且從技術(shù)實(shí)現(xiàn)角度,進(jìn)一步加強(qiáng)了系統(tǒng)安全,防范系統(tǒng)性風(fēng)險(xiǎn)。
隨著系統(tǒng)集成新技術(shù)的發(fā)展和企業(yè)信息系統(tǒng)建設(shè)需要,使用成熟的OpenID2.0 技術(shù)來(lái)實(shí)現(xiàn)SSO 系統(tǒng)是一個(gè)重要的發(fā)展方向。OpenID2.0 是一種公開(kāi)化的技術(shù)規(guī)范,得到了例如Google 還有騰迅等公司的大力支持。
3.1.1 OpenID2.0 技術(shù)介紹
OpenID2.0 是一個(gè)以用戶為中心的數(shù)字身份識(shí)別框架,它具有開(kāi)放、分散、自由等特性。同時(shí)OpenID2.0 又是一個(gè)去中心化的網(wǎng)上身份認(rèn)證系統(tǒng),任何網(wǎng)站都可以使用OpenID2.0 來(lái)作為用戶登錄的一種方式,任何網(wǎng)站也都可以作為OpenID2.0 的身份提供者。OpenID2.0 既解決了統(tǒng)一身份登錄的問(wèn)題而又不需要依賴(lài)中心性的網(wǎng)站來(lái)確認(rèn)數(shù)字身份。
圖1:企業(yè)微信掃碼登錄接入流程
圖2:企業(yè)微信消息推送流程
OpenID2.0 的創(chuàng)建基于以下概念:既可以通過(guò)URI(又叫URL或網(wǎng)站地址)來(lái)認(rèn)證一個(gè)網(wǎng)站的唯一身份,也可以通過(guò)這種方式來(lái)作為用戶的身份認(rèn)證。由于URI 是整個(gè)網(wǎng)絡(luò)世界的核心,它為基于URI 的用戶身份認(rèn)證提供了廣泛的、堅(jiān)實(shí)的基礎(chǔ)。使用OpenID2.0,你要訪問(wèn)的網(wǎng)絡(luò)資源(URI)就是你的用戶名,而你的密碼安全存儲(chǔ)在一個(gè)OpenID2.0 服務(wù)器上[1]。
3.1.2 OpenID2.0 技術(shù)架構(gòu)的單點(diǎn)登錄系統(tǒng)
通過(guò)對(duì)OpenID2.0 技術(shù)的簡(jiǎn)單介紹,可以看到采用該技術(shù)可以完成各項(xiàng)系統(tǒng)功能的同時(shí),對(duì)將來(lái)的全網(wǎng)整合也有很好的前瞻性。
(1)OpenID2.0 技術(shù)架構(gòu)實(shí)現(xiàn)的單點(diǎn)登錄系統(tǒng)是通過(guò)請(qǐng)求令牌和訪問(wèn)令牌來(lái)實(shí)現(xiàn)的,用戶登錄訪問(wèn)任意系統(tǒng)時(shí)候,都會(huì)獲取到請(qǐng)求令牌和訪問(wèn)令牌,這個(gè)就并不要求用戶必須從指定的入口進(jìn)行登錄,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)訪問(wèn)其它業(yè)務(wù)系統(tǒng)的數(shù)據(jù)變?yōu)榭赡堋?/p>
(2)用戶名密碼只會(huì)在用戶和認(rèn)證服務(wù)器之間進(jìn)行交流,并且認(rèn)證服務(wù)器我們是采用HTTPS 進(jìn)行傳輸?shù)模⑶业卿浿粫?huì)發(fā)生在認(rèn)證服務(wù)器上,這會(huì)在最大程度上的保證了用戶密碼的安全性。
(3)OpenID2.0 實(shí)現(xiàn)的認(rèn)證中心是松耦合的,技術(shù)實(shí)現(xiàn)上并不要求Cookie 支持,因此不要求用戶進(jìn)行集中建設(shè),這為進(jìn)行將來(lái)全網(wǎng)整合提供可能性,比如中國(guó)鐵建昆侖集團(tuán)的用戶希望訪問(wèn)上級(jí)鐵建股份公司的業(yè)務(wù)系統(tǒng)時(shí),只要鐵建股份的業(yè)務(wù)系統(tǒng)也是按照OpenID2.0 規(guī)范來(lái)實(shí)現(xiàn),那么只要有授權(quán),就可以直接用中國(guó)鐵建昆侖集團(tuán)的用戶賬號(hào)直接訪問(wèn)中國(guó)鐵建股份公司的業(yè)務(wù)系統(tǒng)。
(4)由于登錄都是發(fā)生在認(rèn)證服務(wù)器和用戶之間,我們可以統(tǒng)一的建立用戶名密碼和CA 方式的登錄,這樣對(duì)于認(rèn)證方式不同的資源之間的訪問(wèn)也可以實(shí)現(xiàn)。
統(tǒng)一的用戶身份認(rèn)證與訪問(wèn)安全集中管理的SSO 系統(tǒng),其價(jià)值主要體現(xiàn)在企業(yè)管理方面、系統(tǒng)管理員、普通用戶和系統(tǒng)安全性等多個(gè)方面:
(1)企業(yè)方面。在用戶身份與訪問(wèn)SSO 集中管理系統(tǒng)下,用戶賬號(hào)將納入統(tǒng)一建立、集中設(shè)置、自動(dòng)分配,并且均有詳細(xì)記錄,可以進(jìn)行統(tǒng)一審計(jì),可在一處集中管理用戶身份,從而降低企業(yè)的管理成本。
(2)管理員方面。采用SSO 集中系統(tǒng),方便用戶賬號(hào)的全生命周期管理。包括賬號(hào)的創(chuàng)建、權(quán)限的修改、個(gè)人信息變更、密碼更改、賬號(hào)停用等,都可以在一個(gè)系統(tǒng)上進(jìn)行管理,使用戶與其賬號(hào)的匹配關(guān)系更加符合實(shí)際情況。
(3)用戶方面。通過(guò)SSO 單點(diǎn)登錄系統(tǒng),可以確保用戶權(quán)限的分配符合安全策略的要求,僅具有完成任務(wù)所需的最低權(quán)限。用戶可以通過(guò)系統(tǒng)提供的自助管理界面輕松更改自己的密碼和個(gè)人基本信息。并且用戶只需一次登錄即可輕松訪問(wèn)所有授權(quán)的信息系統(tǒng),從而消除了需要記住多個(gè)賬戶名和密碼的麻煩,便于提高工作效率。
(4)系統(tǒng)安全方面。通過(guò)SSO 系統(tǒng),只需一個(gè)操作即可徹底清除與每個(gè)用戶相關(guān)的所有信息系統(tǒng)賬戶權(quán)限,以避免出現(xiàn)用戶離職或者登錄權(quán)限發(fā)生變動(dòng)時(shí),該賬戶仍然存在于原系統(tǒng)中的情況。另外作為用戶身份管理與訪問(wèn)控制系統(tǒng)也為安全策略的強(qiáng)制執(zhí)行提供了技術(shù)手段。
在5G、AIoT 等新興技術(shù)不斷發(fā)展的背景下,基于移動(dòng)互聯(lián)網(wǎng)的辦公越來(lái)越普及。如果移動(dòng)端沒(méi)有和PC 端門(mén)戶系統(tǒng)構(gòu)建統(tǒng)一的身份認(rèn)證關(guān)聯(lián),導(dǎo)致員工需要在移動(dòng)端重新輸入用戶名和密碼登錄門(mén)戶系統(tǒng)的話,將大大降低用戶體驗(yàn)性和系統(tǒng)安全性。所以在移動(dòng)辦公設(shè)備上解決統(tǒng)一身份認(rèn)證問(wèn)題也已迫在眉睫。
我們使用在國(guó)內(nèi)用戶基數(shù)最大的移動(dòng)通訊及辦公平臺(tái)企業(yè)微信,通過(guò)微信消息服務(wù)接口,采用OpenID 和OAuth2.0 技術(shù)將企業(yè)門(mén)戶集成的各類(lèi)應(yīng)用系統(tǒng)整合到企業(yè)微信平臺(tái),并將人力系統(tǒng)中的人員編碼和企業(yè)微信ID 號(hào)對(duì)應(yīng),實(shí)現(xiàn)人員的統(tǒng)一身份認(rèn)證。各應(yīng)用系統(tǒng)也統(tǒng)一應(yīng)用H5 編碼規(guī)范,開(kāi)發(fā)了移動(dòng)端審批系統(tǒng),集成了OA、合同管理、財(cái)務(wù)管理、會(huì)務(wù)管理、印信管理、資產(chǎn)設(shè)備管理等各類(lèi)移動(dòng)辦公業(yè)務(wù),形成了以企業(yè)微信為主體的移動(dòng)辦公統(tǒng)一平臺(tái),以便于員工在一個(gè)APP 上解決所有移動(dòng)辦公需求。
OAuth2.0 授權(quán)協(xié)議一種安全的登陸協(xié)議,用戶提交的賬戶密碼不提交到第三方應(yīng)用,而是提交到授權(quán)服務(wù)器,待服務(wù)器確認(rèn)后,返回應(yīng)用系統(tǒng)一個(gè)訪問(wèn)令牌,應(yīng)用系統(tǒng)即可用該訪問(wèn)令牌訪問(wèn)資源服務(wù)器的資源。由于用戶的賬號(hào)密碼并不與應(yīng)用系統(tǒng)直接交互,而是與認(rèn)證服務(wù)器交互,因而它是安全的。
OAuth2.0 開(kāi)放授權(quán)網(wǎng)絡(luò)協(xié)議在第三方應(yīng)用和服務(wù)提供商之間設(shè)置了一個(gè)授權(quán)層,第三方應(yīng)用不能之間登錄服務(wù)提供商,只能登錄授權(quán)層,以此將用戶與服務(wù)提供商分開(kāi),第三方應(yīng)用登錄授權(quán)所用的令牌(令牌可以設(shè)置權(quán)限范圍和有效期),也就是說(shuō)OAuth2.0開(kāi)放授權(quán)網(wǎng)絡(luò)協(xié)議允許用戶讓第三方應(yīng)用訪問(wèn)該用戶在信息系統(tǒng)上存儲(chǔ)的資源,而無(wú)需將用戶名和密碼提供給第三方。[2]
基于OAuth2.0 開(kāi)放授權(quán)網(wǎng)絡(luò)協(xié)議,我們采用企業(yè)微信作為移動(dòng)服務(wù)平臺(tái),運(yùn)用企業(yè)微信的OpenID 和OAuth2.0 認(rèn)證技術(shù),將企業(yè)微信的userid轉(zhuǎn)成OpenID,與企業(yè)門(mén)戶的單點(diǎn)登錄系統(tǒng)相互集成,以此來(lái)整合企業(yè)的各類(lèi)信息系統(tǒng)及移動(dòng)應(yīng)用,實(shí)現(xiàn)了企業(yè)微信掃碼登錄的身份認(rèn)證方案,整合了企業(yè)信息化應(yīng)用服務(wù)平臺(tái)PC 端和移動(dòng)端的統(tǒng)一認(rèn)證入口。
4.3.1 企業(yè)微信掃碼登錄
企業(yè)微信提供了OAuth 的掃碼登錄授權(quán)方式,可以讓企業(yè)門(mén)戶網(wǎng)站在瀏覽器內(nèi)打開(kāi)時(shí),引導(dǎo)成員使用企業(yè)微信掃碼登錄授權(quán),從而獲取成員的身份信息,免去輸入用戶名和密碼登錄的環(huán)節(jié)。如圖1所示。
企業(yè)微信掃碼認(rèn)證登錄有效解決了員工經(jīng)常忘記企業(yè)門(mén)戶登錄用戶名和密碼的問(wèn)題,員工僅需通過(guò)手機(jī)企業(yè)微信掃碼就實(shí)現(xiàn)門(mén)戶及各個(gè)業(yè)務(wù)系統(tǒng)的登錄,在提升便捷性和系統(tǒng)并發(fā)性的同時(shí),也從一定程度上避免了弱口令、密碼丟失、暴力破解等問(wèn)題,提升了門(mén)戶系統(tǒng)的安全性。
4.3.2 企業(yè)微信消息推送
企業(yè)微信開(kāi)放了消息發(fā)送接口,自建的信息系統(tǒng)可以利用這些接口與企業(yè)微信后臺(tái)進(jìn)行雙向通信。
為了實(shí)現(xiàn)自建應(yīng)用與企業(yè)微信間的雙向通信,需打開(kāi)企業(yè)微信應(yīng)用管理后臺(tái)的消息接收模式,并提供使用加密傳輸協(xié)議https 的可用的接收消息服務(wù)器URL。開(kāi)啟接收消息模式后,用戶在應(yīng)用里發(fā)送的消息就會(huì)推送給企業(yè)微信后臺(tái)。如圖2所示。
通過(guò)企業(yè)微信消息服務(wù)接口,我們采用OpenID 與員工編號(hào)相對(duì)應(yīng),構(gòu)建了統(tǒng)一的消息推送服務(wù)平臺(tái)。該平臺(tái)能夠?qū)⑵髽I(yè)門(mén)戶內(nèi)自建的各業(yè)務(wù)系統(tǒng),以及企業(yè)微信內(nèi)建立的第三方應(yīng)用等各類(lèi)消息推送給員工,并且能夠?qū)崿F(xiàn)根據(jù)不同的消息類(lèi)型精準(zhǔn)推送給各特定用戶。所推送的消息內(nèi)容涵蓋各業(yè)務(wù)系統(tǒng)的待辦提醒、系統(tǒng)通知、業(yè)務(wù)流程審批信息、工資條、會(huì)議提醒、會(huì)議室預(yù)定、設(shè)備維修、問(wèn)卷調(diào)查等多類(lèi)型、多來(lái)源的消息推送。實(shí)現(xiàn)了“一站式”移動(dòng)服務(wù)平臺(tái),有效地提高了移動(dòng)門(mén)戶的綜合服務(wù)能力。
在當(dāng)今移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計(jì)算等技術(shù)快速發(fā)展的時(shí)代,構(gòu)建基于OpenID 的統(tǒng)一身份認(rèn)證管理平臺(tái),集成移動(dòng)辦公與單點(diǎn)登錄系統(tǒng),能夠極大地改善企業(yè)信息門(mén)戶平臺(tái)的綜合服務(wù)能力,為員工提供一套靈活、高效的辦公平臺(tái),為信息化管理人員構(gòu)建安全可靠、方便運(yùn)維的管理工具,為企業(yè)信息化建設(shè)提供堅(jiān)實(shí)有力的技術(shù)支持。