CN117134990A - 一种微服务下多租户高效切换访问和鉴权的方法 - Google Patents
一种微服务下多租户高效切换访问和鉴权的方法 Download PDFInfo
- Publication number
- CN117134990A CN117134990A CN202311206760.3A CN202311206760A CN117134990A CN 117134990 A CN117134990 A CN 117134990A CN 202311206760 A CN202311206760 A CN 202311206760A CN 117134990 A CN117134990 A CN 117134990A
- Authority
- CN
- China
- Prior art keywords
- authentication
- service
- information
- tenant
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012795 verification Methods 0.000 claims description 5
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 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/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/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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
-
- 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/3236—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 using cryptographic hash functions
-
- 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
本发明公开了一种微服务下多租户高效切换访问和鉴权的方法,涉及到计算机技术领域,客户在前端登录成功后,认证服务会将token和对应的用户信息存储在redis集群中,当前端访问接口获取数据时,会传递租户id和认证token等信息到后端,网关接收到请求后,先查询redis集群是否存在当前token以及对应的用户信息,查询不到则返回需要重新登录,查询到则动态的根据租户id和用户id继续查询缓存是否存在权限信息,若不存在则调用权限服务获取此租户下权限信息,有缓存或获取到权限信息则进入url统一鉴权。通过这一方式,解决了切换租户时需要重新登录或主动刷新结合缓存的繁琐,加上优化了url匹配和缓存,既减少了系统的复杂性,又提高了鉴权的效率。
Description
技术领域
本发明中涉及计算机技术技术领域,特别涉及一种微服务下多租户高效切换访问和鉴权的方法。
背景技术
传统多租户场景大多解决方案为两种形式:
其一,用户在登录前选择此次需要登录的租户,登录成功则确定了此时访问的租户,如果需要更换访问其他租户,就不得不先退出后再选择租户重新登录。此方式流程繁琐,不利于用户交互和体验;
其二,用户在登录前选择或者登录后选择一个租户,此时后端将选择的租户持久化数据库等存储中或仅保存在此次登录人信息中,后续请求就只能访问选择的租户信息,若需要切换租户,则需要前端调用专门的切换租户的接口,此时后端会更改持久化的租户相关信息或者重新修改此次登录信息。此方式仍需额外调用接口,且有可能因网络问题等原因,接口返回切换未成功,实际上后端已经切换完毕而造成的前后端不一致的问题。
而且传统单体应用架构方式开发多租户模式项目,代码臃肿,不便于维护,扩展性差,无法满足快速扩容,弹性伸缩,无法适应租户规模较大场景下的需求,故较大规模的多租户常选用微服务形式开发。然而微服务下用户和权限信息获取效率低,鉴权分散耦合性高,并发能力有限。
因此提出一种微服务下多租户高效切换访问和鉴权的方法以改善上述问题。
发明内容
本申请的目的在于提供一种微服务下多租户高效切换访问和鉴权的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本申请提供如下技术方案:一种微服务下多租户高效切换访问和鉴权的方法,包括以下步骤:
S1、前端登录成功后,认证服务校验成功返回合法的访问token,并缓存相关信息;
S2、用户访问租户列表,获取能访问的所有租户,以此选择此次访问需要的租户信息;
S3、将选择的租户id传递到后端;
S4、请求到达网关后,网关查询是否有此token的缓存,包括:
有此token的缓存:取出用户信息;
无此token的缓存:直接返回前端重新登录;
S5、获取到用户信息后,网关查询是否有此用户权限信息的缓存,包括:
有此用户权限信息的缓存:取出权限信息进入S7校验环节;
无此用户权限信息的缓存:进入S6查询权限信息;
S6、网关根据用户信息、租户id,调用权限服务查询出当前权限信息,同时缓存到redis集群中;
S7、网关根据用户权限信息,判断用户是否有权调用此次直接目的url接口:
鉴权不通过,则返回前端重新登录;
鉴权通过,则将用户的token,并随着目的url通过路由转发给相关的业务服务;
S8、下一节点的服务在接收到请求后,根据需要从缓存中取出用户信息使用;因为url鉴权已由网关统一处理,本节点业务服务非必要情况无需在校验权限信息。
优选地,所述S2中,可以使用单独接口获取租户信息列表。
优选地,所述S3中,租户id将通过header形式传递到后端。
优选地,所述S3中,租户id也可以通过url形式或者请求参数传递到后端。
优选地,所述url形式包括url路径和url参数。
优选地,所述S4中,缓存有效期可为token有效时长;如根据需要不查询缓存时,则直接查询认证服务。
优选地,所述S5中,缓存存储结构可以使用hash结构,此时key为用户id,filed为租户id,vlaue为权限信息。
优选地,所述S7中,使用的url校验方式为优化的hash和url匹配相结合的方式:网关拿到权限信息后会进行hash处理,形成一个HashMap表,然后才会存入redis集群,此时在匹配之前会先取目标url在HashMap表中查找,找到直接判断是否相等,相等则直接通过校验;不等或者未查找到则在进入url匹配。借此可极大提升匹配速度。
综上,本发明的技术效果和优点:
通过这一方式,不需要在登录时固定死登录所选租户的权限信息,解决了切换租户时需要重新登录或主动刷新结合缓存的繁琐问题;同时也避免了网络问题造成注销或刷新失败而出现的页面和后端实际操作租户不一致的问题,用户可以随时自由流畅的切换自己所属的租户,甚至在每次请求都可请求不同租户下数据。
考虑到微服务本身的特点,在适当的位置加入缓存机制避免多次耗时请求,同时优化缓存存储结构提高读取速度;加上优化了url匹配方式,大幅提高鉴权时url的匹配用时,既降低了系统的复杂性,又提高了鉴权的效率,同时借助于微服务的优势以及优化后的鉴权方式,系统并发量也将得到极大的提升,为大规模saas化应用提供很好的基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例中的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:参考图1所示的一种微服务下多租户高效切换访问和鉴权的方法,包括以下步骤:
S1、前端登录成功后,认证服务校验成功返回合法的访问token,并缓存相关信息;
S2、用户访问租户列表,获取能访问的所有租户,以此选择此次访问需要的租户信息;
S3、将选择的租户id传递到后端;
S4、请求到达网关后,网关查询是否有此token的缓存,包括:
有此token的缓存:取出用户信息;
无此token的缓存:直接返回前端重新登录;
S5、获取到用户信息后,网关查询是否有此用户权限信息的缓存,包括:
有此用户权限信息的缓存:取出权限信息进入S7校验环节;
无此用户权限信息的缓存:进入S6查询权限信息;
S6、网关根据用户信息、租户id,调用权限服务查询出当前权限信息,同时缓存到redis集群中;
S7、网关根据用户权限信息,判断用户是否有权调用此次直接目的url接口:
鉴权不通过,则返回前端重新登录;
鉴权通过,则将用户的token,并随着目的url通过路由转发给相关的业务服务;
S8、下一节点的服务在接收到请求后,根据需要从缓存中取出用户信息使用;因为url鉴权已由网关统一处理,本节点业务服务非必要情况无需在校验权限信息。
其中,业务服务收到此次请求后,根据业务需要,选择是否提供服务。
其中,前端随时根据需要再访问任意业务接口的时候切换租户id,网关根据请求的用户id和租户id自动完善切换的租户及所属权限信息。
其中,除登录后的第一次请求略微增加耗时外,后续token有效时的请求,将近乎为业务本身耗时,响应非常快。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种微服务下多租户高效切换访问和鉴权的方法,其特征在于包括以下步骤:
S1、前端登录成功后,认证服务校验成功返回合法的访问token,并缓存相关信息;
S2、用户访问租户列表,获取能访问的所有租户,以此选择此次访问需要的租户信息;
S3、将选择的租户id传递到后端;
S4、请求到达网关后,网关查询是否有此token的缓存,包括:
有此token的缓存:取出用户信息;
无此token的缓存:直接返回前端重新登录;
S5、获取到用户信息后,网关查询是否有此用户权限信息的缓存,包括:
有此用户权限信息的缓存:取出权限信息进入S7校验环节;
无此用户权限信息的缓存:进入S6查询权限信息;
S6、网关根据用户信息、租户id,调用权限服务查询出当前权限信息,同时缓存到redis集群中;
S7、网关根据用户权限信息,判断用户是否有权调用此次直接目的url接口:
鉴权不通过,则返回前端重新登录;
鉴权通过,则将用户的token,并随着目的url通过路由转发给相关的业务服务;
S8、下一节点的服务在接收到请求后,根据需要从缓存中取出用户信息使用;因为url鉴权已由网关统一处理,本节点业务服务非必要情况无需在校验权限信息。
2.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述S3中,租户id可选择通过请求头或请求路径或请求参数形式传递到后端。
3.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述S4中,可根据需要选择不使用缓存而直接访问认证服务校验token,获取用户信息。
4.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述S5中,可根据需要选择不使用缓存,直接进入S6调用权限服务获取权限信息。
5.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述S5中,存储redis缓存的数据结构可以是多种形式。
6.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述S7中,不限于优化的url校验匹配方式。
7.根据权利要求1所述的一种微服务下多租户高效切换访问和鉴权的方法,其特征在于:所述认证服务和权限服务不限于为独立服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311206760.3A CN117134990A (zh) | 2023-09-18 | 2023-09-18 | 一种微服务下多租户高效切换访问和鉴权的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311206760.3A CN117134990A (zh) | 2023-09-18 | 2023-09-18 | 一种微服务下多租户高效切换访问和鉴权的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117134990A true CN117134990A (zh) | 2023-11-28 |
Family
ID=88858218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311206760.3A Pending CN117134990A (zh) | 2023-09-18 | 2023-09-18 | 一种微服务下多租户高效切换访问和鉴权的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117134990A (zh) |
-
2023
- 2023-09-18 CN CN202311206760.3A patent/CN117134990A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105812351B (zh) | 实现会话共享的方法和系统 | |
US9009253B2 (en) | Optimizing server resources using multiple retry for high traffic websites | |
US7558854B2 (en) | Access relaying apparatus | |
US9917889B2 (en) | Enterprise service bus routing system | |
US20170185678A1 (en) | Crawler system and method | |
US20090165115A1 (en) | Service providing system, gateway, and server | |
US11245661B2 (en) | DNS resolution method, authoritative DNS server and DNS resolution system | |
CN101924785A (zh) | 数据的上传方法、下载方法和系统 | |
WO2021017771A1 (zh) | 业务请求处理方法和相关装置 | |
CN106991008B (zh) | 一种资源锁管理方法、相关设备及系统 | |
CN112287259A (zh) | 一种冷访问回源调度系统及其处理方法 | |
CN103136205A (zh) | Web图片服务系统及方法 | |
WO2018227695A1 (zh) | 订阅数据的发送、接收方法、装置及系统 | |
CN109413224B (zh) | 报文转发方法和装置 | |
CN114268631B (zh) | 低延迟网络系统及其通信连接方法及可读存储介质 | |
CN108616398B (zh) | 一种基于dns负载均衡技术的容器动态缩容方法 | |
CN117134990A (zh) | 一种微服务下多租户高效切换访问和鉴权的方法 | |
WO2016173451A1 (zh) | 生成域名解析的方法、装置及服务器 | |
US8719467B2 (en) | Method, apparatus and system for mounting file system | |
CN115344620A (zh) | 自定义数据池实现前后端分离后数据按需同步方法 | |
WO2018090315A1 (zh) | 数据请求的处理方法及缓存系统 | |
US11310334B1 (en) | Automatic smart propagation of caching directives | |
CN111353117B (zh) | 基于key-value型内存数据库的WEB跨域cookie管理系统 | |
CN116991333B (zh) | 分布式数据存储方法、装置、电子设备及存储介质 | |
CN109510864A (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 |