CN114039759A - 一种面向信创领域的高性能网关鉴权方法与系统 - Google Patents
一种面向信创领域的高性能网关鉴权方法与系统 Download PDFInfo
- Publication number
- CN114039759A CN114039759A CN202111289482.3A CN202111289482A CN114039759A CN 114039759 A CN114039759 A CN 114039759A CN 202111289482 A CN202111289482 A CN 202111289482A CN 114039759 A CN114039759 A CN 114039759A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- resource
- module
- authority
- user
- 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
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向信创领域的高性能网关鉴权方法与系统。本方法为:1)管理中心将各用户的权限配置信息写入缓存模块,并发送给注册中心;注册中心保存权限配置信息并生成权限配置信息变更通知给各微服务网关;2)各微服务网关收到变更通知后,向缓存模块请求权限配置信息进行更新;3)客户端将用户的资源访问请求发送给微服务网关,网关验证该资源访问请求中的访问令牌,如果缓存模块中存在该访问令牌则获取该用户的角色列表以及访问请求中资源路径对应的角色列表;4)微服务网关比对该用户的角色列表与所访问资源路径对应的角色列表是否有交集,如果有则访问通过;5)网关将该资源访问请求转发到微服务应用,将响应结果返回该客户端。
Description
技术领域
本发明涉及计算机应用技术领域,具体是提供一种高性能的微服务网关鉴权方法及系统。
背景技术
随着信创领域技术生态的快速发展,微服务架构已在信创项目实施中得到广泛应用,并且随着用户业务范围的扩大以及业务场景的不断细分,微服务数量增长迅速。由于不同的微服务一般会有不同的网络地址,外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,客户端会多次请求不同的微服务,增加了客户端的复杂性,而且认证复杂,每个服务都需要独立认证,出现严重的碎片化服务,以上这些问题可以借助统一API网关解决。
API网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过API网关这一层。也就是说,API的实现更多考虑的是业务逻辑,而安全、性能、监控可以交由API网关来做,这样既提高业务灵活性又不缺安全性。像登录,鉴权这样的共性服务应放到网关统一处理。
由于网关是整个服务的流量入口,经常要负责处理大并发、大流量的请求,为保证网关的高性能和高可用,目前大部分的网关鉴权的解决方案一般采用JWT(JSON WebToken)令牌鉴权方式,JWT令牌在客户端生成,由身份验证服务进行签名,并且必须包含足够的权限信息,令牌会附加到每个请求上,作为微服务用户身份和权限验证的基础,这种解决方案的安全性相对较好,但在处理大并发,大流量的情况下,普遍存在解析复杂和性能不足的问题,网关经常成为系统的性能瓶颈。
发明内容
本发明是针对上述问题,提供一种简单、安全、高效的微服务网关鉴权方法。进一步,本发明提供一种高性能的微服务网关鉴权系统实现。
为实现上述目的,本发明提出如下技术方案:
一种高性能的微服务网关鉴权方法,客户端携带访问令牌向微服务网关发送资源请求,微服务网关接收到资源请求(主要包含标识用户身份的令牌与需要访问的资源路径),根据访问令牌读取客户端身份信息,并根据客户端身份信息,访问内存中的网关权限信息表,对比资源请求中的资源路径与客户端的资源访问权限是否匹配,若匹配,将资源请求转发至对应微服务,若不匹配,则向客户端直接返回权限不足响应信息。
本发明所提供面向信创领域的高性能网关鉴权方法,其步骤包括:
1)管理中心接收管理员设置的各用户权限配置信息并发布,并且将各用户的权限配置信息写入缓存模块;
2)管理中心将所述权限配置信息发送给注册中心;注册中心保存所述权限配置信息并生成权限配置信息变更通知给各微服务网关;
3)各所述微服务网关收到该权限配置信息变更通知后,向缓存模块请求权限配置信息,更新所述微服务网关内存中的权限配置信息表;
4)客户端将用户的资源访问请求发送给所述微服务网关,该资源请求携带访问令牌;
5)所述微服务网关验证该资源访问请求中的访问令牌,如果缓存模块中不存在该访问令牌则向客户端返回访问令牌不合法的响应信息,如果缓存模块中存在该访问令牌则获取到该用户的角色列表,根据该资源访问请求中的资源路径获取该资源路径对应的角色列表;
6)微服务网关比对该用户的角色列表与所访问的资源路径对应的角色列表是否有交集,如果有则访问通过,进行步骤7),否则访问失败;
7)微服务网关将该资源访问请求转发到微服务应用,该微服务应用响应该资源访问请求,并将响应结果返回该客户端。
进一步的,所述微服务网关采用Nginx+Openresty的运行方式。
进一步的,所述缓存模块为一Redis集群。
进一步的,所述权限配置信息包括用户ID及其对应的角色列表,以及每一角色可访问的资源列表。
本发明还提供一种微服务网关鉴权的实现系统,其特征在于,包括权限配置信息发布模块、注册中心模块、缓存模块、权限信息模块、请求发起模块、权限验证模块和请求转发模块:
权限配置信息发布模块用于发布权限配置信息,管理员在管理中心操作权限信息后,发布权限配置,配置信息写入缓存模块(Redis集群);
注册中心用于发布通知,管理中心向注册中心(ETCD)发布刷新事件,事件以通知的形式传给微服务网关;
缓存模块用于在内存中存储令牌权限信息以及资源权限信息,实现高效访问;
权限信息模块用于从缓存集群中获取最新的权限配置信息并更新网关服务器内存中的权限信息,微服务网关收到权限配置变更事件后,调用获取权限信息操作,更新网关内存中的权限配置信息;
请求发起模块用于发起请求,用户从客户端发起访问资源请求,资源请求携带访问令牌,到达负载均衡设备;负载均衡设备确定对应的网关,然后再发送给所分配网关对该资源请求进行鉴权;
权限验证模块用于权限验证,微服务网关使用访问令牌对访问身份与资源权限进行认证;
请求转发模块用于请求转发,微服务网关将网络请求转发到微服务应用,微服务应用处理请求后做出响应返回用户端。
作为优选,微服务网关采用Nginx+Openresty的运行方式,登录与鉴权逻辑以Lua插件形式实现。该方法充分利用Nginx作为请求转发服务器的高性能的处理I/O多路复用的能力实现高并发条件下的快速逻辑处理。
本发明的有益效果是:
本发明提供了一种简单、安全、高效的微服务网关鉴权的实现方法并且给出了该方法的高性能实现方案,使微服务网关在提供登录、鉴权、监控等共性业务处理的同时,提高了系统的处理性能,满足了高性能和高可用等非功能性需求。
附图说明
图1是本发明的工作流程示意图。
图2是本发明的交互时序图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
该微服务网关鉴权的实现方法具体包括以下步骤:
①发布权限配置信息:管理员在管理中心操作权限配置信息,权限配置信息包括用户ID与该用户绑定的角色列表、用户角色及可访问的资源列表。
②写入数据库:点击保存后,将配置信息写入数据库。
③同步权限配置:管理中心更新缓存(Redis集群)中的权限配置信息。
④更新配置中心:管理中心将配置信息发送给注册中心,更新注册中心(ETCD)权限配置信息。
⑤通知权限信息变化,向微服务网关触发权限配置信息变更通知。
⑥拉取新的权限配置信息:微服务网关收到权限配置变更通知后,向Redis集群请求权限配置信息。
⑦获取权限配置信息:Redis集群收到权限请求后,向微服务网关提供对应的权限配置信息。
⑧更新内存中的权限配置信息表:微服务网关从Redis集群获取权限配置信息后,更新网关内存中的权限配置信息表。
⑨请求访问应用:用户从客户端发起资源访问请求,资源请求携带访问令牌,到达微服务网关实例上。
⑩登录校验:微服务网关使用访问令牌对访问身份进行认证,访问令牌不合法则获取客户端身份信息失败,向客户端返回访问令牌不合法的响应信息,访问令牌合法(即缓存模块中存在该令牌,则该令牌合法)则获取到客户端身份信息与该次访问的资源路径权限信息,继续权限校验。
权限验证:微服务网关比对用户角色列表与访问资源路径对应的角色列表是否有交集,如果有则访问通过,否则访问失败。即网关根据从客户端传过来的令牌从缓存模块得到该用户对应的角色列表,然后再根据用户要访问的资源路径从缓存模块中得到允许访问该资源路径的角色列表,最后将这两个列表做交集,判断当前客户端是否对请求的资源有访问权限。
该微服务网关鉴权的实现方法在管理中心管理权限配置(包括用户ID、用户角色、资源路径等),形成权限配置信息表。操作员在管理中心更新权限配置信息后,触发网关权限刷新事件通知,微服务网关在接收到事件后,从缓存获取权限信息刷新微服务网关内存中的权限配置信息,无需重新启动微服务网关,同时可以向多个微服务网关发布事件,微服务应用不再需要重复鉴权,减轻了认证服务器的压力,同时缩短了业务响应时间。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (5)
1.一种面向信创领域的高性能网关鉴权方法,其步骤包括:
1)管理中心接收管理员设置的各用户权限配置信息并发布,并且将各用户的权限配置信息写入缓存模块;
2)管理中心将所述权限配置信息发送给注册中心;注册中心保存所述权限配置信息并生成权限配置信息变更通知给各微服务网关;
3)各所述微服务网关收到该权限配置信息变更通知后,向缓存模块请求权限配置信息,更新所述微服务网关内存中的权限配置信息表;
4)客户端将用户的资源访问请求发送给所述微服务网关,该资源请求携带访问令牌;
5)所述微服务网关验证该资源访问请求中的访问令牌,如果缓存模块中不存在该访问令牌则向客户端返回访问令牌不合法的响应信息,如果缓存模块中存在该访问令牌则从缓存模块获取到该用户的角色列表,根据该资源访问请求中的资源路径从缓存模块获取该资源路径对应的角色列表;;
6)微服务网关比对该用户对应的角色列表与所访问的资源路径对应的角色列表是否有交集,如果有则访问通过,进行步骤7),否则访问失败;
7)微服务网关将该资源访问请求转发到微服务应用,该微服务应用响应该资源访问请求,并将响应结果返回该客户端。
2.如权利要求1所述的方法,其特征在于,所述微服务网关采用Nginx+Openresty的运行方式。
3.如权利要求1所述的方法,其特征在于,所述缓存模块为一Redis集群。
4.如权利要求1所述的方法,其特征在于,所述权限配置信息包括用户ID及其对应的角色列表,以及每一角色可访问的资源列表。
5.一种面向信创领域的高性能网关鉴权系统,其特征在于,包括权限配置信息发布模块、注册中心、缓存模块、权限信息模块、请求发起模块、权限验证模块和请求转发模块;其中,
所述权限配置信息发布模块,用于发布管理员在管理中心设置的各用户的权限配置信息并将其发送给缓存模块和注册中心;
所述注册中心,用于当收到管理中心的权限配置信息时生成权限配置信息刷新事件通知各微服务网关;
所述缓存模块,用于存储各用户的访问令牌及权限配置信息以及各资源路径对应的角色列表;
所述权限信息模块,用于当收到权限配置信息刷新事件通知后,从缓存模块中获取最新的权限配置信息并更新网关服务器内存中的权限信息;
所述请求发起模块,用于将接收用户从客户端发起的资源访问请求并将其发送给所述微服务网关中的权限验证模块;
所述权限验证模块,用于验证该资源访问请求中的访问令牌,如果缓存模块中不存在该访问令牌则向客户端返回访问令牌不合法的响应信息,如果缓存模块中存在该访问令牌则从缓存模块获取到该用户的角色列表,根据该资源访问请求中的资源路径从缓存模块获取该资源路径对应的角色列表;,然后比对该用户对应的角色列表与所访问的资源路径对应的角色列表是否有交集,如果有则访问通过;
所述请求转发模块,用于将该资源访问请求转发到微服务应用,该微服务应用响应该资源访问请求,并将响应结果返回该客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111289482.3A CN114039759A (zh) | 2021-11-02 | 2021-11-02 | 一种面向信创领域的高性能网关鉴权方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111289482.3A CN114039759A (zh) | 2021-11-02 | 2021-11-02 | 一种面向信创领域的高性能网关鉴权方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114039759A true CN114039759A (zh) | 2022-02-11 |
Family
ID=80142561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111289482.3A Pending CN114039759A (zh) | 2021-11-02 | 2021-11-02 | 一种面向信创领域的高性能网关鉴权方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039759A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615251A (zh) * | 2022-03-24 | 2022-06-10 | 中电科思仪科技股份有限公司 | 一种实现采算分离的信号测试仪器云控制系统及方法 |
CN114615071A (zh) * | 2022-03-21 | 2022-06-10 | 重庆长安汽车股份有限公司 | 一种微服务架构下对RESTful API统一鉴权的方法 |
CN114745316A (zh) * | 2022-04-13 | 2022-07-12 | 工银科技有限公司 | 路由方法、装置、设备、介质和程序产品 |
CN114866331A (zh) * | 2022-05-31 | 2022-08-05 | 新华三信息安全技术有限公司 | 零信任网络下动态访问鉴权方法及网关设备、存储介质 |
CN115296959A (zh) * | 2022-07-25 | 2022-11-04 | 紫光云技术有限公司 | 一种使用Nginx+Lua脚本替代SpringCloudGateway网关的方法 |
CN117118751A (zh) * | 2023-10-23 | 2023-11-24 | 城云科技(中国)有限公司 | 基于OAuth2的访问控制模型的拓展方法及其应用 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200296113A1 (en) * | 2019-03-15 | 2020-09-17 | Mastercard International Incorporated | Systems, methods, and computer program products for dual layer federated identity based access control |
CN113055367A (zh) * | 2021-03-08 | 2021-06-29 | 浪潮云信息技术股份公司 | 一种微服务网关鉴权的实现方法及系统 |
CN113098695A (zh) * | 2021-04-21 | 2021-07-09 | 金陵科技学院 | 一种基于用户属性的微服务统一权限控制方法与系统 |
-
2021
- 2021-11-02 CN CN202111289482.3A patent/CN114039759A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200296113A1 (en) * | 2019-03-15 | 2020-09-17 | Mastercard International Incorporated | Systems, methods, and computer program products for dual layer federated identity based access control |
CN113055367A (zh) * | 2021-03-08 | 2021-06-29 | 浪潮云信息技术股份公司 | 一种微服务网关鉴权的实现方法及系统 |
CN113098695A (zh) * | 2021-04-21 | 2021-07-09 | 金陵科技学院 | 一种基于用户属性的微服务统一权限控制方法与系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615071A (zh) * | 2022-03-21 | 2022-06-10 | 重庆长安汽车股份有限公司 | 一种微服务架构下对RESTful API统一鉴权的方法 |
CN114615071B (zh) * | 2022-03-21 | 2023-06-06 | 重庆长安汽车股份有限公司 | 一种微服务架构下对RESTful API统一鉴权的方法 |
CN114615251A (zh) * | 2022-03-24 | 2022-06-10 | 中电科思仪科技股份有限公司 | 一种实现采算分离的信号测试仪器云控制系统及方法 |
CN114615251B (zh) * | 2022-03-24 | 2024-05-03 | 中电科思仪科技股份有限公司 | 一种实现采算分离的信号测试仪器云控制系统及方法 |
CN114745316A (zh) * | 2022-04-13 | 2022-07-12 | 工银科技有限公司 | 路由方法、装置、设备、介质和程序产品 |
CN114745316B (zh) * | 2022-04-13 | 2023-11-14 | 工银科技有限公司 | 路由方法、装置、设备和介质 |
CN114866331A (zh) * | 2022-05-31 | 2022-08-05 | 新华三信息安全技术有限公司 | 零信任网络下动态访问鉴权方法及网关设备、存储介质 |
CN114866331B (zh) * | 2022-05-31 | 2024-02-09 | 新华三信息安全技术有限公司 | 一种零信任网络下动态访问鉴权方法及设备、存储介质 |
CN115296959A (zh) * | 2022-07-25 | 2022-11-04 | 紫光云技术有限公司 | 一种使用Nginx+Lua脚本替代SpringCloudGateway网关的方法 |
CN117118751A (zh) * | 2023-10-23 | 2023-11-24 | 城云科技(中国)有限公司 | 基于OAuth2的访问控制模型的拓展方法及其应用 |
CN117118751B (zh) * | 2023-10-23 | 2024-01-30 | 城云科技(中国)有限公司 | 基于OAuth2的访问控制模型的拓展方法及其应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114039759A (zh) | 一种面向信创领域的高性能网关鉴权方法与系统 | |
US10936078B2 (en) | Account management services for load balancers | |
US10484385B2 (en) | Accessing an application through application clients and web browsers | |
US10673866B2 (en) | Cross-account role management | |
US20210006410A1 (en) | Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them | |
US20200106610A1 (en) | System and method for decentralized identity management, authentication and authorization of applications | |
US10148638B2 (en) | Authentication server system, method, and storage medium | |
CN109413032A (zh) | 一种单点登录方法、计算机可读存储介质及网关 | |
CN109670768A (zh) | 多业务域的权限管理方法、装置、平台及可读存储介质 | |
US11290443B2 (en) | Multi-layer authentication | |
KR102189301B1 (ko) | 블록체인 기반 보안이 강화된 클라우드 서비스 제공 시스템 및 방법 | |
CN112073400A (zh) | 一种访问控制方法、系统、装置及计算设备 | |
CN112597472A (zh) | 单点登录方法、装置及存储介质 | |
CN110324338B (zh) | 数据交互方法、装置、堡垒机与计算机可读存储介质 | |
WO2020155761A1 (zh) | 登录多个服务集群的方法、装置、计算机设备及存储介质 | |
US10484433B2 (en) | Virtual communication endpoint services | |
AU2017275376B2 (en) | Method and apparatus for issuing a credential for an incident area network | |
US10972481B2 (en) | Web application session security | |
CN105094996A (zh) | 基于动态权限验证的Android系统安全增强方法及系统 | |
CN106464497A (zh) | 利用低延迟会话聚合框架体系发放、传送和管理令牌的方法和系统 | |
CN113132402A (zh) | 单点登录方法和系统 | |
CN109962892A (zh) | 一种登录应用的认证方法及客户端、服务器 | |
CN114444058A (zh) | 一种微服务的鉴权系统、方法、电子设备和存储介质 | |
US10992759B2 (en) | Web application session security with protected session identifiers | |
CN112685719B (zh) | 单点登录方法、装置、系统、计算机设备和存储介质 |
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 |