李刚 姬同凯 杨建光 梁通
摘 要:企业统一身份认证平台是企业信息化建设的基础之一。本研究充分考虑多级组织机构、人员多重身份等因素,设计并实现了适用于集团型企业的身份认证平台。该平台整体采用B/S架构,使用前后端分离技术,其中采用VUE框架技术实现前端管理网页,采用Spring Cloud Alibaba框架实现后端微服务。该平台具有完善的人员、组织、权限、授权及认证体系,不仅能够满足企业的组织及人员管理需求,又能作为基础平台为整个信息化体系提供统一的身份认证。该平台的应用能够有效地避免企业信息化建设的重复投入,提高企业信息系统的建设效率。
关键词:企业信息化;用户管理;安全认证
中图分类号:TP311.5 文献标志码: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 引言
隨着数字化改革的深入,越来越多的企业处在数字化转型阶段[1]。在大型组织数字化转型过程中,往往存在着大量的业务信息系统,需要统一的人员和组织体系作为基础,统一的权限、授权及认证体系用来支撑企业一体化系统的安全管控。笔者在充分考虑集团型企业特点的同时,结合自身所在企业的实际需求,设计了统一身份认证平台,并使用前后端分离技术[2]予以实现,其中采用VUE技术框架实现前端管理网页,采用Spring Cloud Alibaba技术框架实现后端微服务,并支持分布式部署。该平台在一定程度上能够满足较大规模集团型企业的管理需求,并支撑企业信息系统高并发、高可用、高性能地运行。
1 系统关键技术
1.1 权限模型
该系统采用基于角色的权限控制(Role-Based Access Control,RBAC)模型,能够较好地解决企业信息系统权限管理问题[3](见图1)。根据系统资源安全管控需要,定义不同级别的系统权限和不同的系统角色,并把角色与权限进行关联。根据系统实际使用场景,赋予系统用户合适的角色。
在实际应用中,一个复杂的企业信息系统往往需要定义较多的权限标识。因为系统鉴权功能是高频使用功能,若系统权限标识的数量过多、数据量过大,将导致系统网络的数据传输压力大大增加,进而影响系统的整体响应能力。为了减少权限标识的数据体量,该系统采用二进制方式定义权限标识。每一个二进制位代表一个权限标识,并从低位向高位进行定义,保障扩展性。在给用户分配完角色后,系统将得到用户的统一系统权限标识,用于后续的系统鉴权。
1.2 单点登录
单点登录(Single Sign On,SSO)是企业信息化的基本需求。在统一的权限体系管控下,能够使用户在企业各个信息系统间进行合理地切换,无须用户多次输入账号、密码等认证信息,不仅能够降低敏感信息泄露的风险,还能大幅度提升用户体验感。
该系统采用CAS框架实现系统间单点登录[4],通过构建统一的CAS中心服务端,统一负责系统登录认证,认证成功后将票据凭证发放给用户。用户在登录其他系统时,可通过该凭证免于二次身份认证。通过CAS客户端工具与企业信息系统相结合,对通过身份认证的用户赋予相应的系统授权,控制用户访问内容。
1.3 接口鉴权
RESTful/HTTP的网络接口[5]已成为系统向外提供服务的主流方式。采用Oauth2+JWT技术[6]可实现对该模式的接口鉴权,不仅能够保障系统鉴权的统一性和普适性,其无状态化设计也有利于接口鉴权信息在系统后端微服务间的高效使用。通过构建统一遵循Oauth2协议的授权中心,发放遵循JWT(Json Web Token)规范的Token令牌。其中,Oauth2客户端模式用于企业信息系统间集成接口鉴权;Oauth2授权码模式用于企业信息系统向外部系统的授权;Oauth2密码模式用于信息系统核心业务接口的鉴权,该模式下Token令牌将包含用户身份和权限信息。为了保障用户的账号信息安全,Web端用户需要通过单点登录凭证换取Token令牌,移动端用户则在登录认证后获取Token令牌。
2 系统设计
2.1 总体设计
该系统划分为表现层、控制层、服务层、数据层和支撑层,如图2所示。
2.1.1 表现层。该层主要负责与用户交互,包括身份认证管理Web端、移动端和其他业务Web端。身份认证管理Web端主要面向企业管理人员,用于系统管理;移动端和其他Web端则面向企业用户,其中人员登录认证、授权及鉴权服务均由平台统一提供。
2.1.2 控制层。该层主要负责向外提供平台接口和安全管控。其中,CAS中心服务负责单点登录认证及用户会话保持,授权中心负责Token令牌的颁发、续签和验证,接口网关负责提供统一的RESTful/HTTP的网络接口。
2.1.3 服务层。该层主要负责平台核心业务逻辑部分的实现,包括人员、组织、账户、应用、角色、权限、认证和授权服务,除了通过接口网关对外提供服务外,也支持在控制层的安全管控下,直接对企业其他业务系统提供集成服务。
2.1.4 数据层。该层主要负责数据(包括业务数据、缓存数据和配置数据)的存储,以支撑服务层实现服务无状态化。其中,业务数据存储在关系型数据库中,缓存数据存储在分布式缓存中,配置数据存储在分布式配置中心。
2.1.5 支撑层。该层主要负责支撐服务层相关业务的实现,并隔离需要访问互联网的短信、邮件等服务,能够使服务层在企业内网中按需横向扩展,增强服务的安全性。
2.2 数据模型
为了满足集团型企业多级组织架构、人员多重身份和多业务信息系统等需求,在进行数据模型设计时需要遵循以下原则:①集团型企业组织机构采用树形数据结构,集团型企业作为根级,下属公司及部门作为子级进行发散;②人员可与多个组织机构产生关联;③在系统应用维度中,进行相应的权限管理,人员可在多个应用中关联不同角色。系统数据模型设计如图3所示。
2.3 开放集成
企业人员、组织数据、账户为企业信息化的基础数据,系统需要有完备的开放集成能力。在实际场景中,人员、组织、账户等数据可能已存在于企业现有人力资源等系统中,系统还需要具备数据交换功能,建立数据标准,把多源数据融为统一的数据源,具体集成架构如图4所示。
3 系统实现
企业身份认证平台的核心功能模块分为三大功能模块,包括基础功能模块、多源身份认证模块和应用授权管理模块,如图5所示。
3.1 基础功能模块
3.1.1 组织机构管理。组织机构分为组织和部门两种类型。组织一般等同于企业,有独立的法人和统一社会信用代码,也可以是虚拟组织,组织下可以有多个子组织或部门。部门一般等同于企业的职能机构,也可以是虚拟机构,部门可以有多个子部门,但不可拥有子组织。系统管理员手动录入、文件导入、数据同步的方式进行添加组织机构,同时也支持组织机构的查询、启用/禁用、更新、删除、上级组织机构变更等操作。
3.1.2 员工管理。员工具备唯一性,与真实世界的人员对应,其基本信息包括姓名、性别、证件号、手机号、邮箱等。员工管理模块支持系统管理员手动录入、文件导入、数据同步的方式对员工信息的添加,同时也支持员工的查询、启用/禁用、更新、删除、关联组织机构等操作。
3.1.3 账户管理。账户分为系统管理员账户和普通账户两类。系统管理员负责平台账户数据、认证数据、应用数据、权限数据的维护管理。普通账户是使用平台进行统一管理、统一授权和统一认证的最小单元。支持管理员通过手动录入、文件导入和数据同步的方式添加账号,同时也支持账户的查询、启用/禁用、更新、删除、隶属组织机构变更、隶属账户组维护、重置密码、过期时间变更、启用/禁用多因素认证等操作。
3.1.4 数据同步。系统提供统一的数据标准,用于多源数据的汇聚、清洗、处理及利用,最终形成统一的数据源。在数据处理时,要严格记录数据的变化版本,以满足其他系统进行全量、增量的数据同步。
3.2 身份认证模块
3.2.1 密码认证。系统为每个账户设置一个满足系统密码策略的账户密码,并采用安全加密算法对密码进行加密,用户通过账户名、密码进行身份认证。
3.2.2 短信认证。系统配置统一的短信网关,在用户进行身份认证时,向用户绑定的手机号发送带有身份认证码的短信,用户通过手机号、认证码进行身份认证。
3.2.3 CA证书认证。系统通过可信任的认证机构颁发的基于公钥基础设施(Public Key Infrastructure,PKI)构建包含用户身份信息在内的数字证书来进行身份认证。
3.2.4 多因素认证。根据不同人员的不同登录场景,智能设定多因素认证的访问及验证策略。支持“密码认证+短信认证”“密码认证+扫码认证”等多重认证方式进行身份认证。
3.2.5 单点登录。使用一套账户,经过系统一次认证,即可实现多个应用间的无缝切换使用,用户无须反复登录及记忆各个应用的账号密码。
3.2.6 策略配置。该系统支持自定义密码、用户名强弱规则,配置认证源所需的短信、邮件、证书等信息。
3.3 应用授权模块
3.3.1 应用管理。应用由系统管理员配置录入,包括应用图标、应用名称、所属领域(公有云/私有云/移动/物联网等)、应用类型(Web/移动/客户端)、应用描述、账户关联方式,在配置完成后,系统会生成应用认证协议相应的配置参数信息。
3.3.2 角色管理。应用角色信息包括角色名称、角色编码及角色描述,是系統的一组权限的集合、权限分配的单位和载体。
3.3.3 权限管理。对应用内的资源标识进行管理,包括子系统、目录、菜单、按钮等功能资源和业务数据资源。
3.3.4 账户权限。系统通过配置账户、应用角色、应用权限之间的关联关系,从而实现对账户的多应用权限管控。一个账户在一个应用内可以拥有多个角色,账户拥有的权限为多个角色关联的权限合集。
4 系统应用
该系统支持分布式部署模式,在面向用户访问接入的网络隔离区(Demilitarized Zone,DMZ)环境中,部署负载服务器(Nginx)、网关服务器、授权中心服务器(Oauth2)、CAS中心服务器和消息服务器(短信/邮件)。在内网环境中,部署系统微服务集群、中间件服务器和数据库服务器(MySQL)。中间件主要包括分布式配置中心与注册中心(Nacos)、分布式缓存(Redis)、消息队列(RocketMQ)等,系统部署架构图如图6所示。
该系统目前已在本企业上线运行,能够满足企业对人员、组织管理需要,并为企业其他业务系统提供统一的身份认证(见图7)。
5 结语
本研究实现了集人员、组织、权限、授权及认证体系为一体的身份认证平台,能够作为集团型企业统一组织及人员管理、信息系统安全管控的平台,提高企业信息资源的复用度和统一性。后续考虑在身份认证源中集成刷脸认证、指纹认证等方式,增强平台能力,拓宽适用场景。
参考文献:
[1] 王晓宁.剖析数字化转型能力,加快数字化转型步伐[J].软件和集成电路,2022(1):30-31.
[2] 吴昌政.基于前后端分离技术的web开发框架设计[D].南京:南京邮电大学,2020.
[3] 张丽丽,邬锡江,杨玉梅,等.基于RBAC的权限管理设计与自主开发应用[J].现代信息科技,2020(16):88-91.
[4] 苏亚涛.基于CAS框架的高校统一身份认证平台研究与实现[J].西安文理学院学报(自然科学版),2018(4):78-83.
[5] 刘香利.基于RESTful/HTTP的网络管理接口定义方法和通知机制设计[D].北京:北京邮电大学,2019.
[6] 刘晓晖,秦子实.基于OAuth2认证的REST API设计与实践[J].电脑知识与技术,2021(15):56-57.