一种基于鉴权网关的权限管理方法及系统转让专利

申请号 : CN202310095389.1

文献号 : CN115801472B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖坤胡戎韩文杰耿宇杰

申请人 : 武汉市幸运坐标信息技术有限公司

摘要 :

本申请涉及软件技术领域,尤其是涉及一种基于微服务网关鉴权的权限管理方法及系统,包括接收客户端发送的认证请求;基于微服务网关的鉴权单元进行所述认证请求的检测;响应于认证请求的检测通过,由鉴权单元将所述客户端的登录状态同步至关联的多个微服务应用;接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;记录访问请求行为,并对所述请求行为进行合法性判断,对非法行为进行警报并终止。本申请将鉴权服务集成在微服务网关中,降低了微服务应用开发和升级的复杂性,并能够对操作请求行为进行风险防控。

权利要求 :

1.一种基于微服务网关鉴权的权限管理方法,其特征在于,包括:接收客户端发送的认证请求;

基于微服务网关的鉴权单元进行所述认证请求的检测;

响应于所述认证请求的检测通过,由所述鉴权单元将所述客户端的登录状态同步至关联的多个微服务应用;

接收所述客户端发送的业务接口请求,所述业务接口请求用于请求对第一微服务应用执行对应操作;

基于所述鉴权单元判断所述业务接口请求的访问权限,响应于所述访问权限通过,允许对所述第一微服务应用的访问;

记录访问请求行为,基于所述鉴权单元对所述访问请求行为进行合法性判断,对非法行为进行警报并终止;

所述记录访问请求行为,基于所述鉴权单元对所述访问请求行为进行合法性判断,对非法行为进行警报并终止包括:记录所述访问请求行为数据,所述访问请求行为数据包括预设敏感数据的请求访问数据和操作执行数据;

将所述访问请求行为数据以透传模式传输至所述鉴权单元;

基于操作风险模型判定所述访问请求行为是否符合预设的操作行为规范,若不符合,则将所述访问请求行为判定为非法行为;

当所述访问请求行为判定为非法行为时,终止所述非法行为并对客户端启动认证模式,发送预警信息至控制终端;

所述基于操作风险模型判定所述访问请求行为是否符合预设的操作行为规范包括:根据访问请求行为数据确定访问请求风险系数;

判断是否超过预设的第一风险系数阈值;

若超过所述第一风险系数阈值,则判断新的访问请求行为是否安全;

当新的访问请求行为存在风险,对新的访问请求行为进行风险警告;

判断所述访问请求风险系数是否超过预设的第二风险系数阈值,其中,所述第二风险系数阈值大于所述第一风险系数阈值;

若超过所述第二风险系数阈值,则判定所述访问请求行为不符合预设的操作行为规范;

其中,所述访问请求风险系数的计算公式为:

EP=(A×KA+B×KB+C×KC)×wEP表示访问请求风险系数,A表示敏感数据的访问时长,KA表示数据的敏感系数,B表示敏感数据的访问次数,KB表示访问次数对应的敏感系数,C表示对敏感数据的操作次数,KC表示对敏感数据进行操作的敏感系数,w表示访问者的级别系数;

所述基于所述鉴权单元判断所述业务接口请求的访问权限包括:基于所述鉴权单元识别所述业务接口请求的访问目标;

将用户权限数据库中的权限控制表传输至所述鉴权单元;

基于权限控制表检验所述业务接口请求是否具有对应的业务权限;

当所述业务接口请求具有对应业务权限时,基于所述业务接口请求数据判断所述客户端的IP地址是否为所述客户端的记录登录地址;

当所述IP地址为记录登录地址时,判断所述业务接口请求的类型;

当所述业务接口请求为前端请求时,基于所述微服务网关将所述业务接口请求发送至权限表接口;

当所述业务接口请求为后端请求时,基于所述微服务网关将所述业务接口请求反向代理至目标微服务应用的后端接口;

当所述IP地址为非记录登录地址时,则退回所述业务接口请求并进行风险登录验证;

所述基于权限控制表检验所述业务接口请求是否具有对应的业务权限包括:通过第三方平台接口获取企业数据信息,所述企业数据信息包括企业员工信息、企业架构信息和权限信息;

根据所述企业数据信息生成权限控制表;

根据所述权限控制表判断所述业务接口请求是否具有对应的业务权限;

当所述业务接口请求是否具有对应的业务权限不具备对应业务接口请求时,执行所述权限控制表更新操作并再次进行所述业务接口请求的权限判定。

2.根据权利要求1所述的权限管理方法,其特征在于,所述响应于登录请求的检测通过,由所述鉴权单元将所述客户端的登录状态同步至关联的多个微服务应用包括:接收被同步的认证定义,所述认证定义包括认证令牌响应体解析模式和认证令牌校验定义;

基于所述鉴权单元执行所述登录请求的认证逻辑,并基于所述认证令牌响应体解析模式从所述鉴权单元返回的响应体中解析得到认证令牌;

基于所述认证令牌校验定义对所述认证令牌进行解析得到认证令牌相关信息,并将所述认证令牌相关信息存储至鉴权网关的分布式缓冲中;

将所述认证令牌和响应认证请求返回至所述客户端用户;

其中,所述认证令牌包括所述多个微服务应用的登录认证信息。

3.根据权利要求2所述的权限管理方法,其特征在于,所述基于所述鉴权单元判断所述业务接口请求的访问权限,响应于所述访问权限通过,允许对所述第一微服务应用的访问包括:基于所述令牌校验定义从业务接口请求中获取目标认证令牌,并解析所述目标认证令牌;

以所述目标认证令牌的解析结果查询所述分布式缓冲中是否包含所述业务接口请求对所述第一微服务应用的访问权限;

并在所述分布式缓冲中查询到所述目标认证令牌相关信息的情况下,在所述业务接口请求中增加所述解析结果中的业务信息,并将增加业务信息后的业务接口请求发送给所述第一微服务应用。

4.根据权利要求1所述的权限管理方法,其特征在于,所述认证模式包括动态口令认证、指纹认证和图像识别认证中的至少一者。

5.根据权利要求1所述的权限管理方法,其特征在于,所述接收客户端发送的认证请求前包括:接收第三方的平台的接口请求;

基于所述鉴权单元验证所述接口请求的相关权限;

当所述接口请求的相关权限验证通过时,将所述接口请求发送至目标微服务应用中,并基于所述目标微服务应用对所述接口请求进行签名验证,以检验所述接口请求的真实性;

当所述签名检验通过时,通过所述接口请求。

6.一种基于微服务网关鉴权的权限管理系统,其特征在于,包括:第一接收模块,用于接收客户端发送的认证请求;

检测模块,用于基于微服务网关的鉴权单元进行所述认证请求的检测;

处理模块,用于响应于所述认证请求的检测通过,由所述鉴权单元将所述客户端的登录状态同步至关联的多个微服务应用;

第二接收模块,用于接收所述客户端发送的业务接口请求,所述业务接口请求用于请求对第一微服务应用执行对应操作;

判定模块,用于基于所述鉴权单元判断所述业务接口请求的访问权限,响应于所述访问权限通过,允许对所述第一微服务应用的访问;

风险判定模块,用于记录访问请求行为,基于所述鉴权单元对所述访问请求行为进行合法性判断,对非法行为进行警报并终止;

所述记录访问请求行为,基于所述鉴权单元对所述访问请求行为进行合法性判断,对非法行为进行警报并终止包括:记录所述访问请求行为数据,所述访问请求行为数据包括预设敏感数据的请求访问数据和操作执行数据;

将所述访问请求行为数据以透传模式传输至所述鉴权单元;

基于操作风险模型判定所述访问请求行为是否符合预设的操作行为规范,若不符合,则将所述访问请求行为判定为非法行为;

当所述访问请求行为判定为非法行为时,终止所述非法行为并对客户端启动认证模式,发送预警信息至控制终端;

所述基于操作风险模型判定所述访问请求行为是否符合预设的操作行为规范包括:根据访问请求行为数据确定访问请求风险系数;

判断是否超过预设的第一风险系数阈值;

若超过所述第一风险系数阈值,则判断新的访问请求行为是否安全;

当新的访问请求行为存在风险,对新的访问请求行为进行风险警告;

判断所述访问请求风险系数是否超过预设的第二风险系数阈值,其中,所述第二风险系数阈值大于所述第一风险系数阈值;

若超过所述第二风险系数阈值,则判定所述访问请求行为不符合预设的操作行为规范;

其中,所述访问请求风险系数的计算公式为:

EP=(A×KA+B×KB+C×KC)×wEP表示访问请求风险系数,A表示敏感数据的访问时长,KA表示数据的敏感系数,B表示敏感数据的访问次数,KB表示访问次数对应的敏感系数,C表示对敏感数据的操作次数,KC表示对敏感数据进行操作的敏感系数,w表示访问者的级别系数;

所述基于所述鉴权单元判断所述业务接口请求的访问权限包括:基于所述鉴权单元识别所述业务接口请求的访问目标;

将用户权限数据库中的权限控制表传输至所述鉴权单元;

基于权限控制表检验所述业务接口请求是否具有对应的业务权限;

当所述业务接口请求具有对应业务权限时,基于所述业务接口请求数据判断所述客户端的IP地址是否为所述客户端的记录登录地址;

当所述IP地址为记录登录地址时,判断所述业务接口请求的类型;

当所述业务接口请求为前端请求时,基于所述微服务网关将所述业务接口请求发送至权限表接口;

当所述业务接口请求为后端请求时,基于所述微服务网关将所述业务接口请求反向代理至目标微服务应用的后端接口;

当所述IP地址为非记录登录地址时,则退回所述业务接口请求并进行风险登录验证;

所述基于权限控制表检验所述业务接口请求是否具有对应的业务权限包括:通过第三方平台接口获取企业数据信息,所述企业数据信息包括企业员工信息、企业架构信息和权限信息;

根据所述企业数据信息生成权限控制表;

根据所述权限控制表判断所述业务接口请求是否具有对应的业务权限;

当所述业务接口请求是否具有对应的业务权限不具备对应业务接口请求时,执行所述权限控制表更新操作并再次进行所述业务接口请求的权限判定。

说明书 :

一种基于鉴权网关的权限管理方法及系统

技术领域

[0001] 本申请涉及软件技术领域,尤其是涉及一种基于微服务网关鉴权的权限管理方法及系统。

背景技术

[0002] 传统的Web系统大部分采用单体架构(MonolithicArchitecture,简称MA),将所有功能模块集中在一个系统。系统集中发布,部署后运营在同一进程,系统的需求更改需要通过统一更改统一部署来实现。传统web系统发展一定程度会变得相对“臃肿”,在系统开发、部署等方面显得有些僵硬,需要进行及时“止损”,同时考虑到不影响系统的正常运行,需要在原Web系统上进行系统框架扩展。
[0003] 微服务架构(MicroServiceArchitecture,简称MSA)是软件系统中一种新的结构风格。在微服务架构中,所有的应用模块不再部署在单体系统内,而是拆分为多个细颗粒度的微服务组件,每个微服务都能独立设计、开发和部署,在灵活性方面有很大优势。
[0004] 但是当微服务应用都拥有各自的访问逻辑时,用户登录不能一次获取所有系统的访问权限,影响了用户体验和访问效率,所以要对微服务应用进行统一认证。
[0005] 目前统一认证的CAS方案、Kisso、SpringsecurityOAuth2SSO方案均无法将认证服务和鉴权服务集成在微服务网关中。因此如何实现多个微服务应用的统一认证服务和鉴权服务是技术人员需要解决的问题。

发明内容

[0006] 为了改善现有系统无法实现多个微服务应用的统一认证,并将鉴权服务集成在微服务网关中的问题,本申请提供一种基于微服务网关鉴权的权限管理方法及系统。
[0007] 根据本申请的一个方面,提供了一种基于微服务网关鉴权的权限管理方法,包括:
[0008] 接收客户端发送的认证请求;
[0009] 基于微服务网关的鉴权单元进行认证请求的检测;
[0010] 响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用;
[0011] 接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;
[0012] 基于鉴权单元判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;
[0013] 记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止。
[0014] 优选的,响应于登录请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用包括:
[0015] 接收被同步的认证定义,认证定义包括认证令牌响应体解析模式和认证令牌校验定义;
[0016] 基于鉴权单元执行登录请求的认证逻辑,并基于认证令牌响应体解析模式从鉴权单元返回的响应体中解析得到认证令牌;
[0017] 基于认证令牌校验定义对认证令牌进行解析得到认证令牌相关信息,并将认证令牌相关信息存储至鉴权网关的分布式缓冲中;
[0018] 将认证令牌和响应认证请求返回至客户端用户;
[0019] 其中,认证令牌包括多个微服务应用的登录认证信息。
[0020] 优选的,基于鉴权单元判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问包括:
[0021] 基于令牌校验定义从业务接口请求中获取目标认证令牌,并解析目标认证令牌;
[0022] 以目标认证令牌的解析结果查询分布式缓冲中是否包含业务接口请求对第一微服务应用的访问权限;
[0023] 并在分布式缓冲中查询到目标认证令牌相关信息的情况下,在业务接口请求中增加解析结果中的业务信息,并将增加业务信息后的业务接口请求发送给第一微服务应用。
[0024] 优选的,记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止包括:
[0025] 记录访问请求行为数据,访问请求数据包括预设敏感数据的请求访问数据和操作执行数据;
[0026] 将访问请求行为数据以透传模式传输至鉴权单元;
[0027] 基于操作风险模型判定访问请求行为是否符合预设的操作行为规范,若不符合,则将访问请求判定为非法行为;
[0028] 当访问请求行为判定为非法行为时,终止非法行为并对客户端启动认证模式,发送预警信息至控制终端。
[0029] 优选的,基于操作风险模型判定访问请求行为是否符合预设的操作行为规范包括:
[0030] 根据访问请求行为数据确定访问请求风险系数;
[0031] 判断是否超过预设的第一风险系数阈值;
[0032] 若超过第一风险系数阈值,则判断新的访问请求行为是否安全;
[0033] 当新的访问请求行为存在风险,对新的访问请求行为进行风险警告;
[0034] 判断访问请求风险系数是否超过预设的第二风险系数阈值,其中,第二风险系数阈值大于第一风险系数阈值;
[0035] 若超过第二风险系数阈值,则判定访问请求行为不符合预设的操作行为规范;
[0036] 其中,访问请求风险系数的计算公式为:
[0037]
[0038] 表示访问请求风险系数,A表示敏感数据的访问时长, 表示数据的敏感系数,B表示敏感数据的访问次数, 表示访问次数对应的敏感系数,C表示对敏感数据的操作次数, 表示对敏感数据进行操作的敏感系数, 表示访问者的级别系数。
[0039] 优选的,认证模式包括动态口令认证、指纹认证和图像识别认证中的至少一者。
[0040] 优选的,基于鉴权单元判断业务接口请求的访问权限包括:
[0041] 基于鉴权单元识别业务接口请求的访问目标;
[0042] 将用户权限数据库中的权限控制表传输至鉴权单元;
[0043] 基于权限控制表检验业务接口请求是否具有对应的业务权限;
[0044] 当业务接口请求具有对应业务权限时,基于业务接口请求数据判断客户端的IP地址是否为客户端的记录登录地址;
[0045] 当IP地址为记录登录地址时,判断业务接口请求的类型;
[0046] 当业务接口请求为前端请求时,基于微服务网关将业务接口请求发送至权限表接口;
[0047] 当业务接口请求为后端请求时,基于微服务网关将业务接口请求反向代理至目标微服务应用的后端接口;
[0048] 当IP地址为非记录登录地址时,则退回业务接口请求并进行风险登录验证。
[0049] 优选的,基于权限控制表检验业务接口请求是否具有对应的业务权限包括:
[0050] 通过第三方平台接口获取企业数据信息,企业数据信息包括企业员工信息、企业架构信息和权限信息;
[0051] 根据企业数据信息生成权限控制表;
[0052] 根据权限控制表判断业务接口请求是否具有对应的业务权限;
[0053] 当业务接口请求是否具有对应的业务权限不具备对应业务接口请求时,执行权限控制表更新操作并再次进行业务接口请求的权限判定。
[0054] 优选的,接收客户端发送的认证请求前包括:
[0055] 接收第三方的平台的接口请求;
[0056] 基于鉴权单元验证接口请求的相关权限;
[0057] 当接口请求的相关权限验证通过时,将接口请求发送至目标微服务应用中,并基于目标微服务应用对接口请求进行签名验证,以检验接口请求的真实性;
[0058] 当签名检验通过时,通过接口请求。
[0059] 根据本申请的另一个方面,还提供了一种基于微服务网关鉴权的权限管理系统,包括:
[0060] 第一接收模块,用于接收客户端发送的认证请求;
[0061] 检测模块,用于基于微服务网关的鉴权单元进行认证请求的检测;
[0062] 处理模块,用于响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用;
[0063] 第二接收模块,用于接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;
[0064] 判定模块,用于基于鉴权单元判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;
[0065] 风险判定模块,用于记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止。
[0066] 综上,本申请包括以下有益技术效果:
[0067] 接收客户端发送的认证请求;基于微服务网关的鉴权单元进行认证请求的检测;响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用;接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;记录访问请求行为,并对请求行为进行合法性判断,对非法行为进行警报并终止。本申请通过在将鉴权服务集成在微服务网关中,降低了微服务应用开发和升级的复杂性,并能够对操作请求行为进行风险防控。

附图说明

[0068] 图1示出了本申请实施例中基于微服务网关鉴权的权限管理方法的流程示意图。
[0069] 图2示出了运维人员配置认证定义的流程示意图。
[0070] 图3示出了本申请实施例中客户端用户请求认证微服务应用权限的流程示意图。
[0071] 图4示出了本申请实施例中客户端用户请求访问微服务应用业务接口的流程示意图。
[0072] 图5示出了本申请实施例中对访问请求行为进行合法性判断的流程示意图。
[0073] 图6示出了本申请实施例中判定访问请求行为是否符合预设的操作行为规范的流程示意图。
[0074] 图7示出了本申请实施例中判断业务接口请求的访问权限的流程示意图。
[0075] 图8示出了本申请实施例中一种基于微服务网关鉴权的权限管理系统的结构示意图。
[0076] 图9示出了本申请实施例中另一种基于微服务网关鉴权的权限管理系统的结构示意图。

具体实施方式

[0077] 以下使本申请的目的、技术方案及优点更加清楚明白,以下通过附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
[0078] 本申请实施例公开一种基于微服务网关鉴权的权限管理方法。
[0079] 在微服务分布式架构中,微服务网关是一种架构模式,它是将一些服务共有的功能整合在一起,独立部署为单独的一层,用来解决一些服务治理的问题。入口网关作为经常被使用的网关种类,被部署在客户端与应用服务器之间,主要有几个方面的作用:
[0080] 1.提供给客户端一个统一的接入地址,服务网关可以将用户的请求动态路由到不同的业务服务上,并且做到一些必要的协议转换工作,通过对客户端屏蔽这些服务的部署地址以及协议的细节,给客户端带来很大的便捷;
[0081] 2.可以基于微服务网关实现一些服务治理的策略,比如服务的熔断、降级、流量控制和分流等;
[0082] 3.实现黑白名单,比如针对设备ID、用户IP、用户ID等维度的黑白名单。
[0083] 参照图1,图1示出了本申请实施例中基于微服务网关鉴权的权限管理方法的流程示意图,该方法包括:
[0084] S102,接收客户端发送的认证请求。
[0085] 通常,在客户端用户需要访问公司的业务系统时,需要由客户端向服务端发送认证请求信息,在认证请求信息中包括对资源的请求方法和用户识别信息,以方便鉴权单元进行权限检验。其中,认证请求包括HTTP请求,用户识别信息包括用户的账号密码数据。
[0086]  S104,基于微服务网关的鉴权单元进行认证请求的检测。
[0087] 其中,鉴权单元通过提取数据库中的账号密码数据信息对认证请求进行初始的认证信息检测,若查询到对应的账号密码信息则认证请求的检测通过,否则认证请求的认证不通过,这一步相当于常见的应用平台的登录认证。
[0088]  S106,响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用。
[0089] 其中,微服务应用包括财务应用、客户关系管理应用、网络营销部视觉中心应用等其它能够执行相关业务功能的应用。
[0090] 在一种实施例中,响应于登录请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用包括:
[0091] 接收被同步的认证定义,认证定义包括认证令牌响应体解析模式和认证令牌校验定义;
[0092] 基于鉴权单元执行登录请求的认证逻辑,并基于认证令牌响应体解析模式从鉴权单元返回的响应体中解析得到认证令牌;
[0093] 基于认证令牌校验定义对认证令牌进行解析得到认证令牌相关信息,并将认证令牌相关信息存储至鉴权网关的分布式缓冲中;
[0094] 将认证令牌和响应认证请求返回至客户端用户;
[0095] 其中,认证令牌包括多个微服务应用的登录认证信息。
[0096] 进一步的,本实施例可以在鉴权单元配置认证管理服务,该认证管理服务用于在运维阶段供运维人员配置认证定义,该认证定义包括认证令牌响应体解析模式和认证令牌校验定义。在微服务网关启动或者认证定义被更新时,鉴权单元会实现认证定义的同步,供微服务网关在处理客户端认证时使用。
[0097] 参照图2,图2示出了运维人员配置认证定义的流程示意图。在运维阶段,运维人员访问鉴权单元前端页面,点击新建认证定义按钮,首先填写认证令牌响应体解析模式,然后填写认证令牌校验定义,点击保存按钮,以此调用后端服务,即鉴权单元管理服务。鉴权单元管理服务将保存该新建定义并将该认证定义在微服务网关后端进行同步,其中,同步方式分为两种:微服务网关启动时加载、微服务网关运行时更新。
[0098] 参照图3,图3示出了本申请实施例中客户端用户请求认证微服务应用权限的流程示意图。
[0099] 基于鉴权单元执行请求认证逻辑,并基于认证令牌响应体解析模式从鉴权单元返回的响应体中解析得到认证令牌。
[0100] 基于认证令牌校验定义对认证令牌进行解析得到认证令牌相关信息,并将认证令牌相关信息存储至分布式缓冲中;
[0101] 将认证令牌和响应认证请求返回至客户端用户。
[0102] 本公开实施例中,微服务网关一方面基于鉴权单元处理来自客户端的认证请求,根据预设定义执行认证逻辑,生成令牌并通过响应返回;另一方面,将认证指令的相关信息存储在分布式缓冲中,以对客户端对微服务应用的访问请求进验证。
[0103] 其中,微服务网关在接收到客户端用户的认证请求后,根据本地同步的认证定义判断当前请求是否为认证请求,如果是认证请求,则通过鉴权单元执行认证逻辑,生成认证令牌并包含在响应体中,之后,微服务网关根据认证定义中的认证令牌响应体解析模式解析响应体中的认证令牌,然后,微服务网关根据认证定义中的认证令牌校验定义对令牌本身进行解析,在分布式缓存中新建或更新认证令牌相关信息,并向客户端用户返回认证令牌和相应认证请求。
[0104] 可以理解的是,本实施例中分布式缓存用于存放认证令牌相关信息,这些信息是由微服务网关在客户端认证、登出操作时更新的,供校验客户端认证令牌有效时使用。
[0105] 图4示出了本申请实施例中客户端用户请求访问微服务应用业务接口的流程示意图。
[0106] 其中,在通过微服务网关请求访问受认证保护的微服务应用时,需要在请求中携带在上述步骤中获得的认证令牌(即目标认证令牌)。微服务网关在接收到请求会判断当前请求是否为认证请求,如果否,则当前请求为业务接口请求,微服务网关根据本地同步的认证定义中的认证令牌校验定义从业务接口请求中获取目标认证令牌,解析目标认证令牌(即图4中,根据配置,从请求中获取认证令牌,解析认证令牌),查询分布式缓存以查询目标认证令牌相关信息,判断是否查询到目标认证令牌相关信息(即图4中令牌缓存数据存在)。如果查询到,客户端用户登录成功。
[0107] 需要说明的是,微服务网关如果判定当前请求为认证请求,则流程见图3,这里不再赘述。
[0108]  S108,接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作。
[0109] 其中,客户端用户发送的业务接口请求用于对微服务应用进行具体业务操作,例如获取微服务应用A的客户运营数据,获取微服务应用B的产品数据。
[0110] 这里的第一微服务应用不是用于排序,仅用于代指一种具体的微服务应用。
[0111]  S110,基于鉴权单元判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问。
[0112] 通常的,业务接口请求中包括目标资源的请求方法、目标资源的标识符以及使用的协议。这里通过鉴权单元执行识别逻辑以确定与业务接口请求相对应的访问目标,例如:访问目标为微服务应用A、微服务应用B和微服务应用C中的至少一者。
[0113]  S112,记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止。
[0114] 通常的,在进行认证请求和业务接口请求的检测和识别后,客户端用户便可对系统进行相关的操作,但是出于系统安全性考虑,之前检验仅能对访问请求进行权限识别,不能对访问请求进行监控,为了防止由于账户被盗导致系统数据被篡改和盗窃,本申请对客户端用户的访问请求行为进行进一步的风险防控。
[0115] 图5示出了本申请实施例中对访问请求行为进行合法性判断的流程示意图。
[0116] 进一步的,如图5所示,记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止包括:
[0117] S202,记录访问请求行为数据,访问请求数据包括预设敏感数据的请求访问数据和操作执行数据。
[0118] 其中,本实施例对系统中的敏感数据进行集中标识,当客户端对敏感数据进行访问和操作时,对相关的访问请求行为进行跟踪记录并生成访问请求数据用于对访问请求行为进行识别和判定。
[0119]  S204,将访问请求行为数据以透传模式传输至鉴权单元。
[0120]  S206,基于操作风险模型判定访问请求行为是否符合预设的操作行为规范,若不符合,则将访问请求判定为非法行为。
[0121] 基于预设在鉴权单元里的风险模型对访问请求数据进行风险识别,有利于提升系统的风险防控能力。
[0122]  S208,当访问请求行为判定为非法行为时,终止非法行为并对客户端启动认证模式,发送预警信息至控制终端。
[0123] 在访问请求行为判定为非法行为时,触发系统的认证模式,以再次对客户端用户进行身份识别,以避免系统敏感数据出现被篡改和盗取的风险,并发送预警信息至控制终端,以供工作人员及时对访问请求行为进行人工判断,采取对应的措施。
[0124] 进一步的,这里的认证模式可以为指纹识别认证、动态口令认证、图像识别认证和文字识别认证中的一者。
[0125] 图6示出了本申请实施例中判定访问请求行为是否符合预设的操作行为规范的流程示意图。
[0126] 如图6所示,在一种实施例中,基于操作风险模型判定访问请求行为是否符合预设的操作行为规范包括:
[0127] S302,根据访问请求行为数据确定访问请求风险系数;
[0128] S304,判断是否超过预设的第一风险系数阈值;
[0129] S306,若超过第一风险系数阈值,则判断新的访问请求行为是否安全;
[0130] S308,当新的访问请求行为存在风险,对新的访问请求行为进行风险警告;
[0131] S310,判断访问请求风险系数是否超过预设的第二风险系数阈值,第二风险系数阈值大于第一风险系数阈值;
[0132] S312,若超过第一风险系数阈值,则判定访问请求行为不符合预设的操作行为规范;
[0133] 其中,访问请求风险系数的计算公式为:
[0134]
[0135] 表示访问请求风险系数,A表示敏感数据的访问时长, 表示数据的敏感系数,B表示敏感数据的访问次数, 表示访问次数对应的敏感系数,C表示对敏感数据的操作次数, 表示对敏感数据进行操作的敏感系数, 表示访问者的级别系数。
[0136] 其中,访问请求行为数据包括但不限于对于敏感数据的访问时长、目标访问数据的敏感级别、目标敏感数据(即被访问的敏感数据)的访问次数、目标敏感数据的操作次数(操作类型包括但不限于对数据的修改、删减和增加)。
[0137] 通过预设的风险判定规则对敏感数据的范围和等级进行识别,并基于不同等级的敏感数据和操作行为映射生成风险系数表。例如:数据库中包括数据有:
[0138] 姓名:张三;
[0139] 年龄:36;
[0140] 职位:xxx公司生产部经理;
[0141] 手机号:17586425963;
[0142] 风险模型将敏感数据分为一级、二级和三级,预设姓名和年龄为一级敏感数据,职位为二级敏感数据,手机号为三级敏感数据,其中,一级敏感数据对应的敏感系数为0.4,二级敏感数据对应的敏感系数为0.5,三级敏感数据对应为0.6,例如:用户对职位数据进行了累计1分钟的访问,则对应的A为1, 为0.5;用户对敏感数据访问次数为3次,其中,预设对敏感数据进行0 3次访问对应的敏感系数 为0.1,对敏感数据进行4 5次访问对应的敏~ ~感系数为0.15,对敏感数据进行5次以上访问对应的敏感系数为0.2,则对应的B为3, 为
0.1,用户对敏感的操作次数为0次,预设对敏感数据进行0 1次操作对应的敏感系数 为~
0.2,对敏感数据进行2次以上操作对应的敏感系数为0.15,则对应的C为0, 为0.2,对访问者账户从高到底依次设置为a级账户、b级账户和c级账户,a级账户对应的级别系数为
0.2,b级账户对应的级别系数为0.3,c级账户对应的级别系数为0.4,该用户账户等级为a级账户,则对应的 为0.2,综上,该用户对应的访问请求风险系数为 =(1x0.5+3x0.1+
0x0.2)x0.2=0.16。
[0143] 在一种实施例中,预设的第一风险系数阈值为0.17,第二风险阈值为0.2,例如:当该用户的访问请求风险系数超过0.17但是不超过0.2时,对新的访问请求行为进行风险判断,若存在风险则对新的访问请求行为进行风险警告,当该用户的访问请求风险系数超过0.2,则判定访问请求行为不符合预设的操作行为规范。
[0144] 通过风险模型判定访问请求行为是否符合预设的操作行为规范能够对客户端用户的访问请求行为进行量化识别,并能够对客户端的访问请求行为进行风险提醒,避免了对客户端风险行为的误判,提升了系统的风险防控能力。
[0145] 进一步的,认证模式包括动态口令认证、指纹认证和图像识别认证中的至少一者。
[0146] 图7示出了本申请实施例中判断业务接口请求的访问权限的流程示意图。
[0147] 如图7所示,进一步的,基于鉴权单元判断业务接口请求的访问权限包括:
[0148] S402,基于鉴权单元识别业务接口请求的访问目标;
[0149] S404,将用户权限数据库中的权限控制表传输至鉴权单元。
[0150] 在一种实施例中,用户权限数据库通过与公司拥有合同业务的第三方平台(如钉钉、企业微信等)获取所需的企业数据信息资源包,常见的企业数据信息包括但不限于企业员工信息、企业架构信息和与职位对应的权限信息。
[0151] 通过将用户权限数据库与第三方平台的数据资源相关联,使得用户权限库能够实现对入职人员和离职人员的自动维护,且通过按照预设规则对新入职员工分配对应权限,能够减轻相关工作人员的工作量并提升企业的办公效率。
[0152] 其中,通过将用户权限数据库中的数据信息传输至微服务网关,以对微服务网关进行鉴权操作提供了数据支持。
[0153]  S406,基于权限控制表检验业务接口请求是否具有对应的业务权限;
[0154] S408,当业务接口请求具有对应业务权限时,基于业务接口请求数据判断客户端的IP地址是否为客户端的记录登录地址。
[0155] 本实施例通过对业务接口请求数据的IP地址进行识别和判定,有利于提高系统风险防控能力。
[0156]  S410,当IP地址为记录登录地址时,判断业务接口请求的类型。
[0157] 其中,记录登录地址指的是之前使用并记录缓存过的IP登录地址,以避免客户端使用新的IP地址首次登录出现风险登录。
[0158]  S412,当业务接口请求为前端请求时,基于微服务网关将业务接口请求发送至权限表接口;
[0159] S414,当业务接口请求为后端请求时,基于微服务网关将业务接口请求反向代理至目标微服务应用的后端接口;
[0160] S416,当IP地址为非记录登录地址时,则退回业务接口请求并进行风险登录验证。
[0161] 在本实施例中,通过对客户业务权限和IP地址的双重识别,能够防止由于风险登录导致的系统数据泄露的风险,提高了系统的风险防控能力。
[0162] 在一种实施例中,风险登录验证包括但不限于动态口令认证、指纹认证中和图像识别认证中的至少一者。
[0163] 在一种实施例中,基于权限控制表检验业务接口请求是否具有对应的业务权限包括:
[0164] 通过第三方平台接口获取企业数据信息,企业数据信息包括企业员工信息、企业架构信息和权限信息;
[0165] 根据企业数据信息生成权限控制表;
[0166] 根据权限控制表判断业务接口请求是否具有对应的业务权限;
[0167] 当业务接口请求是否具有对应的业务权限不具备对应业务接口请求时,执行权限控制表更新操作并再次进行业务接口请求的权限判定。
[0168] 其中,当述业务接口请求不具备对应业务接口请求时,通过对权限控制表进行更新以防止由于权限控制表更新滞后导致的权限审核失败,有利于提高业务接口请求的权限审核效率。
[0169] 在一种实施例中,权限控制表基于RBAC的访问控制模型建立。
[0170]  通过将权限模块中的权限角色控制基于RBAC(Role‑Based Access Control)访问控制模型建立,每个微服务应用之间能够独立分配角色和权限,能够增加权限控制的灵活性。
[0171] 在RBAC访问控制模型的基础上,权限模块对于每个微服务应用建立业务资源,RBAC的授权时“业务资源&角色”的模式,形成用户与业务关联,用户与角色关联、角色与权限关联的组合模式,这样对于用户而言可以设定丰富的权限配置模式,进而增强权限控制的灵活性。
[0172] 在通用审批流中也可基于RBAC访问控制模型实现灵活的配置方式,能够实现对各个微服务应用中的审批单据进行状态统计,审批流可以进行随时调整,同类型的业务的审批流在不同的微服务应用可以进行单独配置。
[0173] 在一种实施例中,基于鉴权单元判断业务接口请求的访问权限后包括:
[0174] 当业务接口请求具有对应业务权限时,向客户端用户返回经目标微服务应用响应后的相应指令;
[0175] 当业务接口请求不具有对应业务权限时,抛弃业务接口请求并向客户端用户返回令牌无效指令。
[0176] 在一种实施例中,接收客户端发送的认证请求前包括:
[0177] 接收第三方的平台的接口请求;
[0178] 基于鉴权单元验证接口请求的相关权限;
[0179] 当接口请求的相关权限验证通过时,将接口请求发送至目标微服务应用中,并基于目标微服务应用对接口请求进行签名验证,以检验接口请求的真实性;
[0180] 当签名检验通过时,通过接口请求。
[0181] 通常的,在用户进行系统登录时,能够使用与系统相关联的第三方的平台(例如QQ和钉钉)进行登录,此时系统会收到来自第三方平台的OAuth回调(即接口请求),通过鉴权对接口请求判断接口请求是否在预设的白名单内,若在白名单内,则接口请求会被转发至目标微服务应用,并对接口请求进行签名验证,以检验接口请求的真实性,该方案能够确保系统的安全性。
[0182] 在一种实施例中,微服务应用之间通过内网进行数据交换和调用。
[0183] 其中,微服务应用之间通过内网连接,相互之间发送请求不需要受鉴权单元的监管,能够实现微服务应用之间的数据交换和调用。
[0184] 在一种实施例中,微服务应用之间访问设有共有的签名逻辑,以避免内部微服务应用的安全漏洞。
[0185] 参照图8,图8示出了本申请实施例中另一种基于微服务网关鉴权的权限管理系统的结构示意图。
[0186] 根据本申请的另一个方面,还提供了一种基于微服务网关鉴权的权限管理系统,包括:
[0187] 第一接收模块51,用于接收客户端发送的认证请求;
[0188] 检测模块52,用于基于微服务网关的鉴权单元进行认证请求的检测;
[0189] 处理模块53,用于响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用;
[0190] 第二接收模块54,用于接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;
[0191] 判定模块55,用于基于鉴权单元判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;
[0192] 风险判定模块56,用于记录访问请求行为,基于鉴权单元对访问请求行为进行合法性判断,对非法行为进行警报并终止。
[0193] 在一种实施例中,上述系统为基于企业私有云设计的权限管理系统。
[0194] 其中,通过将权限管理系统部署在企业自建的私有云(例如阿里云、华为云)上,实现用户统一登录、微服务应用共同权限管理,具有低耦合高内聚的特点,增加了内网系统集成的灵活性。
[0195] 基于微服务网关鉴权的权限管理系统能够通过鉴权网单元实现用户身份识别和鉴权,降低了微服务应用开发和升级的复杂性,并能够对操作请求行为进行风险防控,提高了系统的安全性。
[0196] 图9示出了本申请实施例中另一种基于微服务网关鉴权的权限管理系统的结构示意图。如图9所示;
[0197] 在一种实施例中,权限模块包括用户管理单元、角色权限单元、通用审批流单元和操作日志单元;
[0198] 用户管理单元包括:用户管理子单元、组织关系管理子单元和用户身份管理子单元;
[0199] 角色权限单元包括:角色权限配置子单元、业务资源子单元和权限字典子单元;
[0200] 通用审批流单元包括:审批流管理和审批统计。
[0201] 其中,用户管理单元用以实现对用户的身份和组织架构实现管理应用,角色权限单元用于将用户与角色进行关联,并对角色进行权限配置、业务资源对接和权限字典查询管理,通用审批流用于对角色的权限审批的流程进行管理和统计,操作日志用于储存用户的和系统的相关操作数据,以便用户进行查阅和审计。
[0202] 在一种实施例中,用户管理单元具有用户身份模拟功能,能够让开发人员切换不同的用户ID,使得开发人员以不同身份进入微服务应用模块,方便开发人员收到问题反馈后的定位和纠错。
[0203] 在一种实施例中,通过操作日志单元对用户身份模拟功能的使用进行记录和审计。
[0204] 权限模块能够为鉴权单元维护用户数据,进行用户组织架构管理、角色管理和权限管理,还能支持灵活的访问规则配置,每个微服务应用的待转发接口都会在权限系统中进行映射,形成权限控制表。另外,通过通用审批流单元能够为各个微服务应用提供统一的审批管理能力,在角色和业务资源的基础上进行审批流的控制,并且,各个微服务应用的所有访问请求都会在微服务网关转发时进行记录,能够为微服务应用提供操作日志审计的功能。
[0205] 在一种实施例中,权限模块的通用审批流单元能够以接口方式向微服务应用提供服务,包括多个微服务应用的微服务应用模块只需要调用通用审批流接口,就能实现单据审批、多步骤多层级审批等复杂的审批模式。
[0206] 综上,本申请包括以下有益技术效果:
[0207] 基于微服务网关的鉴权单元进行认证请求的检测;响应于认证请求的检测通过,由鉴权单元将客户端的登录状态同步至关联的多个微服务应用;接收客户端发送的业务接口请求,业务接口请求用于请求对第一微服务应用执行对应操作;判断业务接口请求的访问权限,响应于访问权限通过,允许对第一微服务应用的访问;记录访问请求行为,并对请求行为进行合法性判断,对非法行为进行警报并终止。通过本申请通过在将鉴权服务集成在微服务网关中,降低了微服务应用开发和升级的复杂性,并能够对操作请求行为进行风险防控,有利于提升系统的安全性。
[0208] 以上仅为本说明书一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的范围之内。