GIS用户中台的设计与实现

摘要

摘要:中台是从美军的作战体系演化而来,在计算机领域得到了应用。本文采用分布式微服务架构,采用Springboot和Dubbo进行整合,将用户管理、权限资源管理、身份认证、应用授权、日志管理、监控分析等几个方面进行抽象整合,形成一套适用于各类应用系统的统一权限管理和应用授权中心,形成一个可自由伸缩的GIS用户中台。

关键词:中台;用户管理;身份认证;应用授权;微服务
Abstract:Middle platform has evolved from the US combat system and was applied in the computer field. This paper adopts distributed micro-service architecture and Springboot and Dubbo to integrate user management, permission resource management, identity authentication, application authorization, log management, monitoring and analysis, etc., to form a set of unified authority management and application authorization center for various application systems, and form a freely scalable GIS user middle platform.

Key words: Middle platform;User management;Identity authentication; Application authorization;Micro-service

1 什么是中台

在美军的现代战争中,以7-11人为单元组建灵活的作战组织,由中台提供直升机、舰炮、导弹、战斗机等支援体系。同样的思路在IT行业中得到应用,阿里巴巴提出了“大中台、小前台”的概念具有创新性、灵活性的特点。中台是将各类应用系统的通用能力进行打包整合,通过接口的形式赋能到外部系统,从而达到快速支持业务发展的目的[1]。中台集合了运营数据能力、产品技术能力,可以帮助前台适应瞬息万变的市场,对前台业务形成强力支撑。

2 什么是GIS用户中台

企业内部会存在各种各样的系统,如CRM、ERP、Finace、地理信息应用系统、电子商务后端管理平台等等,只要涉及用户的信息系统都需要一套用户管理、部门管理、地图服务管理、权限认证机制来实现。GIS用户中台通俗的理解是一款这样的平台,通过沉淀、抽象、抽取企业内部各个应用系统中通用化的后台管理服务、业务、技术和数据,构建一套统一化、通用化的“用户-部门-角色-资源-操作权限”的用户管理平台,解决在不同应用系统中重复开发后台管理功能,形成一种规模效应。
刘飞认为,互联网公司中的中台按照难易程度可以分为技术中台、数据中台、业务中台、组织中台[2]。GIS用户中台至少应该包含三个层面的内容:在技术中台实现上,以微服务思想实现分布式系统架构设计,通过分布式服务通信的技术实现;数据中台实现上,用户信息统一管理、权限资源统一管理;业务中台实现上,满足用户身份统一认证、应用统一授权。

3 GIS用户中台的功能设计

一个完整的GIS用户中台需要提供以下功能,包括用户信息统一管理系统、角色权限统一管理系统、统一认证系统、统一授权系统、日志管理系统、监控分析系统,如图1所示。其中日志管理系统、监控分析系统用于系统运维、安全审计以及统计分析,其他的则提供了业务系统的通用性功能。
图1:GIS用户中台功能设计

3.1 用户信息统一管理系统

用户管理常见有注册-审核和系统分发两种模式。注册-审核模式是指系统潜在用户通过注册页面填写、提交注册信息后即可获得系统部分权限或是试用权限,通过用户管理人员审核后可以获得正式权限,一般面向互联网系统的公众用户。系统分发模式是指系统的所有用户由用户管理人员负责创建,无需用户自己申请,系统管理员在创建用户的同时分配好对应的权限。在功能上包括用户管理、密码管理、部门管理、岗位管理在内的通用性模块。
用户管理包括人员的新增、删除、修改、激活、失效等功能,人员信息的导入导出功能,根据人员信息进行精确、模糊、分页查询,可以按照部门、人名等不同规则进行分类展示。
密码管理包括普通用户的密码修改以及找回密码、密码重置功能。
部门管理用以配置系统组织机构(公司、部门、小组),支持无级创建与管理,支持树结构展现。在功能上包括部门的创立、删除、修改、激活、失效等功能,组织机构信息的导入导出功能,组织机构信息的精确、模糊、分页查询功能。
岗位管理用以配置系统用户所属担任职务,包括岗位的创立、删除、修改、激活、失效等功能,岗位信息的导入导出功能,根据岗位信息进行精确、模糊、分页查询,可以按照部门、岗位名称等不同规则进行分类展示。

3.2 角色权限统一管理系统

基于角色的访问控制方法[3](Role-Based Access Control,简称 RBAC)是目前公认的解决大型企业的统一资源访问控制的有效方法。在RBAC模型中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限,权限就是对某一资源的增加、删除、修改操作。基于RBAC模型可以实现用户、权限的分离,通过定义角色拥有的权限,并对用户授予某个角色从而来控制用户的权限。在功能上包括角色管理、权限资源管理。

3.2.1 角色管理

角色往往是基于业务管理需求而预先在系统中设定好的固定标签,每个角色对应明确的系统权限,其所拥有的系统权限一般不会随意更改,并且角色也不会随着用户的被添加和被移除而进行改变,相较于用户管理而言更加稳定。在角色管理中需要研究实现角色的自动赋权、角色赋权、角色继承、角色互斥等功能,以及对角色的增加、删除、修改、查询等功能。

3.2.2 权限资源管理

权限资源管理从菜单、功能按钮、GIS服务、数据等几个不同维度来考虑,在前后端分离模式、Restful风格的Web应用程序中,菜单、功能按钮、GIS服务都可以通过URL来过滤,从而达到权限控制的目的。而对于财务数据等敏感信息,如果要进行权限控制时也可以通过统一的服务接口进行调用,继而可以通过URL进行过滤达到统一的权限管理目的。
根据资源种类,我们可以权限资源管理分为菜单(按钮)管理、GIS服务管理、数据资源管理。

①菜单(按钮)管理

菜单(按钮)管理中用以配置系统菜单操作权限,按钮权限标识等。具体包括菜单(按钮)资源的创建、修改、删除、失效、激活等功能,支持模糊、精确查询,支持树状结构分级展示。

②GIS服务管理

中台设计和模块划分应该符合低耦合的特征,中台内部各模块、系统间的关联性、依赖性越低越好。为了更好地体现中台的普适性、规模效应,并且GIS服务具有专业性强、计算资源消耗高等特性,所以GIS用户中台中将GIS服务进行了统一管理设计。
根据提供的内容不同,GIS服务可以分为数据服务和功能服务,像ESRI中的缓存地图服务、动态地图服务、要素服务,以及OGC标准中的WMS服务、WMTS服务、WFS服务都属于数据服务,像地理处理服务、空间分析服务为功能服务。
GIS用户中台提供各类GIS服务的注册与发布,通过GIS服务统一管理系统实现,用以发布GIS服务的空间数据可以是文件型、关系型数据库、时空数据库或是网络中的其他数据服务,GIS服务接口类型既可以是Restful风格,也可以符合OGC标准规范。

③数据资源管理

在实际开发中,需要设置用户只能查看哪些部门的数据,这种情况一般称为数据权限。例如对于销售,财务的数据,它们是非常敏感的,因此要求对数据权限进行控制,对于基于集团性的应用系统而言,就更多需要控制好各自公司的数据了。如设置只能看本公司、或者本部门的数据,对于特殊的领导,可能需要跨部门的数据, 因此程序不能硬编码那个领导该访问哪些数据,需要进行后台的权限和数据权限的控制。本研究需要从全部数据、自定义数据、部门数据、部门及以下数据、仅本人数据等几个不同颗粒度实现对数据权限的控制。

3.3 统一身份认证系统

在一个数字化、信息化的工作体系中,应该有一个统一的身份认证系统供各应用系统使用。所谓身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是核对用户输入的用户名和口令,来判断用户身份是否正确。一方面是考虑增强应用系统的安全性,另一方面是考虑减少用户在多个应用系统间的频繁登录,GIS用户中台从三个层面提供统一的身份认证。

3.3.1 验证码认证

为了防止机器冒充人类做暴力破解,GIS用户中台可以提供传统的字符型验证码和行为验证码两种方式进行认证。传统字符型通过验证码展示-填写字符-比对答案的流程实现;而行为验证码是采用嵌入式集成方式,通过验证码展示-采集用户行为-分析用户行为流程实现。相对而言,行为验证码认证中用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;同时,快速、准确的返回人机判定结果。

3.3.2 单点登录

传统的多点登录系统中,每个站点都实现了本站专用的帐号数据库和登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。单点登录(SSO, Single Sign On)中用户经由其中任何一个站点登录后,可以免登录访问其他所有站点。而且,各站点间可以通过该登录状态直接交互的机制。

3.3.3 开放授权机制

OAuth2(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。

3.4 统一授权系统

授权系统与身份认证系统是由关联的,在用户通过身份验证之后,为用户分配的一个临时凭证(token)。在系统内部,各个子系统只需要以统一的方式正确识别和处理这个凭证即可完成对用户的访问和操作进行授权。
授权控制是指一旦用户的身份通过认证以后,确定哪些资源该用户可以访问、可以进行何种方式的访问操作等问题。授权可以简单理解为who对what(which)进行(How)操作:Who,即主体(Subject),主体需要访问系统中的资源。主体可以是用户、程序等。What,即资源(Resource),即前文中的各类菜单(按钮)、GIS服务、数据资源。How,权限/许可(Permission),规定了主体对资源的操作许可。

3.5 日志管理系统

为了确保平台在突发情况下有据可查,需要建立一套完整的日志审计和追溯的机制,从用户、时间、客户端、操作、结果5个角度构建一套详实的日志记录、能够提供汇总、归档和分析的能力。在用户层面能明确哪个账号、哪个实体人;时间层面需要确保所有服务器时间要同步一致,时间记录要精确到毫秒;客户端层面要标识出哪个客户端进行的操作;操作层面需要记录做了哪些操作,包括登录、登出、新增、删除、修改和查询等;在结果层面要记录下所做操作导致了什么样的结果,比如记录查询的条件和结果,删除的数据内容等。

3.6 监控分析系统

监控分析系统用于监控用户的实时在线情况、会话状态、统计分析服务的调用时长、GIS服务中一个图层(或多个图层)的绘画时长、各类服务资源占用的计算资源等等。另外监控分析系统也提供对各类操作信息、用户信息进行统计分析,形成统计报告。

4 GIS用户中台实现

4.1 技术栈选择

在开发GIS用户中台时,我们选择了当下流行Java作为开发语言,基于SpringBoot2.0框架整合Dubbo实现了地理信息应用系统的统一权限管理和应用授权。微服务技术栈采用了SpringBoot2.0、SpringMVC、Mybatis;分布式系统架构方面,分布式服务调度采用Dubbo中间件、统一协调管理服务采用ZooKeeper中间件;分布式中间件方面,缓存中间件采用Redis,网络通信组件采用OKHttps3;另外还采用了Guava-Retrying重试机制、Dubbo-Filter实现接口过滤拦截、JWT(JSON Web Token)实现服务接口调用时的认证、Shiro+Redis实现分布式Session集群、线程池多线程+@Schedule定时器实现定时任务调度。整合Freemarker实现前端操作权限控制(控制了显示与否),Shiro实现权限授权、后端权限控制。

4.2 中台技术架构

GIS用户中台引入了Dubbo这一高性能Java RPC框架,采用服务的生产者、消费者模式构建,中台中的各类通用功能作为服务生成者,注册到ZooKeeper中进行统一协调管理,各中台子系统作为服务消费者可以通过两种方式进行服务调用。GIS用户中台采用Dubbo RPC协议和HTTP协议的Restful API URL风格两种通信模式供中台子系统调用。Dubbo RPC协议适用于采用Java开发的同构系统,而HTTP协议通信模式在对调用者应用进行Token认证、授权后,适用于同构异构两种系统。GIS用户中台的技术架构如图2所示。
图2:GIS用户中台技术架构

4.3 开发实现

基于url拦截是现代Web应用中最常用的权限管理方法,实现思路是:将系统操作的每个url配置在权限表中,将权限对应到角色,将角色分配给用户,用户访问系统功能通过Filter进行过虑,过虑器获取到用户访问的url,只要访问的url是用户分配角色中的url则放行继续访问。
所以在开发实现时,GIS用户中台在接收到前端的请求后,依据在过滤器(Filter)、拦截器(Interceptor)中预先定义的过滤规则,对请求内容进行URL、Token等一系列验证后,对符合要求的请求放行到控制器层(Controller)、服务处理层(Service)进行相应的处理,同时将处理结果返回给前端完成整个的访问流程,如图3所示。
图 3:  GIS用户中台开发实现

5 总结

中台承担了居于前台和后台之间的工作,将后台资源进行抽象包装整合,转化为前台友好的可重用共享的核心能力,实现了后端业务资源到前台易用能力的转化。GIS用户中台的建设可以避免每个应用系统重复建设后台管理系统,有利于发挥规模效应,具备了对于前台业务变化及创新的快速响应能力。将各类GIS服务作为资源的一种,纳入权限资源的统一管理,做到了GIS服务的安全、可控,同时根据前台业务的需求,可以实现动态伸缩扩展。根据业务场景的需要,GIS用户中台可以跟包含有工作流、统计报表的业务中台进行整合,形成一个真正的大中台。

参考文献:

[1]百度百科.https://baike.baidu.com/item/%E4%B8%AD%E5%8F%B0/5570243.
[2]耿立超.大数据平台架构与原型实现 数据中台建设实战[M]. 北京:电子工业出版社,2020:2.
[3]周丹.广东农信数据中台建设的探索与实践[J].中国农村金融,2020(4):81~83.
[4]36Kr.com. https://36kr.com/p/5230397.
[5]吴永军,冯涛,王燕午.土地置业GIS管理平台中用户权限管理的研究与实现[J].城市勘测,2013,3:43—45.

作者简介:吴永军(1983-),男,天津市测绘院有限公司,高级工程师,主要从事地理信息在城市建设、管理方面的应用研究。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值