CN117675360A - 权限认证方法、系统、设备和存储介质 - Google Patents
权限认证方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN117675360A CN117675360A CN202311671301.2A CN202311671301A CN117675360A CN 117675360 A CN117675360 A CN 117675360A CN 202311671301 A CN202311671301 A CN 202311671301A CN 117675360 A CN117675360 A CN 117675360A
- Authority
- CN
- China
- Prior art keywords
- authentication
- access
- service
- module
- authority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013475 authorization Methods 0.000 claims abstract description 95
- 230000006870 function Effects 0.000 claims description 36
- 230000008859 change Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000012550 audit Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种权限认证方法、系统、设备和存储介质。所述方法包括:通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置;当资源和权限发生变更时,网关模块根据新的资源和权限数据构建网关路由规则;用户登录认证授权模块后获取令牌;用户携带令牌向网关模块发送访问请求;网关模块在鉴权成功后将访问请求转发至接入子系统的服务接口。本发明的上述方法通过统一的认证授权模块对接入至母系统的接入子系统进行资源和权限配置,提升统一权限认证管理的效率。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
Description
技术领域
本发明涉及计算机应用技术领域,更为具体而言,涉及一种权限认证方法、系统、设备和存储介质。
背景技术
目前的单体应用开发中,由于现在架构的微服务化特性,一种现有技术是:统一权限认证管理由每个系统自行处理,每个系统都有自己独立的身份验证和授权逻辑。然而,这导致了代码重复、权限管理混乱和安全漏洞,难以维护和管理。此外,由于传统的静态路由管理方法没有动态路由的能力,无法满足微服务下频繁的模块更新和部署需求,系统的可维护性和灵活性也受到了限制。
还有一种现有技术是:开发一个公共的权限认证系统,其他需要权限认证的系统都引入该公共的权限认证系统,这样,其他系统只需要在公共权限认证系统的基础上开发各自的权限认证功能,不再需要重复编写权限相关的代码。这种现有技术方案可以看作是一个权限认证的脚手架工具,它提供了一个统一的权限管理框架,简化了系统开发和维护的工作量。然而,每个系统的权限相关功能需要完全按照该权限系统的技术栈进行开发,这可能对系统的技术选型和开发方式造成限制。并且,不同系统的代码需要部署到同一服务内,导致系统变得臃肿,随着时间推移,维护起来可能会变得非常困难。此外,该现有技术方案没有动态路由的能力,无法满足微服务下模块频繁更新和部署的需求,限制了系统的可维护性和灵活性。
发明内容
为解决上述现有技术存在的问题或至少部分问题,本发明实施方式提供了一种权限认证方法、系统、设备和存储介质,通过统一的认证授权模块对接入至母系统的接入子系统进行资源和权限配置,提升统一权限认证管理的效率。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
根据本发明的第一方面,本发明实施方式提供了一种权限认证方法,其包括:通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置;当所述认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源和权限数据;所述网关模块根据所述新的资源和权限数据构建网关路由规则;当用户登录所述认证授权模块后,所述用户获取该认证授权模块颁发的令牌;当所述用户调用所述接入子系统的服务接口时,所述用户携带所述令牌向所述网关模块发送访问请求;所述网关模块根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。
根据本发明上述实施方式,通过将接入子系统接入至母系统,并通过统一的认证授权模块进行简单的资源和权限配置,即可使得接入子系统获得安全可靠的权限认证功能,不需要进行大量的代码开发,因此,接入子系统无需关注认证、授权等相关功能的实现,而只需关注业务开发。由此,降低了权限认证实现的复杂度,进而降低了时间成本和人力成本。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
在本发明的一些实施方式中,所述通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置包括:当所述接入子系统的接入服务接入至所述母系统时,通过所述认证授权模块添加所述接入服务的路由名称和服务URL地址。
在本发明的一些实施方式中,所述通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置包括:通过所述母系统的前端页面新建角色,并为所述角色分配所述接入子系统的服务功能的权限;通过所述母系统的前端页面新建用户,并将所述角色赋予用户。
在本发明的一些实施方式中,所述权限认证方法还包括:所述网关模块启动时,调用所述认证授权模块获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;所述网关模块通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息。
根据本发明上述实施方式,网关模块调用认证授权模块获取接入子系统的接入服务的服务ID以及对应的有权限的角色信息,从而得到最新的权限信息,为后续比对鉴权提供基础。
根据本发明的第二方面,本发明实施方式提供了一种权限认证系统,其包括认证授权模块和网关模块;其中,所述认证授权模块用于执行下述操作:对接入至所述权限认证系统的接入子系统进行资源和权限配置;当所述认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源和权限数据;当用户登录所述认证授权模块后向所述用户颁发令牌;其中,所述网关模块用于执行下述操作:根据所述新的资源和权限数据构建网关路由规则;当所述用户调用所述接入子系统的服务接口时,获取所述用户携带所述令牌发送的访问请求;根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。
根据本发明上述实施方式,通过将接入子系统接入至权限认证系统,并通过统一的认证授权模块进行简单的资源和权限配置,即可使得接入子系统获得安全可靠的权限认证功能,不需要进行大量的代码开发,因此,接入子系统无需关注认证、授权等相关功能的实现,而只需关注业务开发。由此,降低了权限认证实现的复杂度,进而降低了时间成本和人力成本。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
在本发明的一些实施方式中,所述对接入至所述权限认证系统的接入子系统进行资源和权限配置包括:当所述接入子系统的接入服务接入至所述权限认证系统时,添加所述接入服务的路由名称和服务URL地址。
在本发明的一些实施方式中,所述对接入至所述权限认证系统的接入子系统进行资源和权限配置包括:新建角色,并为所述角色分配所述接入子系统的服务功能的权限;新建用户,并将所述角色赋予用户。
在本发明的一些实施方式中,所述网关模块还用于执行下述操作:当所述网关模块启动时,调用所述认证授权模块获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息。
根据本发明上述实施方式,网关模块调用认证授权模块获取接入子系统的接入服务的服务ID以及对应的有权限的角色信息,从而得到最新的权限信息,为后续比对鉴权提供基础。
根据本发明的第三方面,本发明实施方式提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述权限认证方法所包含的步骤。
根据本发明的第四方面,本发明实施方式提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机可读指令,其中,所述一条或多条计算机可读指令被所述处理器执行时能够实现如上任意一种实施方式所述的权限认证方法。
由上述可知,实施本发明提供的权限认证方法、系统、设备和存储介质,将接入子系统接入至母系统,并通过统一的认证授权模块进行简单的资源和权限配置,即可使得接入子系统获得安全可靠的权限认证功能,由此降低了权限认证实现的复杂度,进而降低了时间成本和人力成本。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
附图说明
图1是根据本发明的实施例1的权限认证方法的流程示意图;
图2是根据本发明的实施例2的权限认证方法的流程示意图;
图3是根据本发明一种实施例的母系统导航菜单界面;
图4是根据本发明一种实施例的动态路由方法的流程示意图;
图5是根据本发明一种实施例的鉴权过滤方法的流程示意图;
图6是根据本发明的实施例3的权限认证系统的架构示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
下面对本文中使用的术语进行简要说明。
URL:Uniform Resource Locator,统一资源定位符,也称为网址。
RBAC:Role-Based Access Control,基于角色的访问控制。
Spring Cloud Gateway:Spring官方基于Spring5.0、SpringBoot2.0、Netty和Project Reactor等技术开发的网关。
JWT:JSON Web Token,一种使用JSON格式传递数据的网络令牌技术,它是一个开放的行业标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任,它可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止内容篡改。
token:令牌。
【实施例1】
图1是根据本发明的实施例1的权限认证方法的流程示意图。
如图1所示,在本发明的实施例1中,所述权限认证方法可包括:步骤S11、步骤S12、步骤S13、步骤S14、步骤S15和步骤S16,下面对上述步骤进行具体的描述。
在步骤S11中,通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置。其中,母系统包括所述认证授权模块和下述网关模块。在本实施例中,接入母系统的各个接入子系统能够独立开发和部署,同时实现不同角色的独立权限控制。
在一些实施方式中,通过认证授权模块对接入至母系统的接入子系统进行资源配置包括:当所述接入子系统的接入服务接入至所述母系统时,通过所述认证授权模块添加所述接入服务的路由名称和服务URL地址。
在一些实施方式中,通过认证授权模块对接入至母系统的接入子系统进行权限配置包括:通过所述母系统的前端页面新建角色,并为所述角色分配所述接入子系统的服务功能的权限;通过所述母系统的前端页面新建用户,并将所述角色赋予用户。其中,每个接入子系统的服务功能的页面通过具体URL渲染到浏览器上。通过将服务功能的页面对应的URL(即功能URL)配置给所述角色,使得该角色拥有对应的接入子系统的服务功能的权限。
在本实施例中,认证授权模块采用RBAC模型实现对接入子系统的权限配置。具体而言,在RBAC模型里面有3个基础组成部分,分别是:User用户、Role角色、Permission权限。用户-角色之间的映射关系。角色-权限之间的映射关系,RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离,简化了用户和权限的关系,使得权限配置易扩展、易维护。通过在母系统的前端页面(权限配置页面)上新建角色,并为角色分配接入子系统的服务功能的具体权限,然后新建用户,并把该角色赋予该用户。至此,该用户拥有了访问该接入子系统的权限。
在步骤S12中,当所述认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源和权限数据。在一些实施方式中,当新增接入子系统、修改接入子系统的路由地址、删除接入子系统时,认证授权模块调用系统变更的逻辑;网关模块接收到系统变更的通知后,会发布一个路由变更的事件;路由规则会感知到该事件,然后去认证授权模块拉取最新的数据(系统路由和URL信息);路由规则根据拉取到的最新的数据进行路由规则的重建。当接入子系统的菜单变更、接口地址变更时,认证授权模块调用系统的资源变更逻辑;网关模块接收到系统变更的通知后,会调用权限缓存逻辑;权限缓存从认证授权模块拉取最新的数据;根据拉取到的最新的数据(资源URL和有权限的角色ID),刷新本地权限缓存。
在进一步的实施方式中,为了保证路由规则和本地权限缓存与认证授权模块的数据的强一致性,除了前述实时刷新的机制外,可以采用定时刷新的补偿机制,即网关模块定时从认证授权模块中拉取最新的资源数据和权限数据。
在步骤S13中,所述网关模块根据所述新的资源和权限数据构建网关路由规则。
在步骤S14中,当用户登录所述认证授权模块后,所述用户获取该认证授权模块颁发的令牌。
在步骤S15中,当所述用户调用所述接入子系统的服务接口时,所述用户携带所述令牌向所述网关模块发送访问请求。
在步骤S16中,所述网关模块根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。在一些实施方式中,使用JWT令牌进行身份验证和授权访问控制。
采用本发明实施例1的上述权限认证方法,通过将接入子系统接入至母系统,并通过统一的认证授权模块进行简单的资源和权限配置,即可使得接入子系统获得安全可靠的权限认证功能,不需要进行大量的代码开发,因此,接入子系统无需关注认证、授权等相关功能的实现,而只需关注业务开发。由此,降低了权限认证实现的复杂度,进而降低了时间成本和人力成本。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。
在进一步实施方式中,权限认证方法还包括:所述网关模块启动时,调用所述认证授权模块获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;所述网关模块通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息。网关模块调用认证授权模块获取接入子系统的接入服务的服务ID以及对应的有权限的角色信息,从而得到最新的权限信息,为后续比对鉴权提供基础。
【实施例2】
图2是根据本发明的实施例2的权限认证方法的流程示意图。其中,各个接入子系统(接入子系统A、接入子系统B等)接入至包含认证授权模块和网关模块的母系统,利用阿里开源的微前端ICESTARK技术,将各个接入子系统的前端应用集成到母系统中,实现前端微服务的动态加载和组合。该架构使得每个微服务(即每个接入子系统)可以独立开发和部署,可以避免对整个系统的重复部署。
如图2所示,在本发明的实施例2中,所述权限认证方法可包括:
首先,通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置。具体而言,当接入子系统的接入服务接入至母系统时,通过认证授权模块添加所述接入服务的路由名称和服务URL地址;然后,创建一个新角色或选择现有角色,将资源授权给该角色,最后创建一个新用户或选择现有用户,将拥有该资源权限的角色分配给该用户。
本发明给出如图3所示的一种示例性的母系统(即前端基座系统)的导航菜单,通过该导航菜单可以跳转至各个接入子系统中。
如图3所示,前端服务提供一个页面导航树,导航树上的每个顶级节点都是接入子系统的目录,目录下是每个接入子系统的具体功能,点击具体功能导航链接,右面渲染该接入子系统对应的功能页面。相较于传统的权限控制只到菜单级别,本发明的权限控制可以更细致地控制同一页面上不同功能或资源的权限。例如,在一个管理系统中,不同角色可能具有不同的操作权限,如查看、编辑、删除等。采用本发明的权限认证方法,管理员可以根据角色的需求,将各种操作权限授予特定的按钮,从而实现对按钮级别的精确控制。由此,可以确保系统的安全性和数据的完整性,同时提供了更好的用户体验和操作灵活性。
其次,当认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源数据和权限数据。在一些实施方式中,当认证授权模块中的资源或角色发生变更时,认证授权模块通知网关模块,使其重新获取最新数据,然后,网关模块将使用最新数据来重新构建网关路由规则和更新本地权限缓存。
在本实施例中,网关模块在启动时调用认证授权模块的服务,获取所有接入服务的服务ID、路由地址以及该服务的实际URL地址。然后通过服务ID再次调用认证授权模块的服务,获取该服务下的所有资源URL地址以及有权限的角色信息。其中,路由地址和该服务的URL用于设置Spring Cloud Gateway网关的路由规则,而服务下的资源URL和角色信息则保存在本地缓存中。
当新服务接入时,在认证授权模块中添加服务的路由名称和服务URL地址;添加成功后,认证授权模块通知网关模块刷新网关的路由规则信息,网关重新拉取认证授权模块的服务路由信息,并重建网关的路由规则。并且,当服务被删除或者路由名称、服务URL发生变更时,同样采用以上方式进行网关路由规则的刷新。
当新接入的服务添加对应的资源地址时,例如添加接入子系统的菜单目录、菜单、按钮以及接口地址等资源时,认证授权模块通知网关模块拉取最新的权限信息,网关获取最新的权限信息并更新到本地缓存中。并且,更新、删除资源以及资源配置的角色信息变更同样采取以上方式进行网关本地权限缓存的刷新。
本发明给出一种图2中权限认证模块和网关模块实现的动态路由方法,如图4所示,所述动态路由方法包括如下步骤:
步骤A1,当新增接入子系统、修改接入子系统路由地址、删除接入子系统时,认证授权模块调用系统变更的逻辑;
步骤A2,系统变更的逻辑将变更的信息保存成功后,通知网关模块;
步骤A3,网关模块接收到系统变更的通知后,发布一个路由变更的事件;
步骤A4,路由规则感知到该路由变更的事件,然后去认证授权模块拉取最新的数据(系统路由和URL信息);
步骤A5,路由规则根据拉取到的最新的数据,进行路由规则的重建。
步骤B1,当接入子系统的菜单变更、接口地址变更时,认证授权模块调用母系统的资源变更逻辑,以变更接入子系统的资源数据;
步骤B2,系统资源变更的信息保存成功后,通知网关模块;
步骤B3,网关模块接收到系统变更的通知后,调用权限缓存逻辑;
步骤B4,权限缓存从认证授权模块拉取最新的数据(资源URL和有权限的角色ID);
步骤B5,根据拉取到的最新的数据,刷新本地权限缓存。
步骤C1,定时从权限认证模块主动拉取最新的数据。由此,可以保证路由规则和本地权限缓存与认证权限模块的数据的强一致性。
然后,用户通过接入子系统前端页面调用该接入子系统的后端服务时,携带路由地址和当前登录用户的token访问网关,网关首先通过路由地址查找对应的路由规则。如果未找到对应的路由规则,则直接拒绝访问;如果找到对应的路由规则,网关解析token中携带的角色ID,然后通过本地缓存的权限信息进行匹配。如果能够匹配到具有权限的角色ID,则代表该token中携带的角色ID拥有访问该URL的权限,网关会进行路由转发,转发给该服务的后端URL,进而完成整个HTTP请求;否则,返回无权限访问的提示。
在本实施例中,当用户登录认证授权模块后,认证授权模块采用OAuth2协议向用户颁发JWT令牌token,以确保身份鉴权的安全。通过OAuth2协议和JWT令牌,用户在登录后获得一个令牌,该令牌可以用于访问系统中的不同服务,无需多次输入用户名和密码,这样的统一登录方案简化了用户的操作流程,提高了用户体验。例如,对于企业内部的多个系统或应用而言,用户只需进行一次身份验证,即可在整个企业内访问不同的系统,如人力资源管理系统、财务系统、客户关系管理系统等,这样的统一身份验证机制不仅提高了用户的使用体验,还减少了用户忘记密码或输入错误密码的情况。同时,采用OAuth2协议和JWT实现了安全认证和授权机制,可以确保只有经过身份验证和授权的用户才能访问相应的系统资源和功能,从而有效地防止未经授权的访问,增强了系统的安全性。
本发明给出一种图2中网关模块实现的鉴权过滤方法,如图5所示,所述鉴权过滤方法包括如下步骤:
步骤1,用户携带token请求网关模块;
步骤2,访问请求数据通过应用过滤器,应用过滤器解析请求地址URL;
步骤3,将解析后的路由名称和URL放到参数管道中,然后放其通行;
步骤4,数据通过token过滤器,token过滤器解析token;
步骤5,将解析后的有权限的角色id放到参数管道中,将解析后的登录用户基础信息放到http header(协议头的字段)中,然后放其通行;
步骤6,鉴权过滤器从参数管道中获取路由名称、URL、有权限的角色id的数据,并与本地权限缓存进行对比,如果鉴权成功,则根据路由名称及URL进行请求转发,如果鉴权失败,则返回http 403无权限状态。
网关模块通过检查token是否合法,路由地址是否合法,全部合法后,再校验该token是否有访问该路由地址的权限,有权限网关就进行路由地址的转发,也就是就请求跳转到接入子系统的后端服务上。
在其他一些实施方式中,当网关进行鉴权时,获取到登录用户所拥有的角色,进而获取到角色下面的功能URL,如果当前请求的URL并没有在登录用户所拥有的角色的功能URL集合时,则返回HTTP 403没有权限,反之,则正常进行路由转发,用户从而能够访问到接入子系统的URL里的功能页面。
采用本发明实施例2的上述权限认证方法,通过结合Spring Cloud Gateway网关、OAuth2、JWT和微前端ICESTARK技术,实现了高效的动态路由管理、统一权限认证和单点登录的功能,从而避免系统接入和权限变更时的重新部署,并使得接入子系统无需关注认证、授权等相关功能的实现,而只需关注业务开发。并且,通过认证授权模块提供的权限配置页面,将角色信息和资源信息配置到母系统中,即可使得接入子系统接入母系统并享有完整的认证、授权和统一登录功能,进而通过统一的身份认证和权限管理,用户在使用系统时无需切换不同的应用,提供了更流畅和一致的操作体验。
在进一步实施方式中,本发明实施例的权限认证方法还包括:记录用户的操作和系统的访问情况。由此,可以支持审计日志功能,记为安全审计和故障排查提供支持。具体而言,通过对用户的操作进行记录,系统管理员可以追踪用户的行为,了解系统的使用情况,并及时发现潜在的安全风险。此外,审计日志还可以用于故障排查和系统性能优化,帮助开发人员快速定位问题并进行修复。通过该审计日志功能可以提高系统的可靠性和可维护性。
【实施例3】
图6是根据本发明的实施例3的权限认证系统的架构示意图。
如图6所示,所述权限认证系统(即实施例1和2中的母系统)包括认证授权模块61和网关模块62。
其中,所述认证授权模块61用于执行下述操作:
对接入至所述权限认证系统的接入子系统(如图6所示的接入子系统601、接入子系统602、接入子系统603等)进行资源和权限配置;
当认证授权模块61中的资源和权限发生变更时,通知网关模块62获取新的资源和权限数据;
当用户登录认证授权模块61后向所述用户颁发令牌。
在一些实施方式中,所述对接入至所述权限认证系统的接入子系统进行资源配置包括:当所述接入子系统的接入服务接入至所述权限认证系统时,添加所述接入服务的路由名称和服务URL地址。
在一些实施方式中,所述对接入至所述权限认证系统的接入子系统进行权限配置包括:新建角色,并为所述角色分配所述接入子系统的服务功能的权限;新建用户,并将所述角色赋予用户。
其中,所述网关模块62用于执行下述操作:
当网关模块62启动时,调用所述认证授权模块61获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;
通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息;
根据所述新的资源和权限数据构建网关路由规则;
当所述用户调用所述接入子系统的服务接口时,获取所述用户携带所述令牌发送的访问请求;
根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。
采用本发明实施例3的上述权限认证系统,通过将接入子系统接入至权限认证系统,并通过统一的认证授权模块进行简单的资源和权限配置,即可使得接入子系统获得安全可靠的权限认证功能,不需要进行大量的代码开发,因此,接入子系统无需关注认证、授权等相关功能的实现,而只需关注业务开发。由此,降低了权限认证实现的复杂度,进而降低了时间成本和人力成本。并且,网关模块根据认证授权模块中新的资源和权限数据构建新的网关路由规则,能够实现动态路由,从而满足微服务下频繁的模块更新和部署需求。同时,采用独立开发和整体一致性的架构设计,提高了系统的可扩展性和可维护性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
对应的,本发明实施方式还提供一种计算机可读存储介质,其上存储有计算机可读指令或程序,所述计算机可读指令或程序被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述权限认证方法所包含的步骤,在此不再赘述。其中,所述存储介质可以包括:例如,光盘、硬盘、软盘、闪存、磁带等。
另外,本发明实施方式还提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机可读指令或程序,其中,所述一条或多条计算机可读指令或程序被所述处理器执行时能够实现如上任意一种实施方式所述的权限认证方法。所述计算机设备可以是,例如,服务器、台式计算机、笔记本计算机、平板电脑等。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。因此本发明的保护范围应以权利要求为准。
Claims (10)
1.一种权限认证方法,其特征在于,所述方法包括:
通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置;
当所述认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源和权限数据;
所述网关模块根据所述新的资源和权限数据构建网关路由规则;
当用户登录所述认证授权模块后,所述用户获取该认证授权模块颁发的令牌;
当所述用户调用所述接入子系统的服务接口时,所述用户携带所述令牌向所述网关模块发送访问请求;
所述网关模块根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。
2.如权利要求1所述的方法,其特征在于,所述通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置包括:
当所述接入子系统的接入服务接入至所述母系统时,通过所述认证授权模块添加所述接入服务的路由名称和服务URL地址。
3.如权利要求1所述的方法,其特征在于,所述通过认证授权模块对接入至母系统的接入子系统进行资源和权限配置包括:
通过所述母系统的前端页面新建角色,并为所述角色分配所述接入子系统的服务功能的权限;
通过所述母系统的前端页面新建用户,并将所述角色赋予用户。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述网关模块启动时,调用所述认证授权模块获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;
所述网关模块通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息。
5.一种权限认证系统,其特征在于,所述权限认证系统包括认证授权模块和网关模块;
其中,所述认证授权模块用于执行下述操作:
对接入至所述权限认证系统的接入子系统进行资源和权限配置;
当所述认证授权模块中的资源和权限发生变更时,通知网关模块获取新的资源和权限数据;
当用户登录所述认证授权模块后向所述用户颁发令牌;
其中,所述网关模块用于执行下述操作:
根据所述新的资源和权限数据构建网关路由规则;
当所述用户调用所述接入子系统的服务接口时,获取所述用户携带所述令牌发送的访问请求;
根据所述用户的令牌进行鉴权,并在鉴权成功后将所述访问请求转发至所述接入子系统的服务接口。
6.如权利要求5所述的权限认证系统,其特征在于,所述对接入至所述权限认证系统的接入子系统进行资源和权限配置包括:
当所述接入子系统的接入服务接入至所述权限认证系统时,添加所述接入服务的路由名称和服务URL地址。
7.如权利要求5所述的权限认证系统,其特征在于,所述对接入至所述权限认证系统的接入子系统进行资源和权限配置包括:
新建角色,并为所述角色分配所述接入子系统的服务功能的权限;
新建用户,并将所述角色赋予用户。
8.如权利要求5所述的权限认证系统,其特征在于,所述网关模块还用于执行下述操作:
当所述网关模块启动时,调用所述认证授权模块获取所述接入子系统的接入服务的服务ID、所述接入服务的路由地址以及所述接入服务的实际URL地址;
通过所述服务ID获取对应的接入服务下的资源URL地址和有权限的角色信息。
9.一种计算机可读存储介质,所述计算机可读存储介质储存计算机可读指令,其特征在于,所述计算机可读指令由处理器执行以实现如权利要求1-4中任一项所述的权限认证方法。
10.一种计算机设备,其包括存储器和处理器,
所述存储器存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令以实现如权利要求1-4中任一项所述的权限认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311671301.2A CN117675360A (zh) | 2023-12-06 | 2023-12-06 | 权限认证方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311671301.2A CN117675360A (zh) | 2023-12-06 | 2023-12-06 | 权限认证方法、系统、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675360A true CN117675360A (zh) | 2024-03-08 |
Family
ID=90072971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311671301.2A Pending CN117675360A (zh) | 2023-12-06 | 2023-12-06 | 权限认证方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117675360A (zh) |
-
2023
- 2023-12-06 CN CN202311671301.2A patent/CN117675360A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522701B2 (en) | Generating and managing a composite identity token for multi-service use | |
AU2019206006B2 (en) | System and method for biometric protocol standards | |
CN109478149B (zh) | 混合云计算系统中的访问服务 | |
US9130920B2 (en) | Monitoring of authorization-exceeding activity in distributed networks | |
CN109479062B (zh) | 混合云计算系统中的使用跟踪 | |
US10484385B2 (en) | Accessing an application through application clients and web browsers | |
CN112035215B (zh) | 节点集群的节点自治方法、系统、装置及电子设备 | |
CN107277049B (zh) | 一种应用系统的访问方法及装置 | |
US6453353B1 (en) | Role-based navigation of information resources | |
US8086698B2 (en) | Synchronizing configuration information among multiple clients | |
US8060932B2 (en) | Modular enterprise authorization solution | |
CN112632164B (zh) | 一种实现可信权限访问的通用跨链编程接口方法 | |
KR20080024513A (ko) | 비관리형 네트워크에서의 공통 id를 위한 계정 동기화 | |
US20220029998A1 (en) | Systems and methods for managing domain name information | |
US20240248979A1 (en) | Persistent source values for assumed alternative identities | |
US20240048562A1 (en) | Sponsor delegation for multi-factor authentication | |
CN114297598B (zh) | 用户权限处理方法及装置 | |
CN117675360A (zh) | 权限认证方法、系统、设备和存储介质 | |
Vijay | Chaurasiya., et al | |
CN118211259A (zh) | 信息处理方法、装置、存储介质和电子装置 | |
CN114282183A (zh) | 一种带有权限控制的菜单系统 | |
Lord et al. | Access management in multi-administration networks | |
Wu | Security in Grid Computing | |
Pack | Security Target IBM Tivoli Directory Server Version 6.0 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |