李剛 姬同凱 楊建光 梁通
摘 要:企業(yè)統(tǒng)一身份認(rèn)證平臺是企業(yè)信息化建設(shè)的基礎(chǔ)之一。本研究充分考慮多級組織機(jī)構(gòu)、人員多重身份等因素,設(shè)計并實現(xiàn)了適用于集團(tuán)型企業(yè)的身份認(rèn)證平臺。該平臺整體采用B/S架構(gòu),使用前后端分離技術(shù),其中采用VUE框架技術(shù)實現(xiàn)前端管理網(wǎng)頁,采用Spring Cloud Alibaba框架實現(xiàn)后端微服務(wù)。該平臺具有完善的人員、組織、權(quán)限、授權(quán)及認(rèn)證體系,不僅能夠滿足企業(yè)的組織及人員管理需求,又能作為基礎(chǔ)平臺為整個信息化體系提供統(tǒng)一的身份認(rèn)證。該平臺的應(yīng)用能夠有效地避免企業(yè)信息化建設(shè)的重復(fù)投入,提高企業(yè)信息系統(tǒng)的建設(shè)效率。
關(guān)鍵詞:企業(yè)信息化;用戶管理;安全認(rèn)證
中圖分類號:TP311.5 ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號:1003-5168(2022)6-0006-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2022.06.001
Design and Implementation of Identity Authentication Platform for Group Enterprises
LI Gang ? ?JI Tongkai ? ?YANG Jianguang ? ?LIANG Tong
(SINOMACH Industrial Internet Research Institute (Henan) Co.,Ltd.,Zhengzhou 450007,China)
Abstract:Enterprise unified identity authentication platform is one of the foundations of enterprise information construction.By fully considering the ?factors such as multi-level organization and multiple identities of personnel, an identity authentication platform for group enterprises is designed and implemented.This platform is B/S architecture and uses front-end and back-end separation technology. The front-end management web page is realized based on VUE framework, and the back-end micro service is realized based on SpringCloudAlibaba framework.It has personnel, organization, authority, authorization and certification system, which can not only meet the organizational and personnel management needs of enterprises, but also serve as a basic platform to provide identity authentication for the whole information system.The apphication of this platform can effectively avoid repeated investment in enterprise iinformationconstruction efficiency of enterprise iuformation system.
Keywords: enterprise informatization; user management; security certification
0 引言
隨著數(shù)字化改革的深入,越來越多的企業(yè)處在數(shù)字化轉(zhuǎn)型階段[1]。在大型組織數(shù)字化轉(zhuǎn)型過程中,往往存在著大量的業(yè)務(wù)信息系統(tǒng),需要統(tǒng)一的人員和組織體系作為基礎(chǔ),統(tǒng)一的權(quán)限、授權(quán)及認(rèn)證體系用來支撐企業(yè)一體化系統(tǒng)的安全管控。筆者在充分考慮集團(tuán)型企業(yè)特點的同時,結(jié)合自身所在企業(yè)的實際需求,設(shè)計了統(tǒng)一身份認(rèn)證平臺,并使用前后端分離技術(shù)[2]予以實現(xiàn),其中采用VUE技術(shù)框架實現(xiàn)前端管理網(wǎng)頁,采用Spring Cloud Alibaba技術(shù)框架實現(xiàn)后端微服務(wù),并支持分布式部署。該平臺在一定程度上能夠滿足較大規(guī)模集團(tuán)型企業(yè)的管理需求,并支撐企業(yè)信息系統(tǒng)高并發(fā)、高可用、高性能地運(yùn)行。
1 系統(tǒng)關(guān)鍵技術(shù)
1.1 權(quán)限模型
該系統(tǒng)采用基于角色的權(quán)限控制(Role-Based Access Control,RBAC)模型,能夠較好地解決企業(yè)信息系統(tǒng)權(quán)限管理問題[3](見圖1)。根據(jù)系統(tǒng)資源安全管控需要,定義不同級別的系統(tǒng)權(quán)限和不同的系統(tǒng)角色,并把角色與權(quán)限進(jìn)行關(guān)聯(lián)。根據(jù)系統(tǒng)實際使用場景,賦予系統(tǒng)用戶合適的角色。
在實際應(yīng)用中,一個復(fù)雜的企業(yè)信息系統(tǒng)往往需要定義較多的權(quán)限標(biāo)識。因為系統(tǒng)鑒權(quán)功能是高頻使用功能,若系統(tǒng)權(quán)限標(biāo)識的數(shù)量過多、數(shù)據(jù)量過大,將導(dǎo)致系統(tǒng)網(wǎng)絡(luò)的數(shù)據(jù)傳輸壓力大大增加,進(jìn)而影響系統(tǒng)的整體響應(yīng)能力。為了減少權(quán)限標(biāo)識的數(shù)據(jù)體量,該系統(tǒng)采用二進(jìn)制方式定義權(quán)限標(biāo)識。每一個二進(jìn)制位代表一個權(quán)限標(biāo)識,并從低位向高位進(jìn)行定義,保障擴(kuò)展性。在給用戶分配完角色后,系統(tǒng)將得到用戶的統(tǒng)一系統(tǒng)權(quán)限標(biāo)識,用于后續(xù)的系統(tǒng)鑒權(quán)。
1.2 單點登錄
單點登錄(Single Sign On,SSO)是企業(yè)信息化的基本需求。在統(tǒng)一的權(quán)限體系管控下,能夠使用戶在企業(yè)各個信息系統(tǒng)間進(jìn)行合理地切換,無須用戶多次輸入賬號、密碼等認(rèn)證信息,不僅能夠降低敏感信息泄露的風(fēng)險,還能大幅度提升用戶體驗感。
該系統(tǒng)采用CAS框架實現(xiàn)系統(tǒng)間單點登錄[4],通過構(gòu)建統(tǒng)一的CAS中心服務(wù)端,統(tǒng)一負(fù)責(zé)系統(tǒng)登錄認(rèn)證,認(rèn)證成功后將票據(jù)憑證發(fā)放給用戶。用戶在登錄其他系統(tǒng)時,可通過該憑證免于二次身份認(rèn)證。通過CAS客戶端工具與企業(yè)信息系統(tǒng)相結(jié)合,對通過身份認(rèn)證的用戶賦予相應(yīng)的系統(tǒng)授權(quán),控制用戶訪問內(nèi)容。
1.3 接口鑒權(quán)
RESTful/HTTP的網(wǎng)絡(luò)接口[5]已成為系統(tǒng)向外提供服務(wù)的主流方式。采用Oauth2+JWT技術(shù)[6]可實現(xiàn)對該模式的接口鑒權(quán),不僅能夠保障系統(tǒng)鑒權(quán)的統(tǒng)一性和普適性,其無狀態(tài)化設(shè)計也有利于接口鑒權(quán)信息在系統(tǒng)后端微服務(wù)間的高效使用。通過構(gòu)建統(tǒng)一遵循Oauth2協(xié)議的授權(quán)中心,發(fā)放遵循JWT(Json Web Token)規(guī)范的Token令牌。其中,Oauth2客戶端模式用于企業(yè)信息系統(tǒng)間集成接口鑒權(quán);Oauth2授權(quán)碼模式用于企業(yè)信息系統(tǒng)向外部系統(tǒng)的授權(quán);Oauth2密碼模式用于信息系統(tǒng)核心業(yè)務(wù)接口的鑒權(quán),該模式下Token令牌將包含用戶身份和權(quán)限信息。為了保障用戶的賬號信息安全,Web端用戶需要通過單點登錄憑證換取Token令牌,移動端用戶則在登錄認(rèn)證后獲取Token令牌。
2 系統(tǒng)設(shè)計
2.1 總體設(shè)計
該系統(tǒng)劃分為表現(xiàn)層、控制層、服務(wù)層、數(shù)據(jù)層和支撐層,如圖2所示。
2.1.1 表現(xiàn)層。該層主要負(fù)責(zé)與用戶交互,包括身份認(rèn)證管理Web端、移動端和其他業(yè)務(wù)Web端。身份認(rèn)證管理Web端主要面向企業(yè)管理人員,用于系統(tǒng)管理;移動端和其他Web端則面向企業(yè)用戶,其中人員登錄認(rèn)證、授權(quán)及鑒權(quán)服務(wù)均由平臺統(tǒng)一提供。
2.1.2 控制層。該層主要負(fù)責(zé)向外提供平臺接口和安全管控。其中,CAS中心服務(wù)負(fù)責(zé)單點登錄認(rèn)證及用戶會話保持,授權(quán)中心負(fù)責(zé)Token令牌的頒發(fā)、續(xù)簽和驗證,接口網(wǎng)關(guān)負(fù)責(zé)提供統(tǒng)一的RESTful/HTTP的網(wǎng)絡(luò)接口。
2.1.3 服務(wù)層。該層主要負(fù)責(zé)平臺核心業(yè)務(wù)邏輯部分的實現(xiàn),包括人員、組織、賬戶、應(yīng)用、角色、權(quán)限、認(rèn)證和授權(quán)服務(wù),除了通過接口網(wǎng)關(guān)對外提供服務(wù)外,也支持在控制層的安全管控下,直接對企業(yè)其他業(yè)務(wù)系統(tǒng)提供集成服務(wù)。
2.1.4 數(shù)據(jù)層。該層主要負(fù)責(zé)數(shù)據(jù)(包括業(yè)務(wù)數(shù)據(jù)、緩存數(shù)據(jù)和配置數(shù)據(jù))的存儲,以支撐服務(wù)層實現(xiàn)服務(wù)無狀態(tài)化。其中,業(yè)務(wù)數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫中,緩存數(shù)據(jù)存儲在分布式緩存中,配置數(shù)據(jù)存儲在分布式配置中心。
2.1.5 支撐層。該層主要負(fù)責(zé)支撐服務(wù)層相關(guān)業(yè)務(wù)的實現(xiàn),并隔離需要訪問互聯(lián)網(wǎng)的短信、郵件等服務(wù),能夠使服務(wù)層在企業(yè)內(nèi)網(wǎng)中按需橫向擴(kuò)展,增強(qiáng)服務(wù)的安全性。
2.2 數(shù)據(jù)模型
為了滿足集團(tuán)型企業(yè)多級組織架構(gòu)、人員多重身份和多業(yè)務(wù)信息系統(tǒng)等需求,在進(jìn)行數(shù)據(jù)模型設(shè)計時需要遵循以下原則:①集團(tuán)型企業(yè)組織機(jī)構(gòu)采用樹形數(shù)據(jù)結(jié)構(gòu),集團(tuán)型企業(yè)作為根級,下屬公司及部門作為子級進(jìn)行發(fā)散;②人員可與多個組織機(jī)構(gòu)產(chǎn)生關(guān)聯(lián);③在系統(tǒng)應(yīng)用維度中,進(jìn)行相應(yīng)的權(quán)限管理,人員可在多個應(yīng)用中關(guān)聯(lián)不同角色。系統(tǒng)數(shù)據(jù)模型設(shè)計如圖3所示。
2.3 開放集成
企業(yè)人員、組織數(shù)據(jù)、賬戶為企業(yè)信息化的基礎(chǔ)數(shù)據(jù),系統(tǒng)需要有完備的開放集成能力。在實際場景中,人員、組織、賬戶等數(shù)據(jù)可能已存在于企業(yè)現(xiàn)有人力資源等系統(tǒng)中,系統(tǒng)還需要具備數(shù)據(jù)交換功能,建立數(shù)據(jù)標(biāo)準(zhǔn),把多源數(shù)據(jù)融為統(tǒng)一的數(shù)據(jù)源,具體集成架構(gòu)如圖4所示。
3 系統(tǒng)實現(xiàn)
企業(yè)身份認(rèn)證平臺的核心功能模塊分為三大功能模塊,包括基礎(chǔ)功能模塊、多源身份認(rèn)證模塊和應(yīng)用授權(quán)管理模塊,如圖5所示。
3.1 基礎(chǔ)功能模塊
3.1.1 組織機(jī)構(gòu)管理。組織機(jī)構(gòu)分為組織和部門兩種類型。組織一般等同于企業(yè),有獨立的法人和統(tǒng)一社會信用代碼,也可以是虛擬組織,組織下可以有多個子組織或部門。部門一般等同于企業(yè)的職能機(jī)構(gòu),也可以是虛擬機(jī)構(gòu),部門可以有多個子部門,但不可擁有子組織。系統(tǒng)管理員手動錄入、文件導(dǎo)入、數(shù)據(jù)同步的方式進(jìn)行添加組織機(jī)構(gòu),同時也支持組織機(jī)構(gòu)的查詢、啟用/禁用、更新、刪除、上級組織機(jī)構(gòu)變更等操作。
3.1.2 員工管理。員工具備唯一性,與真實世界的人員對應(yīng),其基本信息包括姓名、性別、證件號、手機(jī)號、郵箱等。員工管理模塊支持系統(tǒng)管理員手動錄入、文件導(dǎo)入、數(shù)據(jù)同步的方式對員工信息的添加,同時也支持員工的查詢、啟用/禁用、更新、刪除、關(guān)聯(lián)組織機(jī)構(gòu)等操作。
3.1.3 賬戶管理。賬戶分為系統(tǒng)管理員賬戶和普通賬戶兩類。系統(tǒng)管理員負(fù)責(zé)平臺賬戶數(shù)據(jù)、認(rèn)證數(shù)據(jù)、應(yīng)用數(shù)據(jù)、權(quán)限數(shù)據(jù)的維護(hù)管理。普通賬戶是使用平臺進(jìn)行統(tǒng)一管理、統(tǒng)一授權(quán)和統(tǒng)一認(rèn)證的最小單元。支持管理員通過手動錄入、文件導(dǎo)入和數(shù)據(jù)同步的方式添加賬號,同時也支持賬戶的查詢、啟用/禁用、更新、刪除、隸屬組織機(jī)構(gòu)變更、隸屬賬戶組維護(hù)、重置密碼、過期時間變更、啟用/禁用多因素認(rèn)證等操作。
3.1.4 數(shù)據(jù)同步。系統(tǒng)提供統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),用于多源數(shù)據(jù)的匯聚、清洗、處理及利用,最終形成統(tǒng)一的數(shù)據(jù)源。在數(shù)據(jù)處理時,要嚴(yán)格記錄數(shù)據(jù)的變化版本,以滿足其他系統(tǒng)進(jìn)行全量、增量的數(shù)據(jù)同步。
3.2 身份認(rèn)證模塊
3.2.1 密碼認(rèn)證。系統(tǒng)為每個賬戶設(shè)置一個滿足系統(tǒng)密碼策略的賬戶密碼,并采用安全加密算法對密碼進(jìn)行加密,用戶通過賬戶名、密碼進(jìn)行身份認(rèn)證。
3.2.2 短信認(rèn)證。系統(tǒng)配置統(tǒng)一的短信網(wǎng)關(guān),在用戶進(jìn)行身份認(rèn)證時,向用戶綁定的手機(jī)號發(fā)送帶有身份認(rèn)證碼的短信,用戶通過手機(jī)號、認(rèn)證碼進(jìn)行身份認(rèn)證。
3.2.3 CA證書認(rèn)證。系統(tǒng)通過可信任的認(rèn)證機(jī)構(gòu)頒發(fā)的基于公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)構(gòu)建包含用戶身份信息在內(nèi)的數(shù)字證書來進(jìn)行身份認(rèn)證。
3.2.4 多因素認(rèn)證。根據(jù)不同人員的不同登錄場景,智能設(shè)定多因素認(rèn)證的訪問及驗證策略。支持“密碼認(rèn)證+短信認(rèn)證”“密碼認(rèn)證+掃碼認(rèn)證”等多重認(rèn)證方式進(jìn)行身份認(rèn)證。
3.2.5 單點登錄。使用一套賬戶,經(jīng)過系統(tǒng)一次認(rèn)證,即可實現(xiàn)多個應(yīng)用間的無縫切換使用,用戶無須反復(fù)登錄及記憶各個應(yīng)用的賬號密碼。
3.2.6 策略配置。該系統(tǒng)支持自定義密碼、用戶名強(qiáng)弱規(guī)則,配置認(rèn)證源所需的短信、郵件、證書等信息。
3.3 應(yīng)用授權(quán)模塊
3.3.1 應(yīng)用管理。應(yīng)用由系統(tǒng)管理員配置錄入,包括應(yīng)用圖標(biāo)、應(yīng)用名稱、所屬領(lǐng)域(公有云/私有云/移動/物聯(lián)網(wǎng)等)、應(yīng)用類型(Web/移動/客戶端)、應(yīng)用描述、賬戶關(guān)聯(lián)方式,在配置完成后,系統(tǒng)會生成應(yīng)用認(rèn)證協(xié)議相應(yīng)的配置參數(shù)信息。
3.3.2 角色管理。應(yīng)用角色信息包括角色名稱、角色編碼及角色描述,是系統(tǒng)的一組權(quán)限的集合、權(quán)限分配的單位和載體。
3.3.3 權(quán)限管理。對應(yīng)用內(nèi)的資源標(biāo)識進(jìn)行管理,包括子系統(tǒng)、目錄、菜單、按鈕等功能資源和業(yè)務(wù)數(shù)據(jù)資源。
3.3.4 賬戶權(quán)限。系統(tǒng)通過配置賬戶、應(yīng)用角色、應(yīng)用權(quán)限之間的關(guān)聯(lián)關(guān)系,從而實現(xiàn)對賬戶的多應(yīng)用權(quán)限管控。一個賬戶在一個應(yīng)用內(nèi)可以擁有多個角色,賬戶擁有的權(quán)限為多個角色關(guān)聯(lián)的權(quán)限合集。
4 系統(tǒng)應(yīng)用
該系統(tǒng)支持分布式部署模式,在面向用戶訪問接入的網(wǎng)絡(luò)隔離區(qū)(Demilitarized Zone,DMZ)環(huán)境中,部署負(fù)載服務(wù)器(Nginx)、網(wǎng)關(guān)服務(wù)器、授權(quán)中心服務(wù)器(Oauth2)、CAS中心服務(wù)器和消息服務(wù)器(短信/郵件)。在內(nèi)網(wǎng)環(huán)境中,部署系統(tǒng)微服務(wù)集群、中間件服務(wù)器和數(shù)據(jù)庫服務(wù)器(MySQL)。中間件主要包括分布式配置中心與注冊中心(Nacos)、分布式緩存(Redis)、消息隊列(RocketMQ)等,系統(tǒng)部署架構(gòu)圖如圖6所示。
該系統(tǒng)目前已在本企業(yè)上線運(yùn)行,能夠滿足企業(yè)對人員、組織管理需要,并為企業(yè)其他業(yè)務(wù)系統(tǒng)提供統(tǒng)一的身份認(rèn)證(見圖7)。
5 結(jié)語
本研究實現(xiàn)了集人員、組織、權(quán)限、授權(quán)及認(rèn)證體系為一體的身份認(rèn)證平臺,能夠作為集團(tuán)型企業(yè)統(tǒng)一組織及人員管理、信息系統(tǒng)安全管控的平臺,提高企業(yè)信息資源的復(fù)用度和統(tǒng)一性。后續(xù)考慮在身份認(rèn)證源中集成刷臉認(rèn)證、指紋認(rèn)證等方式,增強(qiáng)平臺能力,拓寬適用場景。
參考文獻(xiàn):
[1] 王曉寧.剖析數(shù)字化轉(zhuǎn)型能力,加快數(shù)字化轉(zhuǎn)型步伐[J].軟件和集成電路,2022(1):30-31.
[2] 吳昌政.基于前后端分離技術(shù)的web開發(fā)框架設(shè)計[D].南京:南京郵電大學(xué),2020.
[3] 張麗麗,鄔錫江,楊玉梅,等.基于RBAC的權(quán)限管理設(shè)計與自主開發(fā)應(yīng)用[J].現(xiàn)代信息科技,2020(16):88-91.
[4] 蘇亞濤.基于CAS框架的高校統(tǒng)一身份認(rèn)證平臺研究與實現(xiàn)[J].西安文理學(xué)院學(xué)報(自然科學(xué)版),2018(4):78-83.
[5] 劉香利.基于RESTful/HTTP的網(wǎng)絡(luò)管理接口定義方法和通知機(jī)制設(shè)計[D].北京:北京郵電大學(xué),2019.
[6] 劉曉暉,秦子實.基于OAuth2認(rèn)證的REST API設(shè)計與實踐[J].電腦知識與技術(shù),2021(15):56-57.