统一权限的流程开发与实际应用
Posted 数通畅联
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统一权限的流程开发与实际应用相关的知识,希望对你有一定的参考价值。
IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控5个方面的实际需求,进而规范用户身份信息,保证系统安全,提高工作效率。
其中授权管理对应的IDM中的统一权限模块是对其他业务系统的标准,也是对实际角色,功能资源、数据资源和接口资源进行统一的权限管控,根据实际业务需要与业务场景进行功能适配。以本次对接的业务系统为例,主要说明在统一权限的角色分发和统一权限的实际场景应用说明。
1模块说明
统一权限功能能够以用户身份为中心,解决企业当前权限管理面临的开通难、查询难、回收难和管理难的问题,实现企业业务权限的集中化、标准化、安全化,加速企业权限管理建设,降低对权限的管理与维护成本。
1.1功能架构
统一权限模块功能架构图如下。
1.角色管理包括:标准角色和实际角色两个模块,用户可以对各个应用系统下的标准角色和实际角色进行注册,支持excel导入和接口导入功能。
2.权限资源包括:功能资源、数据资源、接口资源三个模块。功能资源主要对各个应用系统的功能目录、功能菜单、功能页面URL、页面操作信息进行管理,支持excel导入和接口导入功能。
3.授权管理模块主要为各个应用系统的不同权限资源建立和标准角色、实际角色、人员、组织的关联关系。
1.2授权过程
在授权管理模块,当权限进行调整时会生成对应的操作,然后生成一个任务。生成任务后,可以通过任务ID推送给对应的业务系统,业务系统通过任务ID获取对应的权限资源信息。提交任务支持自动提交和手动提交,通过全局变量进行配置。
1.3应用切换
在统一权限模块中,标准角色、实际角色、权限资源、授权管理都支持对各个业务系统进行切换,实现分别的管控。
每个模块都会有这种能够切换业务系统的图标,选择后会切换到各个业务系统中进行数据和权限的管控。
2需求调研
在进行统一权限模块的流程和实际应用前,需要了解对接业务系统的接口数据样式,包括了接口入参格式和出参样式。了解和确认如何去开发流程与业务系统进行对接等等。
2.1接口调研
在流程对接前,首先就是要向业务系统提出需要的类型接口,提出需要什么接口。例如,在本次是对统一权限模块进行的流程开发,所以需要业务系统提供该模块的接口以及接口说明,角色的写入、角色的权限查询、角色分配用户、查询组织数据、查询人员数据等等。
在获得接口后需要明确对接系统提供的接口是否可用,通过SoapUi对接口进行测试,明确我们的入参所需数据,出参所需数据。因为我们的数据的存储方式大概率会和业务系统不同,所以需要找到他们和我们相同作用的字段进行录入或调用。
2.2业务模式
不同业务系统的业务模式是不相同的,在对业务系统进行适配操作时,需要了解业务系统的授权模式,在流程开发完毕后,想要进行实际效果的演示或检查是否真正的授权时,也需要了解该业务系统的权限管控情况。
2.3数据适配
在对接口进行测试完毕、并且对于业务系统的授权情况了解完毕后,就需要进行数据的适配情况检测了,例如在本次对接过程中,就发现了对接的业务系统数据与我们不适配的情况,他们是用id进行唯一校验,我们主要是用编码进行校验。而我们无法获取他们的id信息,所以通过交互业务系统,调整接口,将他们的编码设置成唯一校验。
3设计思路
通过对角色分发与统一流程的开发设计,实现对业务系统角色的管控和对各个功能模块的权限管控。满足统一权限模块的实际应用。
3.1角色分发
角色分发流程主要用于实现对于角色的增加、删减、修改的数据管理,满足在IDM进行角色的管控,同时下发给业务系统。
在接口调研中已经将对接接口测试完毕,调用数据分发时需要实现:
1.接取tokenId;
2.根据tokenId获取分发数据;
3.对分发数据进行调整和提取,将数据调整为业务系统的入参格式;
4.调用业务系统的角色流程;
5.将返回结果整理成日志信息回写给IDM。
3.2统一权限
统一权限流程实现了人员与角色的绑定,人员和角色对功能权限的授权管理,并将权限授权下发给业务系统。
1.接取tokenId并处理数据,查看是角色或是人员的权限新增、权限删除;
2.根据权限的新增或删除调用不同的子流程进行处理;
3.由于权限接口的问题,需要将该角色或人员的所有权限查询出来并进行比对,然后拼接成入参信息。
4.将返回结果整理成日志回写给IDM
3.3BPM对接
想要将IDM系统与ESB流程对接,需要调用IDM内置的BPM流程。流程主要包含三个节点。
1.生成初始化日志信息写入日志表中;
2.调用ESB流程传入taskId;
3.修改日志状态。将任务修改为已启用。
当工作任务选择流程并调用时,会将任务id传入到流程中,需要定义一个任务id获取流程id,在调用ESB流程时,将该id传递给ESB流程。
4流程开发
当初步确认接口的入参和出参,确认接口无误,并且明确了接口的实际使用效果后,就需要进行流程的开发了,包括对角色下发的流程开发、权限的数据下发以及BPM对ESB的流程调用。
4.1角色数据
新增http流程,设置入参为taskId。
接收taskId,调用获取业务系统接口的前置token。
根据taskId获取任务数据,需要调用IDM的tokenId然后获取数据。
取出任务数据后,拼接成业务系统的入参格式。利用type区分任务为新增、修改还是删除。
因为与业务系统约定好,如果传入的数据在他们业务系统中包含该编码,那么就将该数据修改,如果没有包含,那么就是新增。所以在本次流程中并不需要去判断新增还是修改。
最终将返回的信息写入到IDM的任务日志中。
4.2统一权限
新增权限分发流程,设置入参为taskId。
根据taskId获取数据。
根据获取到的任务数据信息,判断为人员授权新增、人员授权删除、实际角色授权新增还是实际角色授权删除。
根据不同的任务数据,调用不同的权限写入流程。
在子流程中,接收到入参信息,并将该信息处理成业务系统的入参格式。
本次业务系统的数据情况比较特殊,没有删除角色权限的接口,所以需要将角色所有权限取出后,与当前权限依次对比,然后将相同的权限移除后,在将剩余的权限拼接成新的json写入到角色权限接口中。
4.3BPM对接
新增两个BPM流程,角色推送流程和统一权限分发。每个流程包含三个节点:初始化日志、调用ESB流程、数据库状态回写。
在属性中配置流程的全局变量,任务Id和tokenId。
调用日志写入:调用初始化日志接口,在调用该流程前将未发送的日志信息写入日志表中。
调用ESB流程服务:该节点调用ESB服务,将taskId写入到流程中。
调用数据库状态回写:将该条任务的任务装调调整为已推送。
配置完成后重新加载流程。
5效果展现
本次统一权限模块开发了实际角色的推送流程以及统一权限的权限下发,在实际的使用过程展示前,先了解一下统一权限模块的组成和管控方式。
5.1效果说明
统一权限模块分为标准角色、实际角色、权限资源和授权管理四个模块。其中权限资源模块为了功能资源、数据资源和接口资源。
功能资源是对各个业务系统的组织功能树进行管控和维护,包括了页面和页面中的按钮等。
数据资源是对业务系统的枚举类数据进行权限管控,比如“性别”,“民族”等等。
接口资源是对业务系统的接口数据的权限进行管控。
最后在授权管理模块统一对这三种资源类型通过标准角色、实际角色、人员和组织进行授权管理。
在统一权限模块的用户和组织可以调用两种方式,一种为组织管理和人员管理中的信息,另一种则是拉取对应业务系统的人员和组织信息进行授权。
在应用配置中,如果“是否”统一组织点击为“否”时,则可以调用他们自己的组织和人员。
5.2角色推送
在实际角色中选择业务系统,可以在该页面进行标准角色的增加和删除。
选择一个角色,生成任务。
选择角色推送流程,然后保存该任务。
切换操作详情,检查操作信息是否准确。
检查无误后,提交该任务。
切换到对应业务系统,可以看到刚刚推送的“天依SR”已经到了该业务系统中。
5.3权限管控
切换IDM到授权管理模块,切换至对接的业务系统。
选择一个对应的功能菜单,添加实际角色。
添加好该角色后,会在工作任务中自动生成一条对应的工作任务。
查看该任务,选择对应的分发流程并检查相应的操作是否正确。
发送成功后可以到对应业务系统中查看该授权信息。
6心得总结
在本次统一权限的流程开发过程中,首先是对业务系统的接口进行测试,在开发过程中经常遇到一些暗坑,在不断排查和摸索的过程中,自己对于系统的对接交互、流程开发、产品的理解有了新的提升。
6.1调研过程
首先要明确本次工作的目标和范围,在进行业务系统对接前,一定要索要相关模块的接口以及使用说明,确认入参格式、出参格式和内容,根据我们自己的数据情况进行比对和分析,在一次次的交流过后,选择是进行接口调整还是在ESB中添加相关的处理方式。
6.2开发思路
本身ESB具有强大的应用集成功能,各个组件之间相互调用和使用,所以对于开发人员的业务水平和理解水平有着很高的要求,不然根本不知道如何去下手,开发出合理的、可用的流程。设计一个优秀的ESB流程并不是容易的事,需要注意以下几个简单但重要的操作情况。
1.多打印:每个流程节点的变量如果很复杂,最好通过logger.info进行数据打印,这样方便更好地排查问题。
2.多复制:对于流程中的全局变量,最好在创建完成后全部使用复制粘贴的办法,避免敲错或漏敲。
3.多思考:如果在调用其他子流程时,最好是多写一些出参数据,一是方便出现问题好进行排查,二是后续对流程进行维护时便于处理。
6.3对接心得
在业务系统进行有关数据对接过程中,要提前将双方需要注意的事项进行约定,这样可以保证后续的不必要麻烦,在思考问题时不能从单一方向来思考,要学会从不同的角度来全面剖析,同时提高了自己对待问题的认知度,这样才能不断地提升自己并且变得有深度。
通过和不同的系统厂商打交道,可以提高自己的沟通能力,也会提高自己对公司产品的理解。同时对于问题的分析也会更加的全面透彻,对于问题的理解也会更加全面,考虑到更多问题和隐藏可能,在这种不断的交互过程中逐渐地去打磨自己,让这种思考方式形成一种习惯,也会为后续工作打下良好的基础。
以上是关于统一权限的流程开发与实际应用的主要内容,如果未能解决你的问题,请参考以下文章
嵌入式软件设计之美-以实际项目应用MVC框架与状态模式(下)