APP下载

云平台HR 管理系统权限管理服务设计

2021-09-28朱福喜江雪锋

软件导刊 2021年9期
关键词:访问控制镜像云端

李 貌,朱福喜,江雪锋

(1.武汉学院信息工程学院,湖北 武汉 430212;2.广州顷时科技有限公司,广东 广州 510600)

0 引言

权限管理是人力资源管理系统中的重要组成部分,主要目的是对系统进行权限控制与管理。若权限控制缺失或操作不当,会造成系统信息泄露及系统漏洞,对使用者造成难以预估的损失。目前的权限管理系统,如支持多级用户体系的访问控制模型、基于角色—属性的访问控制模型、跨租户的优化访问控制模型等[1-4],存在管理方式复杂、学习成本高、跨行业通用性差等问题,因此需要一套简单、实用的权限管理服务。

另外,随着信息化的发展,人力资源管理工作中融入了越来越多的新理念,打造高效、安全的信息化人力资源管理系统有着重要意义。云计算及相关技术的快速发展,尤其近年来亚马逊、阿里巴巴等大型IT 厂商提供了安全的公有云服务[5-7],有效降低了企业在应用服务、大数据分析等方面的计算机软硬件成本,加速了企业信息化建设。但是,目前大部分云端人力资源管理系统和云端信息管理系统[8-9]虽然应用了云计算、Docker 等技术,但没有把云计算、Docker 和分布式通信管理框架等多项技术融合并应用于权限管理服务,在研发和部署周期、运维效率、服务规模等方面仍有提升的空间[10-11]。

因此,本文借鉴三元概念的访问控制模型[12],以基于角色的访问控制模型为基础,设计了一个基于角色的人力资源管理系统权限管理服务模型。该模型摒弃了复杂的权限管理方式,在解决权限管理易用性问题的同时,融合云计算、Docker 及Tars 技术,支持公有云、私有云与混合云的部署方式,优化Docker+Tars 的维护、升级流程,将权限管理服务的研发、部署周期缩短了近20%,可满足系统在用户访问数量激增时扩充服务承载能力的需求。

1 关键技术

1.1 访问控制技术

访问控制是指根据系统设置的安全规则及策略,使用户只能访问自己被授权的内容。访问控制主要采用3 种方法:强制访问控制(Mandatory Access Control)、自主访问控制(Discretionary Access Control)与基于角色的访问控制(Role-Based Access Control)[13]。

自主访问控制是指对某一客体具有控制权的主体能够把对该客体的访问权或多种访问权自主授予其他主体。在自主访问控制模型中,权限分配包括3 个方面:①一个用户对不同客体有不同权限;②不同用户对同一客体有不同权限;③用户可将自己拥有的权限不受任何限制地授予其他用户。

强制访问控制是指赋予每个主体(用户、进程)和客体(文件、数据)一个安全等级,通过比较不同安全等级限制主体对客体的访问行为。强制访问控制中比较经典的模型有Bell-LaPudula 和Biba 模型。Bell-LaPudula 模型的重要特性被称为“下读上写”,可防止较低安全等级的主体访问高安全等级的资源;Biba 模型则相反,其特性是“上读下写”,可保证信息的完整性和开放性。

基于角色的访问控制模型在用户与权限之间引入角色的概念,每一个角色有其对应权限,通过分配给每个用户一个合适的角色以获得相应权限。该模型表述了用户、角色与权限之间的复杂关系,解决了在传统访问控制中主体始终与特定实体捆绑的问题,实现了主体的灵活授权。

基于角色的访问控制模型相比其他两个模型具有安全性高、灵活性强等优势,也是各类系统中使用最广泛的访问控制模型,如基于属性与信任的访问控制模型、基于策略机的访问控制模型等[14-15]。因此,HR 系统权限管理服务引入基于角色的访问控制模型,针对企业用户习惯优化实现方案,能够解决权限管理方式复杂,以及系统易用性及安全性等方面问题。

1.2 云计算技术

1.2.1 云计算

云计算是一种计算模型,其核心是通过虚拟化技术实现硬件资源、网络资源、存储资源的统一调度与管理。基于虚拟化技术,可以出租服务的方式把这些资源及运行环境、应用和数据等通过网络提供给用户使用,用户不需要自己购买服务器或安装、维护软件,只需按照使用的资源数量支付一定费用即可[16]。

云服务分为3 类:基础设施即服务(IaaS)、平台即服务(PaaS)与软件即服务(SaaS)。IaaS 在云端为用户提供基础设施;PaaS 在云端为用户提供可执行环境、数据库、网站服务器、开发工具等;SaaS 在云端为用户提供软件,为企业业务的快速增长提供有力支撑。如图1 所示,用户从云服务厂商租赁获得虚拟机、存储、网络等资源,在此基础上部署相应的权限管理应用程序,实现SaaS 服务,即可享受到权限管理系统提供的信息保护服务。

Fig.1 Cloud Service图1 云服务

如图2 所示,应用程序的云部署方式有3 种:公有云(Public Cloud)、私有云(Private Cloud)、混合云(Hybrid Cloud)。公有云是指第三方提供商为用户提供的能够直接使用的云;私有云是指企业内部建立的云,只供企业内部使用;混合云则是指系统中一部分使用公有云,一部分使用私有云,并将两者结合。

Fig.2 Cloud deployment of APP图2 应用程序云部署方式

私有云和混合云需要企业自己购买硬件设备,投入大,而利用国内外的公有云,如阿里云、腾讯云、亚马逊云等,用户只需支付少量服务费便能使用云端IT 基础设施或服务,有效降低了企业前期软硬件投入及后期维护成本。同时,云计算访问控制技术能够保证云端资源安全,降低用户数据丢失或被窃取的风险[17],也不会给企业带来更多安全隐患。因此,云平台的权限管理服务建立在公有云IaaS 基础设施之上,通过搭建权限管理服务应用程序实现云端SaaS 的权限管理服务,以减轻企业负担、提升服务部署效率、降低运维难度。

1.2.2 Docker 技术

根据Docker 技术的主要思想,可将交付运行环境比作海运:操作系统如同一个货轮,每一个应用软件如同一个集装箱,用户通过标准化手段自由组装这些集装箱,形成运行环境[18]。

Docker 的关键技术包括分层、写时复制等[19-21]。Dock⁃er 镜像采用分层方式构建,每个镜像由一系列镜像层组成。写时复制是指在多个容器之间共享镜像,每个容器在启动时并不需要单独复制一份镜像文件,只有在Docker 容器运行过程中,当文件系统发生变化时,才会把变化的文件内容写入可读写层。如图3 所示,封装、写时复制和分层机制的配合使用,减少了镜像对磁盘空间的占用及容器启动时间。

Fig.3 Layared mirroring and free assembly of Docker图3 Docker 分层镜像与自由组装

Docker 的封装、分层与镜像管理机制可将操作系统、数据库和其他依赖软件按需结合,再通过构建权限管理服务镜像、运行独立容器的方式,使部署与迁移变得十分灵活、方便,服务启动效率也得以提高。

1.2.3 Tars 分布式架构

Tars 是腾讯2018 年发布的开源产品之一,并被授予当年最佳原创开源软件奖。其是一个基于名字服务的高性能远程程序调用RPC 分布式开发框架,旨在帮助企业和个人快速构建稳定、可靠的分布式系统。

Tars 从2008 年开始使用,经历了10 余年的发展与完善,在上万台服务器上运行,承载了包括浏览器、手机管家、手机QQ、应用宝等100 多个业务。Tars 架构自下而上由5 部分组成:统一协议、公共组件、通信框架、平台、运维。其中,统一协议组件即Tars 协议,支持C++、Java 等多种语言和多种平台代码的自动生成,降低了研发人员的学习成本;公共组件提供共用功能给各类业务模块;通信框架组件负责RPC 调用与过载保护;平台组件负责容错容灾管理以及服务器与应用间的负载均衡;运维组件主要负责图形化Web 端监控、集中配置管理、透明部署、高效发布等。

Fig.4 Flexible deployment of Tars图4 Tars 灵活部署

Tars 支持多节点的复制多实例,即多个节点配置同一Server,同时也支持单节点配置多个Server,具备灵活的部署和优秀的扩展能力。另外,Client 端通过Server 对象名,根据从Registry 上拉取的Server 路由信息间接访问Server。在此过程中,Registry 依据Server 的负载情况,在多个Server中选取空闲的Server 路由信息,以分摊Server 的压力,实现负载均衡。

综上所述,本文将使用公有云、私有云或混合云提供的基础设施,解决传统部署方式下用户前期建造成本高、后期运维支出大的问题。在业务不断扩张的情况下,通过引入Tars 技术并与Docker 相结合,在提升系统研发与部署效率的同时,可实现应用间的负载均衡,为业务快速发展、用户数量不断增加所造成的系统服务能力不足等问题提供有效的解决方案。

2 权限管理云服务设计

2.1 基于角色的权限设计原则

权限管理服务的主要目的在于辅助企业等级管理和安全保护工作,帮助企业规范管理过程,以保证信息查询、修改与导出的安全性。基于角色的权限设计原则如下:

(1)合理性原则。基于角色设计最重要的是定义合理的角色,同时兼具系统管理的灵活性。在基于角色的访问控制模型中,用户、角色、权限存在“多对多”关系,一个用户可对应多个角色,同时一个角色也可包含多个用户。因此,角色越多,关系越复杂,系统也会越复杂。合理的角色定义不仅有利于用户缺陷分配与理解,而且可提升系统对用户鉴权的计算能力。

(2)易用性原则。云端SaaS 的人力资源HR 系统要求系统操作简单、使用方便,避免因引入较多角色与权限导致学习成本增加,影响系统推广。

2.2 权限与权限管理设计

结合基于角色的访问控制技术,本文设计一个“角色+功能”的权限管理云服务。该服务所需的权限管理功能包括6 个方面:①用户管理权限,包括注册、登录、注销、超时强制退出;②招聘管理权限,包括简历管理、面试流程管理;③员工管理权限,包括员工档案的浏览、创建、编辑、删除;④企业组织权限,包括组织和部门的浏览、创建、编辑、删除;⑤培训学习权限,包括员工内部培训管理和外部培训管理;⑥人事审批权限,包括人事审批和考勤审批。

为合理管理这些权限,避免因采取为每个用户逐一划分角色、设置权限的方式导致工作量过大的问题,引入用户组的概念,给用户组分配相应角色,并把具有同一类权限的所有用户划分到一个用户组中,同一用户组内的用户继承用户组的角色。这样将角色划分变成用户组划分角色,将权限分配变成用户关联用户组获得权限,使权限分配更加简单。具体到HR 系统中,把用户划分为管理员和普通员工两个用户组,避免过多的分组让用户感到迷惑。同时,剔除用户—权限的1:n 关系,可规避用户权限特殊化导致复杂的权限验证带来的效率问题,也使权限分配工作更加单一,简化了权限管理过程。权限管理云服务设计如图5 所示。

将具体的用户组、角色应用到用户后,管理员拥有各类任务的创建、浏览、编辑与删除权限,以及员工信息编辑与删除权限;普通员工拥有任务浏览及部分任务的编辑权限,但对部分任务不具备修改权限。因此,权限管理云服务既能够保证HR 系统的安全性,又具有良好的通用性和易用性。

Fig.5 Design of privilege management cloud service图5 权限管理云服务设计

3 云部署设计

3.1 后台服务Docker+Tars 部署

为解决传统C/S 架构的权限管理服务高并发问题及部署问题,本设计利用“Docker 容器+腾讯Tars 框架”作为整个HR 系统的部署框架,在容器和Tars 节点中运行权限管理服务及其他HR 后台服务,使权限管理服务具有高扩展性与高可维护性。该部署过程主要分为两步:镜像制作和容器运行。

镜像制作主要流程如下:

(1)下载镜像。执行命令“docker pull mysql”下载数据库镜像,执行命令“docker pull tarscloud/tars-framework”下载tars 平台,执行命令“docker pull tarscloud/tars-node”下载tars 节点。

(2)启动容器。执行命令“docker run-d-it--name tars--link mysql--env DBIP=mysql--env DBPort=3306 --env DBUser=root --env DBPassword=password -p 3000:3000 -v/tars_data:/data”,启动容器。

(3)部署服务。在浏览器中输入“IP 地址+端口号”,登录Tars 管理平台。在运维管理界面中部署权限管理等服务,切换到服务管理界面,上传服务程序并发布服务。

(4)镜像制作。服务发布完成后,执行命令“Docker commit 容器ID 镜像名称”完成镜像制作,并提交到镜像仓库,为接下来的Docker 部署提供镜像来源。

服务部署设计如图6 所示。通过制作好的权限管理服务分层镜像在云端IaaS 基础设施上拉取镜像并运行容器,快速部署权限管理云服务,从而为用户提供权限管理服务。在Tars 分布式框架下支持单个节点部署多个权限管理云服务,也支持容器内多个节点的复制多实例,以此实现负载均衡,可支撑大规模用户的同时访问。

Fig.6 Design of service deployment图6 服务部署设计

3.2 云平台Docker 部署方案

在云基础设施上采用Docker 镜像仓库的管理方式,不需要重复配置复杂的运行环境,即能实现大规模的云端服务部署,有效提升部署效率。本设计以构建好的云端权限管理服务镜像作为部署基础,设计一套安装批处理脚本,以实现自动化部署功能。该脚本主要功能包括检测并安装数据库、检测并安装Docker、从公有云Docker 镜像仓库中拉取服务镜像、部署容器并运行服务等。具体流程如图7 所示。

Fig.7 Automated cloud deployment图7 云部署自动化

使用该脚本可快速、高效地在公有云、私有云与混合云上进行部署:

(1)公有云部署方案。选择公有云部署方案,用户需要向公有云提供商(阿里、腾讯、百度等)购买IaaS 服务,获得云端虚拟机。运维人员通过虚拟机的IP 及账号登录,执行安装脚本,一键安装本系统。

(2)私有云部署方案。选择私有云部署方案,用户需要购买或提供服务器硬件,并安装操作系统。将服务器连接因特网后提供给系统运维人员,系统运维人员通过安装批处理脚本,一键安装本系统。安装完成后即可断开因特网,连接内部网络,在企业内网中使用。

(3)混合云部署方案。混合云部署方案与私有云方案类似,区别在于服务器使用双卡,一个连接内网,一个连接外网。其优势在于系统更新时可快速连接因特网进行服务升级,另外可享受到人力资源系统中基于公有云的扩展功能,如云端简历收集、简历分析等。

基于公有云Docker 镜像仓库的部署设计如图8 所示。

Fig.8 Design of deployment based on Docker image warehouse in public cloud图8 基于公有云Docker 镜像仓库的部署设计

采用这种公有云Docker 镜像仓库的部署方案,在服务更新时只需重新制作镜像,在各运行环境下拉取新镜像并运行,即可实现软件更新。传统重新安装新版本的方式需要卸载、复制、安装,整个过程需要花费15~20min,而基于公有云的升级方式仅需要几分钟的下载、配置与运行即可完成升级,缩短了部署时间,也不会因运行环境的差异导致新版本无法运行,降低了运维的复杂性。

4 结语

本文提出的云平台HR 管理系统权限管理服务专门针对中小企业的应用场景进行优化,提高了权限授予及鉴权工作效率,也提升了用户体验。同时,根据HR 系统用户是否分配了正确的角色,对用户权限进行深层次的管理与维护,提升了HR 系统的安全性。后续工作将围绕HR 系统权限管理服务研发与实现,以及如何利用分布式缓存技术实现快速鉴权而展开。

猜你喜欢

访问控制镜像云端
镜像
云端之城
镜像
美人如画隔云端
行走在云端
云端创意
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现