
1.本发明涉及鉴权技术领域,更具体地说,涉及一种联动授权方法、装置、设备及存储介质。
背景技术:2.目前业界流行的部署模式是前后端分离部署(前后端分别为ui层及api层),这就导致用户鉴权的难度大大提升;很多实施方案要么只简单地解决ui层的用户鉴权,要么只是“一刀切”地解决api层的用户鉴权,这会导致用户鉴权的准确性较低。
技术实现要素:3.本发明的目的是提供一种联动授权方法、装置、设备及存储介质,能够有效提高用户鉴权的准确性。
4.为了实现上述目的,本发明提供如下技术方案:
5.一种联动授权方法,包括:
6.在为当前用户展现当前ui时,基于当前用户在当前ui的权限,对当前ui上的ui资源进行相应的设置,并在设置完成后对当前ui进行展现;
7.在当前用户进行当前ui上任意ui资源对应的业务操作时,确定该任意ui资源对应的业务操作为当前业务操作,并判断当前用户是否具有进行当前业务操作的权限,如果是,则调用业务api完成当前业务操作,如果否,则拒绝调用业务api完成当前业务操作。
8.优选的,判断当前用户是否具有进行当前业务操作的权限,包括:
9.确定当前用户的各项用户信息中未被选作过当前信息的用户信息为候选信息,从候选信息中选择优先级最高的用户信息作为当前信息,基于当前信息判断当前用户是否具有进行当前业务操作的权限,如果能够得到判断的结果,则确定完成判断当前用户是否具有进行当前业务操作的权限的步骤,否则,返回执行确定当前用户的各项用户信息中未被选做过当前信息的用户信息为候选信息的步骤,直至当前用户的各项用户信息均被选作过当前信息为止;其中,所述用户信息包括当前用户的个人、角色及组织机构的信息。
10.优选的,基于当前信息判断当前用户是否具有进行当前业务操作的权限,包括:
11.如果当前用户具有多项当前信息,则基于当前信息按照权限最大原则或者权限最小原则判断当前用户是否具有进行当前业务操作的权限;其中,权限最大原则为只要任意当前信息表示当前用户具有进行当前业务操作的权限、则确定当前用户具有进行当前业务操作的权限,权限最小原则为只要任意当前信息表示当前用户不具有进行当前业务操作的权限、则确定当前用户不具有进行当前业务操作的权限。
12.优选的,还包括:
13.接收任意分级管理员针对相应组织机构的个人、角色及组织机构进行的权限管控信息,并基于所述权限设置信息对相应组织机构的个人、角色及组织机构进行相应的权限管控。
14.一种联动授权装置,包括:
15.ui鉴权模块,用于:在为当前用户展现当前ui时,基于当前用户在当前ui的权限,对当前ui上的ui资源进行相应的设置,并在设置完成后对当前ui进行展现;
16.api鉴权模块,用于:在当前用户进行当前ui上任意ui资源对应的业务操作时,确定该任意ui资源对应的业务操作为当前业务操作,并判断当前用户是否具有进行当前业务操作的权限,如果是,则调用业务api完成当前业务操作,如果否,则拒绝调用业务api完成当前业务操作。
17.优选的,所述api鉴权模块包括:
18.api鉴权单元,用于:确定当前用户的各项用户信息中未被选作过当前信息的用户信息为候选信息,从候选信息中选择优先级最高的用户信息作为当前信息,基于当前信息判断当前用户是否具有进行当前业务操作的权限,如果能够得到判断的结果,则确定完成判断当前用户是否具有进行当前业务操作的权限的步骤,否则,返回执行确定当前用户的各项用户信息中未被选做过当前信息的用户信息为候选信息的步骤,直至当前用户的各项用户信息均被选作过当前信息为止;其中,所述用户信息包括当前用户的个人、角色及组织机构的信息。
19.优选的,所述api鉴权单元包括:
20.api鉴权子单元,用于:如果当前用户具有多项当前信息,则基于当前信息按照权限最大原则或者权限最小原则判断当前用户是否具有进行当前业务操作的权限;其中,权限最大原则为只要任意当前信息表示当前用户具有进行当前业务操作的权限、则确定当前用户具有进行当前业务操作的权限,权限最小原则为只要任意当前信息表示当前用户不具有进行当前业务操作的权限、则确定当前用户不具有进行当前业务操作的权限。
21.优选的,还包括:
22.管控模块,用于:接收任意分级管理员针对相应组织机构的个人、角色及组织机构进行的权限管控信息,并基于所述权限设置信息对相应组织机构的个人、角色及组织机构进行相应的权限管控。
23.一种联动授权设备,包括:
24.存储器,用于存储计算机程序;
25.处理器,用于执行所述计算机程序时实现如上任一项所述联动授权方法的步骤。
26.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述联动授权方法的步骤。
27.本发明提供一种联动授权方法、装置、设备及存储介质,该方法包括:在为当前用户展现当前ui时,基于当前用户在当前ui的权限,对当前ui上的ui资源进行相应的设置,并在设置完成后对当前ui进行展现;在当前用户进行当前ui上任意ui资源对应的业务操作时,确定该任意ui资源对应的业务操作为当前业务操作,并判断当前用户是否具有进行当前业务操作的权限,如果是,则调用业务api完成当前业务操作,如果否,则拒绝调用业务api完成当前业务操作。本技术在为用户展现ui时,基于用户在ui的权限对ui上的ui资源进行相应设置及展现,在用户基于ui上任意ui资源进行相应业务操作时,如果用户具有进行相应业务操作的权限则调用业务api完成相应业务操作,否则拒绝调用业务api完成相应业务操作;可见,本技术将ui资源和api资源联合形成联动资源,以通过这种联动资源较好的
体现业务的关联性及具体性,进而基于联动资源实现相应的权限判定,能够有效提高用户鉴权的准确性。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
29.图1为本发明实施例提供的一种联动授权方法的流程图;
30.图2为本发明实施例提供的基于三种鉴权模式实现鉴权的示意图;
31.图3为本发明实施例提供的基于跨类优先级算法实现鉴权的示意图;
32.图4为本发明实施例提供的基于分级管理员实现授权管理的示意图;
33.图5为本发明实施例提供的一种联动授权装置的结构示意图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.请参阅图1,其示出了本发明实施例提供的一种联动授权方法的流程图,具体可以包括:
36.s11:在为当前用户展现当前ui时,基于当前用户在当前ui的权限,对当前ui上的ui资源进行相应的设置,并在设置完成后对当前ui进行展现。
37.本发明实施例提供的联动授权方法可以基于java、javascript、spring boot、spring security、vue、saas技术栈、scmsa技术路线等实现。另外,本发明实施例提供的联动授权方法的执行主体可以为集成有联动授权装置的鉴权平台,以下以该联动授权方法的执行主体为鉴权平台进行具体说明。
38.在本发明实施例中,将ui(user interface,用户界面)资源和api(application programming interface,应用程序接口,它是一些预先定义的接口(如函数、http接口),本技术中主要泛指http接口)资源联合在一起形成一个联动资源,并且只有ui+api这种联动资源,才能够较好的体现业务的关联性、具体性;从而使得每一个具体的业务才是授权的最小单位,而不是“一刀切”(没有根据具体业务场景,无视业务上下游关联关系)地对资源进行授权。管理员可以将联动资源授权(允许/不允许)给指定的人、角色、组织机构后形成相应的授权准则,进而在后续基于授权准则实现用户鉴权;具体来说,在当前用户进入当前ui(也即为当前用户展示当前ui)时,先基于授权准则确定当前用户对当前ui上各项ui资源的权限,进而基于此实现对当前ui上各项ui资源的设置及展现,从而实现对当前ui的第一层权限判定。其中,当前用户为当前需要鉴权的任意用户,当前ui为当前需要展现给当前用户的任意ui,ui资源可以包括界面、窗口、路由、菜单、控件等,对ui资源的设置可以包括只读性、可执行性和可见性设置,而基于授权准则确定当前ui上各项ui资源的设置可以是基于
授权准则确定当前ui上哪些ui资源为仅供用户只读的、哪些ui资源为可供用户可执行的、哪些ui资源为可使用户可见的,进而基于此实现相应ui资源的设置。
39.s12:在当前用户进行当前ui上任意ui资源对应的业务操作时,确定该任意ui资源对应的业务操作为当前业务操作,并判断当前用户是否具有进行当前业务操作的权限,如果是,则调用业务api完成当前业务操作,如果否,则拒绝调用业务api完成当前业务操作。
40.在完成第一层权限判定后,如果用户需要调用服务(也即通过当前ui上的任意ui资源进行相应的业务操作,如点击任意ui资源、双击任意ui资源等),则继续实现第二层权限判定;具体来说,在第二层权限判定时,基于授权准则判断当前用户是否具有调用业务api以实现相应业务操作的权限,如果判断的结果为是,则说明当前用户具有调用业务api以实现相应业务操作的权限,因此调用业务api完成相应业务操作,否则说明当前用户不具有调用业务api以实现相应业务操作的权限,因此拒绝调用业务api完成相应业务操作。
41.本技术在为用户展现ui时,基于用户在ui的权限对ui上的ui资源进行相应设置及展现,在用户基于ui上任意ui资源进行相应业务操作时,如果用户具有进行相应业务操作的权限则调用业务api完成相应业务操作,否则拒绝调用业务api完成相应业务操作;可见,本技术将ui资源和api资源联合形成联动资源,以通过这种联动资源较好的体现业务的关联性及具体性,进而基于联动资源实现相应的权限判定,能够有效提高用户鉴权的准确性。
42.本发明实施例提供的一种联动授权方法,判断当前用户是否具有进行当前业务操作的权限,可以包括:确定当前用户的各项用户信息中未被选作过当前信息的用户信息为候选信息,从候选信息中选择优先级最高的用户信息作为当前信息,基于当前信息判断当前用户是否具有进行当前业务操作的权限,如果能够得到判断的结果,则确定完成判断当前用户是否具有进行当前业务操作的权限的步骤,否则,返回执行确定当前用户的各项用户信息中未被选做过当前信息的用户信息为候选信息的步骤,直至当前用户的各项用户信息均被选作过当前信息为止;其中,用户信息包括当前用户的个人、角色及组织机构的信息;
43.基于当前信息判断当前用户是否具有进行当前业务操作的权限可以包括:如果当前用户具有多项当前信息,则基于当前信息按照权限最大原则或者权限最小原则判断当前用户是否具有进行当前业务操作的权限;其中,权限最大原则为只要任意当前信息表示当前用户具有进行当前业务操作的权限、则确定当前用户具有进行当前业务操作的权限,权限最小原则为只要任意当前信息表示当前用户不具有进行当前业务操作的权限、则确定当前用户不具有进行当前业务操作的权限。
44.如图2所示,本发明实施例中把鉴权模式分为三种,包括人(与“个人”含义相同)、角色、组织机构,进而在实现权限管理的时候可以将权限赋予指定的人、赋予指定的角色、赋予指定的组织。在进行用户鉴权的时候,可以1)判定当前人是否具有权限;2)判定当前人拥有的角色是否具有权限;3)判定当前人所在的组织机构(可以是多个)甚至父组织机构是否具有权限。
45.在此基础上,本发明实施例可以基于多种算法实现用户鉴权,包括跨类优先级算法、同类判定算法。具体来说,根据上述三类鉴权模式(人、角色、组织机构),本发明实施例中设计有跨类优先级算法,如图3所示,跨类优先级算法可以根据用户自定义的跨类优先级(与“优先级”含义相同)设定进行权限计算,例如用户设定的是跨类优先级为人》组织机构》
角色,则表示授权到人的准则高于授权到人所在组织机构的准则高于授权到人所关联的角色的准则,此时假设用户所关联的角色被授权可以访问资源r1、r2,用户所在的组织机构不允许访问资源r1,那么当前用户的最终资源判定是不允许访问资源r1,但是可以访问资源r2,再假设用户拥有的角色可以访问资源r,但是用户所在的组织机构不允许访问资源r,那么用户最终的资源判定是不允许访问资源r。根据上述三类鉴权模式(人、角色、组织机构),本发明实施例中设计有同类判定算法,比如用户具有多个角色,每个角色对资源的权限是不一致的,这个时候就需要一个算法来进行计算最终是否可以访问该资源,但是用户拥有的角色的权限判定与拥有的组织机构的权限判定,不在该算法中体现;同类判定算法中可以根据用户自定义设置的权限最大原则和权限最小原则来进行判定,权限最大原则为只要有一个认可,那么就可以认定具有权限,权限最小原则为只要有一个否决,那么就可以认定不具有权限。结合上述两种算法,本发明实施例可以在判断当前用户是否具有进行当前业务操作的权限时,可以先按照跨类优先级算法确定当前用户是否具有进行当前业务操作的权限,进而如果在基于任意项的用户信息实现权限判定时该任意项的用户信息有多个(如基于用户角色实现权限确定时,用户具有多个角色),则可以按照同类判定算法确定当前用户是否具有进行当前业务操作的权限。
46.另外,在确定当前用户在当前ui的权限时,可以是授权准则中预先设定的对应关系确定与当前用户对应的权限则为当前用户在当前ui的权限,也可以按照确定当前用户是否具有进行当前业务操作的权限的方式确定当前用户对于当前ui上各ui资源的权限,当然根据实际需要进行的其他设定,也均在本发明的保护范围之内。
47.可见,本技术通过多种授权模式的应用,保证了最终用户对授权的多样性需求,而不是单一、死板地进行授权,使得业务系统可以多样性的满足用户需求,降低了业务系统本身的复杂度,提高了系统实施和运维效率;通过自定义的灵活鉴权算法,保证了最终用户对授权的灵活性需求,使得业务系统可以灵活便捷地响应用户需求变更,降低了业务系统本身的复杂度,提高了系统实施和运维效率;
48.本发明实施例提供的一种联动授权方法,还可以包括:
49.接收任意分级管理员针对相应组织机构的个人、角色及组织机构进行的权限管控信息,并基于权限设置信息对相应组织机构的个人、角色及组织机构进行相应的权限管控。
50.本发明实施例中,充分考虑到进行权限管理的超级管理员的工作繁琐性和复杂度问题,面对当系统用户量越来越大,系统业务功能越来越多时,权限设置会越来越具体性、强业务性,超级管理员的工作量会成倍的上涨,导致超级管理员疲于修改用户的权限,忙中出错的概率大大增加,用户“越界”访问的可能性大大提高,系统的安全性逐渐降低等这些问题,本发明实施例中设置有分级管理员来辅助/分担超级管理员进行权限管理。如图4所示,每一级别的组织机构都“天生”具备分级管理员,这些分级管理员可以对当前组织机构及其下属组织机构的人、角色、组织机构进行权限管理,但不能对其他的组织机构及其人或角色进行管理,这可以减轻超级管理员的工作负担,同时由于分级管理员是该组织机构里的某个成员,那么分级管理员肯定对具体的业务权限有清晰的认识和了解,知道如何设置这个权限,从而能够有效解决超级管理员的较多麻烦事务。
51.本技术为“鉴权模式多样”、“鉴权算法灵活”、“采用分级管理员分担超级管理员部分工作”、“ui+api联动授权模式”在前后端分离部署模式下的用户鉴权体系,主要可以面向
云应用软件开发领域,通过对用户及其相关基本信息(例如用户所在组织机构、用户的基本角色等)的统一管理,为用户鉴权提供准确的、完整的基础数据,能够解决用户鉴权过程中鉴权不灵活、鉴权效率低、故障率高、操作人员工作繁琐、用户满意度不高等问题。具体来说,本技术具有以下特点:鉴权模式多样性与灵活的鉴权算法高度集成,可以满足大多数场景下的鉴权复杂度需求;分级管理员的设立可以大大降低超级管理员的工作量和复杂度,解决超级管理员还需要去了解具体的业务场景或设置的难题,及时响应客户需求变化,提高客户满意度;将ui资源和api资源联合在一起形成一个联动资源,并且只有ui+api这种联动资源才能够较好的体现业务的关联性、具体性,不是“一刀切”地对资源进行授权,从而保证了授权的准确性,降低了业务代码中对权限认定的代码复杂度,让开发人员更关心业务开发,而不是需要在业务代码里还要编写部分权限判定的代码。本技术中具有多层级权限判定,用户在展开ui的时候就先做了权限判定,设置了ui资源的相关特性(可读性、可见性和可执行性),同时还设置了ui+api联动的权限性,从而保证了具体业务具体授权的方式;通过多种授权模式的应用,保证了最终用户对授权的多样性需求,而不是单一、死板地进行授权,使得业务系统可以多样性的满足用户需求,降低了业务系统本身的复杂度,提高了系统实施和运维效率;通过自定义的灵活鉴权算法,保证了最终用户对授权的灵活性需求,使得业务系统可以灵活便捷地响应用户需求变更,降低了业务系统本身的复杂度,提高了系统实施和运维效率;通过分级授权功能,解决了超级管理员还需要去了解具体的业务场景或设置的难题,降低了超级管理员的工作量和复杂度,及时了响应客户需求变化,提高客户满意度。
52.本发明实施例还提供了一种联动授权装置,如图5所示,可以包括:
53.ui鉴权模块11,用于:在为当前用户展现当前ui时,基于当前用户在当前ui的权限,对当前ui上的ui资源进行相应的设置,并在设置完成后对当前ui进行展现;
54.api鉴权模块12,用于:在当前用户进行当前ui上任意ui资源对应的业务操作时,确定该任意ui资源对应的业务操作为当前业务操作,并判断当前用户是否具有进行当前业务操作的权限,如果是,则调用业务api完成当前业务操作,如果否,则拒绝调用业务api完成当前业务操作。
55.本发明实施例提供的一种联动授权装置,api鉴权模块可以包括:
56.api鉴权单元,用于:确定当前用户的各项用户信息中未被选作过当前信息的用户信息为候选信息,从候选信息中选择优先级最高的用户信息作为当前信息,基于当前信息判断当前用户是否具有进行当前业务操作的权限,如果能够得到判断的结果,则确定完成判断当前用户是否具有进行当前业务操作的权限的步骤,否则,返回执行确定当前用户的各项用户信息中未被选做过当前信息的用户信息为候选信息的步骤,直至当前用户的各项用户信息均被选作过当前信息为止;其中,用户信息包括当前用户的个人、角色及组织机构的信息。
57.本发明实施例提供的一种联动授权装置,api鉴权单元可以包括:
58.api鉴权子单元,用于:如果当前用户具有多项当前信息,则基于当前信息按照权限最大原则或者权限最小原则判断当前用户是否具有进行当前业务操作的权限;其中,权限最大原则为只要任意当前信息表示当前用户具有进行当前业务操作的权限、则确定当前用户具有进行当前业务操作的权限,权限最小原则为只要任意当前信息表示当前用户不具
有进行当前业务操作的权限、则确定当前用户不具有进行当前业务操作的权限。
59.本发明实施例提供的一种联动授权装置,还可以包括:
60.管控模块,用于:接收任意分级管理员针对相应组织机构的个人、角色及组织机构进行的权限管控信息,并基于权限设置信息对相应组织机构的个人、角色及组织机构进行相应的权限管控。
61.本发明实施例还提供了一种联动授权设备,可以包括:
62.存储器,用于存储计算机程序;
63.处理器,用于执行计算机程序时实现如上任一项联动授权方法的步骤。
64.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可以实现如上任一项联动授权方法的步骤。
65.需要说明的是,本发明实施例提供的一种联动授权装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种联动授权方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
66.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。