一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用户权限的管理方法、系统及电子设备与流程

2022-02-19 14:20:34 来源:中国专利 TAG:


1.本发明涉及权限管理技术领域,具体涉及一种用户权限的管理方法、系统及电子设备。


背景技术:

2.现有的单点登录方案sso(single sign on,例如oauth2.0、cas和ldap等)只提供用户登录功能,只做登录会话的管理,管理用户是否登录,但不能管理用户的权限,无法实现权限管理的落地。
3.针对相关技术中无法实现权限管理的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明的主要目的在于提供一种用户权限的管理方法及系统,以解决相关技术中无法实现权限管理的问题。
5.为了实现上述目的,本发明的第一方面提供了一种用户权限的管理方法,包括:
6.接收用户通过uaa中的应用发起的签发请求;
7.根据所述签发请求签发对应接口类型的accesstoken至所述用户;
8.接收所述用户通过uaa中的应用发起的资源访问请求,其中,所述资源访问请求包括访问的资源和所述accesstoken;
9.解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述访问的资源;
10.如果包含,则使所述用户访问所述资源。
11.可选地,在接收用户通过uaa中的应用发起的签发请求之后,所述方法还包括:
12.判断所述签发请求访问的接口是否为公共接口;
13.如果是,则通过api网关将所述签发请求转发到微服务;
14.获取微服务针对所述签发请求中的用户信息的验证结果;
15.如果所述验证结果为成功,则根据用户调用的路由映射地址确定对应接口类型的accesstoken;
16.其中,所述对应接口类型由路由映射地址内部限定,包括开放接口、后台管理接口和前端app接口。
17.可选地,所述根据所述签发请求签发对应接口类型的accesstoken至所述用户包括:
18.将accesstoken和接口类型进行绑定,以使特定的accesstoken只允许访问特定类型的接口;
19.根据各接入项目的业务场景,提供不同接口类型的accesstoken的签发和刷新。
20.进一步地,所述根据各接入项目的业务场景,提供不同接口类型的accesstoken的签发和刷新,包括:
21.在微服务场景下,签发开放接口的accesstoken;
22.对于uaa中的项目,提供后台管理接口的accesstoken的签发和刷新;
23.对于所有项目,均提供前端app接口的accesstoken的签发和刷新。
24.可选地,所述解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述访问的资源,包括:
25.解析所述accesstoken,得到解析结果,其中,所述解析结果包括accesstoken的接口类型和用户权限特征码信息;
26.判断所述解析结果中accesstoken的接口类型与所述对应接口类型是否相同;
27.如果相同,则将所述资源访问请求转发至微服务;
28.通过所述微服务验证所述用户的权限是否包含所述访问的资源。
29.进一步地,所述通过所述微服务验证所述用户的权限是否包含所述访问的资源包括:
30.通过所述微服务获取所述资源的特征码;
31.验证所述用户权限特征码信息中是否包含所述资源的特征码;
32.如果包含,则所述用户的权限包含所述访问的资源。
33.进一步地,所述解析结果还包括用户信息和用户登录信息,所述方法还包括:
34.将所述解析结果存储至uaa下的rbac中;
35.根据所述rbac获取用户信息、用户登录信息、用户权限特征码信息和accesstoken的接口类型;
36.利用所述用户登录信息为所述用户提供登录验证,并利用所述用户权限特征码信息管理用户权限。
37.本发明的第二方面提供了一种用户权限的管理系统,包括:
38.签发请求接收单元,用于接收用户通过uaa中的应用发起的签发请求;
39.签发单元,用于根据所述签发请求签发对应接口类型的accesstoken至所述用户;
40.资源访问请求接收单元,用于接收所述用户通过uaa中的应用发起的资源访问请求,其中,所述资源访问请求包括访问的资源和所述accesstoken;
41.验证单元,用于解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述访问的资源;如果包含,则使所述用户访问所述资源。
42.本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的用户权限的管理方法。
43.本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的用户权限的管理方法。
44.在本发明实施例提供的用户权限的管理方法中,接收用户通过uaa中的应用发起的签发请求;根据所述签发请求签发对应接口类型的accesstoken至所述用户;接收所述用户通过uaa中的应用发起的资源访问请求,其中,所述资源访问请求包括访问的资源和所述accesstoken;解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述
访问的资源;如果包含,则使所述用户访问所述资源。本发明通过签发对应接口类型的accesstoken以及根据解析accesstoken的结果验证用户的权限是否包含访问的资源,解决了相关技术中无法实现权限管理的问题,实现了对用户权限的验证。
附图说明
45.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本发明实施例提供的用户权限的管理方法流程示意图;
47.图2为本发明实施例提供的签发对应接口类型的accesstoken的流程图;
48.图3为本发明实施例提供的路由及鉴权流程图;
49.图4为本发明实施例提供的用户权限的管理系统框图;
50.图5为本发明实施例提供的电子设备框图。
具体实施方式
51.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
52.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
53.在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的系统、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
54.并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
55.此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个系统、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
56.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相
互组合。下面将参考附图并结合实施例来详细说明本发明。
57.现有的单点登录方案sso(single sign on,例如oauth2.0、cas和ldap等)只提供用户登录功能,只做登录会话的管理,管理用户是否登录,但不能管理用户的权限,无法实现权限管理的落地。
58.为了解决上述问题,本发明实施例提供了一种用户权限的管理方法,如图1所示,该方法包括如下的步骤s101至步骤s105:
59.步骤s101:接收用户通过uaa中的应用发起的签发请求;
60.其中,uaa(user account and authentication)是平台建设的用户统一权限管理中心,用户通过uaa中的应用发起签发请求,签发请求对应可访问接口的接口类型,以获取签发对应接口类型的accesstoken;接口类型包括开放接口(openapi)、后台管理接口(manageapi)、前端app接口(restapi)和公共接口(publicapi)。
61.本发明实施例提供的签发对应接口类型的accesstoken的流程图如图2所示,根据图2中的内容可知,在步骤s101之后,所述方法还包括:
62.判断所述签发请求访问的接口是否为公共接口;
63.如果是,则通过api网关将所述签发请求转发到微服务;用户通过调用路由映射地址访问接口,如果签发请求访问的接口是公共接口,则在微服务接口实现中通过验证码、账号密码、扫码、钉钉等登录方式完成登录,并通过api向网关发起accesstoken签发的请求来签发用户请求的accesstoken;如果签发请求访问的接口不是公共接口,则向用户反馈登录失败信息;
64.获取微服务针对所述签发请求中的用户信息的验证结果;微服务通过用户发起签发请求进行登录时的参数获取用户信息,并对所获取的用户信息进行验证,得到验证结果;
65.如果所述验证结果为成功,则根据用户调用的路由映射地址确定对应接口类型的accesstoken;如果所述验证结果为成功,还与数据库进行数据交互,以记载登录信息;如果所述验证结果为失败,则向用户响应验证结果;
66.其中,所述对应接口类型由路由映射地址内部限定,包括开放接口、后台管理接口和前端app接口。
67.步骤s102:根据所述签发请求签发对应接口类型的accesstoken至所述用户;通过将签发的accesstoken与接口类型相对应,后续根据资源访问请求进行鉴权时,通过验证签发的accesstoken的解析结果与用户携带的对应接口类型是否相同,即可判断验证是否通过。
68.具体的,所述步骤s102包括:
69.将accesstoken和接口类型进行绑定,以使特定的accesstoken只允许访问特定类型的接口;
70.根据各接入项目的业务场景,提供不同接口类型的accesstoken的签发和刷新。根据各接入项目的业务场景的不同,签发的accesstoken对应接口类型也不相同。
71.进一步的,所述根据各接入项目的业务场景,提供不同接口类型的accesstoken的签发和刷新,包括:
72.在微服务场景下,签发开放接口的accesstoken;在微服务场景下,认证服务器进行accesstoken的认证,并提供jwt(json web token)签名密钥的同步功能,开放接口伴随
ip白名单,只允许ip白名单中特定ip发起的签发请求,因此只适用于服务期间通讯使用,只能签发开放接口的accesstoken;
73.对于uaa中的项目,提供后台管理接口的accesstoken的签发和刷新;
74.对于所有项目,均提供前端app接口的accesstoken的签发和刷新。
75.不同接口类型中,开放接口用于服务端java程序或业务中心以外的客户调用,后台管理接口用于浏览器从后台管理界面调用,支撑业务运营和系统维护,前端app接口用于运行在客户终端上的应用程序调用,而公共接口直接放行,不参与鉴权。通过不同接口类型各自不同的描述,可以实现对访问不同类型接口的用户的权限进行管理。
76.受保护的接口访问都是需要用户携带签发的accesstoken来完成鉴权操作,项目上考虑到水平扩展的需要,设计为无状态接口,所在常用的accesstoken策略一般都采用jwt落地实现。
77.步骤s103:接收所述用户通过uaa中的应用发起的资源访问请求,其中,所述资源访问请求包括访问的资源和所述accesstoken;
78.本发明实施例提供的路由及鉴权流程图如图3所示,通过路由信息映射的地址确定api网关,终端用户携带签发的accesstoken向api网关发起资源访问请求,进行登录检查;
79.步骤s104:解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述访问的资源;
80.具体的,所述步骤s104包括:
81.解析所述accesstoken,得到解析结果,其中,所述解析结果包括accesstoken的接口类型和用户权限特征码信息;如果本地无记录,则解析所述accesstoken,返回解析结果,并验证解析结果;如果本地有记录,则直接验证解析结果;
82.判断所述解析结果中accesstoken的接口类型与所述对应接口类型是否相同;
83.如果相同,则将所述资源访问请求转发至微服务;如果解析结果中accesstoken的接口类型与用户携带的对应接口类型相同,则将所述资源访问请求转发至微服务,以验证用户的权限是否包含访问的资源;如果不同,则登录验证未通过,用户携带的对应接口类型无法访问解析结果中accesstoken的接口类型,向用户反馈验证未通过信息;
84.通过所述微服务验证所述用户的权限是否包含所述访问的资源。
85.进一步的,所述通过所述微服务验证所述用户的权限是否包含所述访问的资源包括:
86.通过所述微服务获取所述资源的特征码;所述特征码为限定权限的安全类注解,包括securityrole(权限角色)、securityoption(权限操作)和securityscope(权限范围);
87.验证所述用户权限特征码信息中是否包含所述资源的特征码;
88.如果包含,则所述用户的权限包含所述访问的资源。如果用户权限特征码信息中包含所述资源的特征码,则用户的权限包含所述访问的资源,用户具有访问所述资源的权限,校验通过后可以正常访问所述资源,进行业务处理;如果不包含,则用户没有访问所述资源的权限,校验未通过。
89.进一步的,所述解析结果还包括用户信息和用户登录信息,所述方法还包括:
90.将所述解析结果存储至uaa下的rbac中;
91.根据所述rbac获取用户信息、用户登录信息、用户权限特征码信息和accesstoken的接口类型;
92.利用所述用户登录信息为所述用户提供登录验证,并利用所述用户权限特征码信息管理用户权限。
93.对于现有技术中每个子系统登录时都需要用户认证,各子系统需要考虑重复认证的繁琐逻辑,使用时重复认证导致降低用户体验的问题,本发明实施例集成多种单点登录sso方式,集成了oauth2.0、cas、ldap等标准功能,方便第三方系统直接配置,快速接入系统,用户在uaa登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任;对于无以上接入标准的系统,也提供有基于http和json方式的接口,方便二次开发接入,针对异构系统尤其友好。
94.通过与uaa中的rbac,根据rbac登录信息里存储的用户信息,拿到用户的完整信息,包含用户可访问资源的权限信息、用户登录信息、用户权限特征码信息和accesstoken的接口类型,可以实现在不同的子系统中仅需一次登录,而不用每次更换子系统时重新登录认证,还可以实现在不同的子系统中的一次鉴权,在登录后查看用户权限并管理。
95.步骤s105:如果包含,则使所述用户访问所述资源。如果用户的权限包含所述访问的资源,则用户可以访问所述资源,进行业务处理;如果不包含,则用户没有访问所述资源的权限,无法访问所述资源。
96.本发明实施例除上述统一的用户及权限管理外,还基于springboot提供快速接入的sdk,支持开发以极小的代价,通过配置文件有注解的方式,就可以快速接入系统,实现登录管理、权限控制录等,大大提高开发效率及系统稳固性。
97.提供基于注解方式的路由和权限管理,由系统自动上报协商,完成路由和权限的动态管控,对系统侵入性极小。
98.从以上的描述中,可以看出,本发明实现了如下技术效果:
99.本发明通过签发对应接口类型的accesstoken以及根据解析accesstoken的结果验证用户的权限是否包含访问的资源,解决了相关技术中无法实现权限管理的问题,实现了对用户权限的验证;
100.聚合了多种开源单点登录方案,打通并实现了用户的管理以及基于rbac的权限控制,用户在uaa登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任;
101.基于springboot提供快速接入的sdk,支持开发以极小的代价,通过配置文件有注解的方式,就可以快速接入系统,实现登录管理、权限控制等,大大提高开发效率及系统稳固性。
102.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
103.本发明实施例还提供了一种用于实施上述用户权限的管理方法的用户权限的管理系统,如图4所示,该系统包括:
104.签发请求接收单元41,用于接收用户通过uaa中的应用发起的签发请求;
105.签发单元42,用于根据所述签发请求签发对应接口类型的accesstoken至所述用
户;
106.资源访问请求接收单元43,用于接收所述用户通过uaa中的应用发起的资源访问请求,其中,所述资源访问请求包括访问的资源和所述accesstoken;
107.验证单元44,用于解析所述accesstoken,并根据解析结果验证所述用户的权限是否包含所述访问的资源;如果包含,则使所述用户访问所述资源。
108.本发明实施例还提供了一种电子设备,如图5所示,该电子设备包括一个或多个处理器51以及存储器52,图5中以一个处理器51为例。
109.该控制器还可以包括:输入装置53和输出装置54。
110.处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。
111.处理器51可以为中央处理器(central processing unit,简称为cpu),处理器51还可以为其他通用处理器、数字信号处理器(digital signal processor,简称为dsp)、专用集成电路(application specific integrated circuit,简称为asic)、现场可编程门阵列(field

programmable gate array,简称为fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
112.存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的用户权限的管理方法。
113.存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
114.输入装置53可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
115.一个或者多个模块存储在存储器52中,当被一个或者多个处理器51执行时,执行如图1所示的方法。
116.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,简称为rom)、随机存储记忆体(random access memory,简称为ram)、快闪存储器(flash memory,简称为fm)、硬盘(hard disk drive,简称为hdd)或固态硬盘(solid

state drive,简称为ssd)等;存储介质还可以包括上述种类的存储器的组合。
117.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发
明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献