崔娟娜
(中國(guó)水利水電第十一工程局有限公司 河南 鄭州 450001)
隨著公司工程業(yè)務(wù)的不斷發(fā)展,公司管理層信息化意識(shí)逐漸增強(qiáng),各業(yè)務(wù)信息系統(tǒng)逐漸增多,各系統(tǒng)組織、人員信息更新不及時(shí),管理困難,且系統(tǒng)容易被外界攻擊,存在安全隱患[1]。目前,各集團(tuán)企業(yè)比較常見的解決方案是實(shí)施統(tǒng)一用戶身份管理系統(tǒng)實(shí)現(xiàn)各業(yè)務(wù)系統(tǒng)賬號(hào)統(tǒng)一和單點(diǎn)登錄。本文通過(guò)水電十一局統(tǒng)一身份認(rèn)證管理系統(tǒng)開發(fā)實(shí)踐,對(duì)系統(tǒng)相關(guān)功能設(shè)計(jì)進(jìn)行闡述和分析。
目前,水電十一局已建的業(yè)務(wù)應(yīng)用系統(tǒng)有財(cái)務(wù)管理系統(tǒng)、報(bào)銷系統(tǒng)、人力資源系統(tǒng),OA系統(tǒng)、知識(shí)管理系統(tǒng)等十幾個(gè)應(yīng)用系統(tǒng),存在一人多個(gè)應(yīng)用系統(tǒng)賬號(hào)的問(wèn)題,工作人員辦理業(yè)務(wù)需要訪問(wèn)多個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)地址,且不同業(yè)務(wù)應(yīng)用系統(tǒng)需要不同系統(tǒng)管理員進(jìn)行系統(tǒng)用戶和組織機(jī)構(gòu)的維護(hù),造成了用戶身份信息分散,人工維護(hù)工作量較大,沒(méi)有統(tǒng)一的用戶身份管理,用戶在各應(yīng)用系統(tǒng)中的賬號(hào)權(quán)限無(wú)法集中管理和查看問(wèn)題。建設(shè)實(shí)施統(tǒng)一用戶身份管理系統(tǒng)在一定程度上可以實(shí)現(xiàn)用戶的統(tǒng)一管理,統(tǒng)一授權(quán)[2]。使用統(tǒng)一身份認(rèn)證管理平臺(tái)可以簡(jiǎn)化登錄流程,與用戶管理有關(guān)的數(shù)據(jù)庫(kù)信息存儲(chǔ)在認(rèn)證服務(wù)器中,可以實(shí)現(xiàn)應(yīng)用漫游。統(tǒng)一身份認(rèn)證平臺(tái)還被運(yùn)用到醫(yī)療、保險(xiǎn)、金融行業(yè)當(dāng)中,簡(jiǎn)化了辦事流程,提高了行業(yè)工作效率。
統(tǒng)一身份認(rèn)證管理就是利用認(rèn)證和服務(wù)相分離的思想,將多個(gè)應(yīng)用系統(tǒng)中的身份認(rèn)證模塊剝離出來(lái),提供一個(gè)統(tǒng)一的身份認(rèn)證入口,使所有的應(yīng)用系統(tǒng)的用戶都能夠使用它來(lái)進(jìn)行身份認(rèn)證,用戶信息在安全性上得以保障。建立統(tǒng)一身份認(rèn)證管理系統(tǒng)后,各系統(tǒng)用戶只需主動(dòng)地進(jìn)行一次身份認(rèn)證,之后不需要主動(dòng)參與其他系統(tǒng)的身份認(rèn)證過(guò)程,便可以訪問(wèn)其被授權(quán)的所有網(wǎng)絡(luò)設(shè)備或信息系統(tǒng)。
統(tǒng)一身份認(rèn)證管理系統(tǒng)總體架構(gòu)主要包括身份管理子系統(tǒng)、認(rèn)證訪問(wèn)控制子系統(tǒng)、集成對(duì)接服務(wù)及將要集成對(duì)接的應(yīng)用系統(tǒng)[3]。系統(tǒng)總體架構(gòu)見圖1,其中身份管理子系統(tǒng)一方面負(fù)責(zé)用戶管理與賬號(hào)管理,另一方面負(fù)責(zé)與上游人力資源系統(tǒng)數(shù)據(jù)對(duì)接以及與下游業(yè)務(wù)系統(tǒng)的數(shù)據(jù)傳遞。認(rèn)證與訪問(wèn)控制子系統(tǒng)負(fù)責(zé)用戶認(rèn)證和單點(diǎn)登錄的實(shí)現(xiàn)。
圖1 系統(tǒng)總體架構(gòu)示意圖
在硬件配置上,系統(tǒng)配置了2臺(tái)4核CPU,16 G內(nèi)存,100 G的存儲(chǔ)空間供應(yīng)用服務(wù);提供了2臺(tái)4核CPU,16 G內(nèi)存,500 G存儲(chǔ)空間進(jìn)行數(shù)據(jù)服務(wù);采用了2臺(tái)4核CPU,16 G內(nèi)存,100 G存儲(chǔ)進(jìn)行網(wǎng)絡(luò)負(fù)載均衡服務(wù)。
在軟件部署上,使用centos7.7操作系統(tǒng),采用Mysql主備復(fù)制模式的數(shù)據(jù)庫(kù),應(yīng)用層服務(wù)采用集群進(jìn)行部署,由Nginx進(jìn)行網(wǎng)絡(luò)負(fù)載均衡的網(wǎng)絡(luò)流量的分發(fā)。
身份管理子系統(tǒng)是統(tǒng)一身份認(rèn)證管理系統(tǒng)的數(shù)據(jù)中心,它集中了統(tǒng)一身份認(rèn)證管理系統(tǒng)的基礎(chǔ)數(shù)據(jù)信息。身份管理子系統(tǒng)包含了用戶管理、賬號(hào)管理、權(quán)限管理、審計(jì)管理等模塊,對(duì)用戶、賬號(hào)及授權(quán)信息進(jìn)行集中管理,一方面保證了用戶信息的安全性和準(zhǔn)確性,另一方面為管理員提供了更加細(xì)致的權(quán)限管理,方便了管理員對(duì)用戶和賬號(hào)的管理。
水電十一局統(tǒng)一身份認(rèn)證管理系統(tǒng)在數(shù)據(jù)同步上的設(shè)計(jì)思路是以公司人力資源系統(tǒng)組織機(jī)構(gòu)和人員信息為統(tǒng)一身份認(rèn)證管理系統(tǒng)上游數(shù)據(jù)源,將人力資源系統(tǒng)中組織和人員信息實(shí)時(shí)同步至統(tǒng)一身份認(rèn)證管理系統(tǒng)并為下游業(yè)務(wù)系統(tǒng)提供相應(yīng)服務(wù),數(shù)據(jù)同步具體流程為:
(1)人力資源系統(tǒng)作為上游數(shù)據(jù)源,將系統(tǒng)中的組織機(jī)構(gòu)、員工信息及任職記錄信息在員工到崗、離職、變更時(shí)通過(guò),統(tǒng)一身份認(rèn)證管理系統(tǒng)提供的相應(yīng)接口服務(wù),實(shí)時(shí)同步至統(tǒng)一身份認(rèn)證管理系統(tǒng)。(2)建立統(tǒng)一的組織信息、用戶信息和賬號(hào)信息。(3)當(dāng)下游業(yè)務(wù)系統(tǒng)需要統(tǒng)一身份認(rèn)證管理系統(tǒng)組織、人員信息時(shí),由統(tǒng)一身份認(rèn)證管理系統(tǒng)完成組織、人員信息的推送工作并實(shí)時(shí)同步數(shù)據(jù)。
以上為統(tǒng)一身份認(rèn)證管理系統(tǒng)與上下游系統(tǒng)數(shù)據(jù)同步流程,通過(guò)上游人力資源系統(tǒng)、統(tǒng)一身份認(rèn)證管理系統(tǒng)和下游業(yè)務(wù)系統(tǒng)三層系統(tǒng)數(shù)據(jù)同步,統(tǒng)一了用戶信息,實(shí)現(xiàn)了信息系統(tǒng)組織和人員信息的安全統(tǒng)一管理和維護(hù),形成了對(duì)用戶身份的全生命周期閉環(huán)管理,同時(shí)為下游各業(yè)務(wù)系統(tǒng)提供組織和人員信息的供給,將各應(yīng)用系統(tǒng)緊密連接起來(lái)。
3.3.1 數(shù)據(jù)生命周期管理
身份管理子系統(tǒng)中的數(shù)據(jù)通過(guò)與各業(yè)務(wù)系統(tǒng)的集成實(shí)現(xiàn)對(duì)組織、人員信息進(jìn)行生命周期的統(tǒng)一管理,下面以人員信息為例進(jìn)行說(shuō)明。
(1)人員入職時(shí),人力資源系統(tǒng)創(chuàng)建員工信息,通過(guò)調(diào)用統(tǒng)一身份認(rèn)證管理系統(tǒng)人員新建接口,將人員信息同步至統(tǒng)一身份認(rèn)證管理系統(tǒng),自動(dòng)創(chuàng)建統(tǒng)一身份認(rèn)證管理系統(tǒng)賬號(hào),并根據(jù)各業(yè)務(wù)系統(tǒng)需要將人員相關(guān)信息同步至下游系統(tǒng),使用戶擁有應(yīng)用系統(tǒng)的訪問(wèn)權(quán)限,但需要說(shuō)明的是,統(tǒng)一身份認(rèn)證管理系統(tǒng)僅僅使用戶擁有了業(yè)務(wù)系統(tǒng)的訪問(wèn)權(quán)限,用戶所在業(yè)務(wù)系統(tǒng)中具體的操作權(quán)限由所在業(yè)務(wù)系統(tǒng)管理員單獨(dú)配置。
(2)人員崗位變更、退休或離職時(shí),人力資源系統(tǒng)通過(guò)調(diào)用統(tǒng)一身份認(rèn)證管理系統(tǒng)人員變動(dòng)接口,將變動(dòng)信息實(shí)時(shí)同步至統(tǒng)一身份認(rèn)證管理系統(tǒng),并根據(jù)需要將此賬號(hào)對(duì)應(yīng)的應(yīng)用系統(tǒng)權(quán)限進(jìn)行賬號(hào)禁用或注銷。
上述場(chǎng)景的操作,一方面統(tǒng)一身份認(rèn)證管理系統(tǒng)自動(dòng)完成了員工一個(gè)賬號(hào)多個(gè)應(yīng)用系統(tǒng)權(quán)限的創(chuàng)建、更新和注銷操作;另一方面最大程度地避免了員工賬號(hào)擁有與其崗位不相關(guān)的應(yīng)用系統(tǒng)操作權(quán)限,加強(qiáng)了賬號(hào)權(quán)限的精細(xì)化管理,保證了信息安全;一定程度上節(jié)省了多個(gè)應(yīng)用系統(tǒng)管理員對(duì)賬號(hào)的重復(fù)操作,有效地提高了工作效率,削減了管理成本。
3.3.2 統(tǒng)一身份認(rèn)證管理系統(tǒng)數(shù)據(jù)信息展示
身份管理子系統(tǒng)與上游人力資源系統(tǒng)實(shí)現(xiàn)集成對(duì)接之后,統(tǒng)一身份認(rèn)證管理系統(tǒng)組織及人員信息模塊完成了數(shù)據(jù)初始化工作,公司統(tǒng)一身份認(rèn)證管理系統(tǒng)組織架構(gòu)為多級(jí)架構(gòu),由于下游業(yè)務(wù)系統(tǒng)對(duì)組織架構(gòu)的要求,在這里設(shè)置了實(shí)體和虛擬組織,紅包的代表虛擬組織,藍(lán)色的代表實(shí)體組織。
人員信息管理在用戶管理平臺(tái)中包含了多種信息:賬號(hào)、姓名、照片、工號(hào)、手機(jī)號(hào)、郵箱、職務(wù)、所屬機(jī)構(gòu)等信息,用戶通過(guò)賬號(hào)、手機(jī)號(hào)進(jìn)行認(rèn)證登錄。賬號(hào)命名規(guī)則為11j+姓名全拼,有重名用1、2…進(jìn)行標(biāo)識(shí)。
單點(diǎn)登錄是指用戶僅需要一次身份認(rèn)證就可以訪問(wèn)多個(gè)相互信任的應(yīng)用系統(tǒng),單點(diǎn)登錄的實(shí)現(xiàn)離不開認(rèn)證技術(shù)和單點(diǎn)登錄技術(shù)的運(yùn)用,統(tǒng)一身份認(rèn)證管理系統(tǒng)在認(rèn)證技術(shù)上提供了Web端的OAuth 2.0授權(quán)碼模式對(duì)第三方應(yīng)用賬號(hào)進(jìn)行認(rèn)證授權(quán)。OAUTH的授權(quán)不會(huì)使第三方應(yīng)用系統(tǒng)獲取到用戶的賬號(hào)信息,也就是說(shuō)第三方應(yīng)用系統(tǒng)無(wú)需使用用戶的用戶名與密碼就可以申請(qǐng)獲得該用戶資源的授權(quán)。統(tǒng)一身份認(rèn)證管理系統(tǒng)提供了多種安全認(rèn)證方式,目前支持賬號(hào)密碼認(rèn)證、短信驗(yàn)證碼認(rèn)證、二維碼掃碼認(rèn)證多種認(rèn)證方式。
統(tǒng)一身份認(rèn)證管理系統(tǒng)在單點(diǎn)登錄上,提供了SAML 2.0的單點(diǎn)登錄標(biāo)準(zhǔn)。SAML是用于解決網(wǎng)頁(yè)瀏覽器單點(diǎn)登錄的方式之一。它用于兩系統(tǒng)之間交換身份驗(yàn)證和授權(quán)數(shù)據(jù),尤其是在身份提供者和服務(wù)提供者之間進(jìn)行交換。
水電十一局系統(tǒng)單點(diǎn)登錄流程為:用戶在登錄頁(yè)輸入賬號(hào)、密碼登錄公司協(xié)同門戶平臺(tái)進(jìn)入單點(diǎn)登錄管理中心界面,點(diǎn)擊需要單點(diǎn)訪問(wèn)的業(yè)務(wù)系統(tǒng),瀏覽器跳轉(zhuǎn)至authorize查詢此賬號(hào)的授權(quán)信息,系統(tǒng)在后臺(tái)獲得token后獲得用戶信息,之后系統(tǒng)判斷賬號(hào)在應(yīng)用系統(tǒng)是否存在,若存在,則單點(diǎn)進(jìn)入相應(yīng)的業(yè)務(wù)系統(tǒng),若不存在則提示該登錄用戶無(wú)賬號(hào)或賬號(hào)不存在。
統(tǒng)一身份管理系統(tǒng)服務(wù)器端采用HTTP協(xié)議和RESTful Webservice接口與第三方業(yè)務(wù)系統(tǒng)進(jìn)行集成對(duì)接,部分接口信息見表1。
表1 部分接口信息表
在數(shù)據(jù)安全上,數(shù)據(jù)庫(kù)部署在安全區(qū)域中,保證基礎(chǔ)安全;用戶敏感數(shù)據(jù)加密,用戶密碼采用PBE加密算法加密后,用密文存儲(chǔ);在接口安全上,任何調(diào)用該平臺(tái)接口的第三方系統(tǒng),都需要進(jìn)行身份校驗(yàn)。在網(wǎng)絡(luò)安全上,系統(tǒng)采用了Web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器3層結(jié)構(gòu)進(jìn)行部署,同時(shí)進(jìn)行端口檢測(cè),關(guān)閉了不需要的端口,確保系統(tǒng)正常端口的訪問(wèn)。
本文主要闡述了統(tǒng)一身份管理系統(tǒng)在水電十一局的部署和應(yīng)用,一方面為下游業(yè)務(wù)系統(tǒng)實(shí)時(shí)提供了組織和人員信息,保證了業(yè)務(wù)系統(tǒng)相關(guān)數(shù)據(jù)的準(zhǔn)確性,另一方面實(shí)現(xiàn)了各業(yè)務(wù)系統(tǒng)賬號(hào)統(tǒng)一和單點(diǎn)登錄,方便了用戶對(duì)各系統(tǒng)的訪問(wèn),實(shí)現(xiàn)了用戶的統(tǒng)一管理,統(tǒng)一授權(quán)。