CN113742714A - 微服务间访问管理方法、设备、装置及存储介质 - Google Patents
微服务间访问管理方法、设备、装置及存储介质 Download PDFInfo
- Publication number
- CN113742714A CN113742714A CN202110867897.8A CN202110867897A CN113742714A CN 113742714 A CN113742714 A CN 113742714A CN 202110867897 A CN202110867897 A CN 202110867897A CN 113742714 A CN113742714 A CN 113742714A
- Authority
- CN
- China
- Prior art keywords
- service component
- micro
- component
- token
- 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 description 52
- 238000007726 management method Methods 0.000 claims abstract description 43
- 230000001419 dependent effect Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000009545 invasion Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了微服务间访问管理方法,该方法通过利用所述服务器中keycloak组件接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。此外,本发明还公开了一种微服务间访问管理装置、设备及存储介质,由于所述访问管理方法是在三方依赖包组件中完成,故而本发明实现了减少访问管理与业务代码之间相互干扰,提高了用户对微服务访问管理的可靠性。
Description
技术领域
本发明涉及权限管理领域,尤其涉及基于keycloak对微服务间访问管理方法、设备、装置及存储介质。
背景技术
微服务架构是现如今一种主流的***架构,微服务的解耦,独立部署以及更高的可用性和弹性等优点广受各大公司的追捧,但同样也会带来一系列问题,其中之一就是服务间的访问权限控制。通常公司只会对公有云访问私有云的微服务进行访问权限管控,常用的手段就是签名验签,增加黑名单,再复杂一些,通过数据库保存定义好的策略,以及适量的代码改造来达到该目的。这些常用手段,要么管控的颗粒度太大,要么对业务代码有一定的入侵,所以,为了解决这个问题,引入一种基于keycloak的角色管控方法来对微服务进行接口级别的访问权限控制。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种微服务间访问管理方法、设备、装置及存储介质,旨在解决现有技术中访问权限管控会对业务代码产生一定入侵的技术问题。
为实现上述目的,本发明提供一种微服务间访问管理方法,用于服务器,所述服务器包括keycloak组件,包括以下步骤:
接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;
基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;
若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。
可选地,所述接收所述第一微服务组件发送的目标微服务组件接入请求步骤之前,还包括
接收所述第一微服务组件发送的权限令牌生成请求;
基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
发送所述临时权限令牌至所述第一微服务组件。
可选地,所述生成请求包括所述第一微服务组件接口地址,所述服务器包括keycloak组件对应的配置文件,所述配置文件包括角色与接口权限绑定表和接口地址对应角色表;
所述基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌的步骤包括:
基于所述第一微服务组件接口地址和所述接口地址对应角色表,确定所述第一微服务组件的角色;
基于所述角色和所述角色与接口权限绑定关系表,获取所述第一微服务组件对应的接口权限;
基于所述接口权限生成所述临时权限令牌。
可选地,所述基于所述权限令牌和所述目标微服务组件地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件步骤具体包括:
基于所述目标微服务组件的接口地址和所述接口地址对应角色表,确定所述目标微服务组件的角色;
基于所述角色和所述角色与接口权限绑定关系表,获取所述目标微服务组件对应的接口权限;
判断所述临时权限令牌中第一微服务组件的权限是否与所述目标微服务组件接口的权限匹配;
若匹配,则判定第一微服务组件有权限接入所述目标微服务组件;
若不匹配,则判定第一微服务组件没有权限接入所述目标微服务组件,并向所述第一微服务组件发送无权限信息。
可选地,所述接收所述第一微服务组件发送的权限令牌生成请求步骤之前还包括:
配置所述角色和接口权限的绑定表和所述接口地址对应角色表;
基于所述角色和接口权限的绑定表和所述接口地址对应角色表,生成所述配置文件;
在所述keycloak组件启动时,加载所述配置文件。
可选地,所述临时权限令牌包括有效时限;
所述基于所述权限令牌和所述目标微服务组件地址利用所述keycloak组件基于所述配置文件校验所述第一微服务组件是否有权限接入所述目标微服务组件步骤之前还包括:
基于所述临时权限令牌的实际时间和所述有效时限,判断所述临时权限令牌是否失效;
若所述实际时间未超出所述有效时限,则判定没有失效,并执行步骤:基于所述权限令牌和所述目标微服务组件地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件。
此外,为实现上述目的,本发明还提供一种微服务间访问管理装置,所述装置用于服务器,所述服务器包括keycloak组件,所述装置包括:
请求接收模块,用于接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;
权限校验模块,用于基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件
可选地,所述装置还包括:
所述请求接收模块,还用于接收所述第一微服务组件发送的权限令牌生成请求;
令牌生成模块,用于基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
令牌发送模块,用于发送所述临时权限令牌至所述第一微服务组件。
此外,为实现上述目的,本发明还提供一种微服务间访问管理设备,所述设备还包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务间访问管理程序,所述微服务间访问管理程序被所述处理器执行时实现上述微服务间访问管理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务间访问管理程序,所述微服务间访问管理程序被处理器执行时实现上述微服务间访问管理方法的步骤。
本发明实施例提出的一种微服务间访问管理方法,用于服务器,利用所述服务器中keycloak组件接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。由于所述权限管理方法是在三方依赖包组件中完成,故而本发明实现了减少权限管理与业务代码之间相互干扰,提高了用户对微服务访问管理的可靠性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的服务器的结构示意图;
图2为本发明微服务间权限管控方法的第一实施例流程示意图;
图3为本发明微服务间权限管控方法的第二实施例流程示意图;
图4为本发明图2中步骤S30的步骤细化流程示意图;
图5为本发明图3中步骤S102的步骤细化流程示意图;
图6为本发明微服务间权限管控装置第一实施例的功能模块示意图;
图7为本发明微服务间权限管控装置第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明实施例的主要解决方案是:利用所述服务器中keycloak组件接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。
由于现有技术对于微服务间权限管控方法,要么管控的颗粒度太大,要么对业务代码有一定的入侵。
本发明提供一种解决方案,使权限管控达到接口级别,管控的颗粒度更细,同时避免了对业务代码的入侵。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的服务器的结构示意图。
本发明实施例服务器是具有keycloak组件的服务器。
通常,所述服务器包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的微服务间权限管控程序。
处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关微服务间权限管控操作,使得微服务间权限管控的方法模型可以自主训练学习,提高效率和准确度。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的微服务间权限管控的方法。
在一些实施例中,服务器还可选包括有:通信接口303和至少一个***设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与通信接口303相连。具体地,***设备包括:射频电路304、显示屏305和电源306中的至少一种。
通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括蓝牙网络、NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图1中示出的结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述硬件结构,本发明提供了一种微服务间权限管控方法的实施例
参照图2,图2为微服务间权限管控方法的流程示意图,本发明实施例提供的微服务间权限管控方法应用于服务器,包括以下步骤:
步骤S20,接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址。
在具体实施过程中,第一微服务组件通过多种形式发送接入请求至服务器,包括且不限于:蓝牙、有线网络、无线网络等。
需要说明的是,微服务是一种软件开发技术,面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。在一个微服务架构中,包括多个微服务组件。所述第一微服务组件为多个微服务组件需要进行交互时,发起所述交互请求的微服务组件,所述目标微服务组件为多个微服务组件需要进行交互时,需要接收交互请求的微服务组件。
同时每个微服务组件对应一个临时权限令牌,其中,令牌(token),是服务器生成的一串字符,作为第一微服务组件请求的令牌,当第一次登陆后,服务器会分发Token字符串给第一微服务组件后续的请求,第一微服务组件只需带上这个Token,服务器即可知道是该微服务组件的发起的访问,需要说明的是,本申请中,所述临时权限令牌还包括微服务组件对应的接口权限信息。
作为一种实施例,为了使所述第一微服务组件获得所述权限令牌,参照图3,在步骤S20之前还包括:
步骤S101,接收所述第一微服务组件发送的权限令牌生成请求;
步骤S102,基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
需要说明的是,Keycloak是一种面向应用和服务的开源IAM(身份识别与访问管理)解决方案,Keycloak提供了单点登录(SSO)功能,支持OpenID Connect、OAuth 2.0、SAML2.0标准协议,拥有简单易用的管理控制台,并提供对LDAP、Active Directory以及Github、Google等社交账号登录的支持,做到了非常简单的开箱即用,通过将keycloak组件部署在服务器中实现了对不同接口权限的隔离。
步骤S103,发送所述临时权限令牌至所述第一微服务组件。
可以理解,发送所述临时权限令牌至所述第一微服务组件的方式包括且不限于:蓝牙、有线网络、无线网络等。
步骤S30,基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件。
微服务架构中,包括多个微服务组件,微服务组件包括对应的接口,可以理解的是,每个接口对应有接口地址,需要说明的是,通过微服务接口地址确定对应的微服务组件,以此在微服务架构中确定需要访问的目标微服务组件,例如,微服务架构中,包括四个微服务组件,当第一微服务组件需要访问第二微服务组件时,为了快速确定需要访问的微服务组件,通过第二微服务组件的接口地址,就可以确定第二微服务组件为需要访问的微服务组件。
作为一种实施例,三方依赖包内包括所述keycloak组件对应的配置文件,配置文件内包括角色与接口权限绑定表和接口地址对应角色表,在步骤S101之前,还包括:配置所述角色和接口权限的绑定表和所述接口地址对应角色表;基于所述角色和接口权限的绑定表和所述接口地址对应角色表,生成配置文件;在所述keycloak组件启动时,加载所述配置文件。
需要说明的是,三方依赖包即是三方jar包,软件领域,JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库,一个可执行的jar文件是一个自包含的Java应用程序,它存储在特别配置的JAR文件中,可以由JVM直接执行它而无需事先提取文件或者设置类路径。要运行存储在非可执行的AR中的应用程序,必须将它加入到您的类路径中,并用名字调用应用程序的主类。但是使用可执行的JAR文件,我们可以不用提取它或者知道主要入口点就可以运行一个应用程序。可执行JAR有助于方便发布和执行Java应用程序。对于本实施例,三方依赖包为keycloak组件对应的三方jar包。
进一步地,所述临时权限令牌生成过程中,会包括有效时限,需要说明的是,有效时限为令牌的过期时间,通过比对临时权限令牌的有效时限与当前时间,可以判断该令牌是否失效,例如,临时权限令牌的有效时限为2021年7月25日13时,当前时间为2021年7月26日12时,则判定所述临时权限令牌失效,如果所述临时权限令牌有效时限为2021年7月26日13时,则判定所述临时权限令牌有效。
作为另一实施例,在步骤S30之前,还包括基于所述临时权限令牌的实际时间和所述有效时限,判断所述临时权限令牌是否失效;若所述实际时间未超出所述有效时限,则判定没有失效,并执行步骤:S40。如果实际时间超出所述有效时限,则判定令牌失效,则发送令牌失效信息至客户端,以使客户端执行步骤S101-S103。需要说明的是,上述校验过程是通过服务器内keycloak组件完成的。
此外,为了使交互流程减少,提高权限管理的效率,提出另一实施例,客户端会定期校验令牌的有效性,当令牌失效后,客户端执行上述步骤S101-S103,例如,客户端每隔一小时对所述临时权限令牌进行一次有效性校验,当所述临时权限令牌过期后,客户端重新发送令牌生成指令至服务器。
步骤S40,基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。
需要说明的是,本实施例中,允许接入后,第一微服务组件通过前述服务器与目标微服务组件进行通信。
本实施例提供了一种微服务间权限管理方法,通过包括keycloak组件的服务器接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件,由于所述权限管理方法是在三方依赖包组件中完成,故而本发明实现了减少权限管理与业务代码之间相互干扰,提高了用户对微服务访问管理的可靠性。
进一步地,基于第一实施例提出本发明第二实施例,参照图4,图4为本申请另一实施例流程示意图,第二实施例与第一实施例的区别在于,步骤S30包括:
步骤S301,基于所述目标微服务组件的接口地址和所述接口地址对应角色表,确定所述目标微服务组件的角色;
需要说明的是,所述服务器包括keycloak组件对应的配置文件,所述配置文件是一种计算机文件,可以为一些计算机程序配置参数和初始设置,在本实施例中,所述配置文件主要包括角色与接口权限绑定表和接口地址对应角色表。
在具体实施过程中,对接口地址和角色建立对应关系,同时对角色与接口权限绑定,具体地,角色包括realm-roles(领域角色)和client-roles(客户端角色),进一步地,对每一个微服务***建立一个独立的realm(领域),***内的独立的微服务组件,对应建立一个client(客户端)以及所述客户端对应的客户端角色,对于同一微服务***中不需要单独隔离的微服务组件同时分配微服务***对应领域的领域角色,对于仅需要访问某一客户端对应的微服务组件的其他微服务组件分配所述客户端对应的客户端角色。可以理解的是,多个微服务组件可以对应同一个角色,同一个微服务组件也可以对应多个角色,例如,第一微服务***的第一微服务组件可以具有第一微服务***的领域角色,同时也可以具有第二微服务***内第二微服务组件对应客户端角色。需要说明的是,由于确定不同微服务组件的依据是不同微服务组件对应的接口地址,故而,上述角色与微服务组件的绑定是通过微服务组件的接口地址与所述角色进行绑定。
步骤S302,基于所述角色和所述角色与接口权限绑定关系表,获取所述目标微服务组件对应的接口权限;
具体实施过程中,在设置好每个微服务组件对应的角色后,对相应角色分配对应权限,具体地,对于领域角色设置权限允许相同微服务***对应的领域内的其他具有领域角色的微服务组件访问,例如,第一微服务***对应第一领域,第一微服务***内的第一微服务组件对应第一领域的领域角色,则所述第一接口有权利访问第一微服务组件内其他具有第一领域的领域角色的接口的权限,进一步地,对于客户端角色设置仅允许访问所述客户端角色对应的客户端的权限,例如,第一微服务***包括第一微服务组件对应的角色,包括第二微服务***内第二微服务组件对应的客户端角色,则第一微服务组件具有访问第二微服务组件的权限。
步骤S303,判断所述临时权限令牌中第一微服务组件的权限是否与所述目标微服务组件的接口的权限匹配。
需要说明的是,临时权限令牌内包括第一微服务组件的对应的角色权限,通过判断所述角色是否包括目标微服务组件对应的角色权限,如果包括则判定目标微服务组件与所述第一微服务组件权限匹配。
若匹配,则判定第一微服务组件有权限接入所述目标微服务组件并执行步骤S40;
若不匹配,则判定第一微服务组件没有权限接入所述目标微服务组件,并向所述第一微服务组件发送无权限信息。
本实施例提供了一种微服务间权限管理方法,通过包括keycloak组件的服务器接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件,由于所述权限管理方法是在三方依赖包组件中完成,故而本发明实现了减少权限管理与业务代码之间相互干扰,提高了用户对微服务访问管理的可靠性。
进一步地,基于第一实施例提出本发明的第三实施例,所述第三实施例与第一和/或第二实施例的区别在于,参照图5,图5为本申请第三实施例的流程示意图,所述步骤S102包括:
S1021基于所述第一微服务组件接口地址和所述接口地址对应角色表,确定所述第一微服务组件的角色;
S1022基于所述角色和所述角色与接口权限绑定关系表,获取所述第一微服务组件对应的接口权限;
S1023基于所述接口权限生成所述临时权限令牌。
需要说明的是,本实施例的方法只是前述实施例的方法中基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌的步骤的具体执行过程,其执行的原理以及相应的实施方式都可参照前述实施例中基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件步骤的执行过程,此处不再赘述。
可以理解,上述微服务架构中,一个微服务组件包括多个业务功能模块,每个功能模块对应一个接口,在其他实施例中,在微服务组件之间的功能模块互相调用时,需要对相应模块接口地址进行读取,前述微服务间权限管控方法中对于微服务组件之间的权限管控,同样可以用于微服务组件中功能模块之间的互相调用的权限管控。
进一步地,作为另一种实施例,上述实施例中的微服务间权限管控方法的执行步骤,同样可以使用在传统的C/S模型(客户端-服务端模型),例如,客户端访问服务端,本发明不做具体限制。
参照图6,图6为本发明实施例中微服务间访问管理装置的第一实施例的程序模块图,基于上述图2所述的实施例,所述装置包括:
请求接收模块,用于接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;
权限校验模块,用于基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件
需要说明的是,本实施例的装置中的各模块对应执行前述实施例中的方法步骤,因此,其实施方式可参照前述实施例,这里不再赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。
参照图7,图7为本发明实施例中微服务间访问管理装置的第二实施例的程序模块图,基于上述图3所示的实施例,所述装置包括:
所述请求接收模块,还用于接收所述第一微服务组件发送的权限令牌生成请求;
令牌生成模块,用于基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
令牌发送模块,用于发送所述临时权限令牌至所述第一微服务组件。
需要说明的是,本实施例的装置中的各模块对应执行前述实施例中的方法步骤,因此,其实施方式可参照前述实施例,这里不再赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务间访问管理程序,所述微服务间访问管理程序被处理器执行时实现如前方法实施例所述的微服务间访问管理方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种微服务间访问管理方法,其特征在于,用于服务器,所述服务器包括keycloak组件,所述方法包括以下步骤:
接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;
基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件;
若有权限,则基于所述目标微服务组件的接口地址将所述第一微服务组件接入所述目标微服务组件。
2.如权利要求1所述的微服务间访问管理方法,其特征在于,所述接收所述第一微服务组件发送的目标微服务组件接入请求步骤之前,还包括
接收所述第一微服务组件发送的权限令牌生成请求;
基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
发送所述临时权限令牌至所述第一微服务组件。
3.如权利要求2所述的微服务间访问管理方法,其特征在于,所述生成请求包括所述第一微服务组件接口地址,所述服务器包括keycloak组件对应的配置文件,所述配置文件包括角色与接口权限绑定表和接口地址对应角色表;
基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌,包括:
基于所述第一微服务组件接口地址和所述接口地址对应角色表,确定所述第一微服务组件的角色;
基于所述角色和所述角色与接口权限绑定关系表,获取所述第一微服务组件对应的接口权限;
基于所述接口权限生成所述临时权限令牌。
4.如权利要求3所述的微服务间访问管理方法,其特征在于,所述基于所述权限令牌和所述目标微服务组件地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件步骤具体包括:
基于所述目标微服务组件的接口地址和所述接口地址对应角色表,确定所述目标微服务组件的角色;
基于所述角色和所述角色与接口权限绑定关系表,获取所述目标微服务组件对应的接口权限;
判断所述临时权限令牌对应第一微服务组件的权限是否与所述目标微服务组件接口的权限匹配;
若匹配,则判定第一微服务组件有权限接入所述目标微服务组件;
若不匹配,则判定第一微服务组件没有权限接入所述目标微服务组件,并向所述第一微服务组件发送无权限信息。
5.如权利要求4所述的微服务间访问管理方法,其特征在于,所述接收所述第一微服务组件发送的权限令牌生成请求步骤之前还包括:
配置所述角色和接口权限的绑定表和所述接口地址对应角色表;
基于所述角色和接口权限的绑定表和所述接口地址对应角色表,生成配置文件;
在所述keycloak组件启动时,加载所述配置文件。
6.如权利要求5所述的微服务间访问管理方法,其特征在于,所述临时权限令牌包括有效时限;
所述基于所述权限令牌和所述目标微服务组件地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件步骤之前还包括:
基于所述临时权限令牌的实际时间和所述有效时限,判断所述临时权限令牌是否失效;
若所述实际时间未超出所述有效时限,则判定没有失效,并执行步骤:基于所述权限令牌和所述目标微服务组件地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件。
7.一种微服务间访问管理装置,其特征在于,所述装置用于服务器,所述服务器包括keycloak组件,所述装置包括:
请求接收模块,用于接收第一微服务组件发送的目标微服务组件接入请求,所述接入请求包括临时权限令牌和所述目标微服务组件接口地址;
权限校验模块,用于基于所述临时权限令牌和所述目标微服务组件接口地址,利用所述keycloak组件校验所述第一微服务组件是否有权限接入所述目标微服务组件。
8.如权利要求7所述微服务间访问管理装置,其特征在于,所述装置还包括:
所述请求接收模块,还用于接收所述第一微服务组件发送的权限令牌生成请求;
令牌生成模块,用于基于所述生成请求,利用所述keycloak组件生成所述第一微服务组件对应的临时权限令牌;
令牌发送模块,用于发送所述临时权限令牌至所述第一微服务组件。
9.一种微服务间访问管理设备,其特征在于,所述设备还包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务间访问管理程序,所述微服务间访问管理程序被所述处理器执行时实现如权利要求1至8中任一项所述的微服务间访问管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务间访问管理程序,所述微服务间访问管理程序被处理器执行时实现如权利要求1至8中任一项所述的微服务间访问管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867897.8A CN113742714A (zh) | 2021-07-28 | 2021-07-28 | 微服务间访问管理方法、设备、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867897.8A CN113742714A (zh) | 2021-07-28 | 2021-07-28 | 微服务间访问管理方法、设备、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742714A true CN113742714A (zh) | 2021-12-03 |
Family
ID=78729508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110867897.8A Pending CN113742714A (zh) | 2021-07-28 | 2021-07-28 | 微服务间访问管理方法、设备、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742714A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881942A (zh) * | 2023-07-21 | 2023-10-13 | 广州三叠纪元智能科技有限公司 | 分布式***角色权限校验方法及其*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198318A (zh) * | 2019-06-03 | 2019-09-03 | 浪潮云信息技术有限公司 | 一种容器服务用户认证方法 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
-
2021
- 2021-07-28 CN CN202110867897.8A patent/CN113742714A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198318A (zh) * | 2019-06-03 | 2019-09-03 | 浪潮云信息技术有限公司 | 一种容器服务用户认证方法 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881942A (zh) * | 2023-07-21 | 2023-10-13 | 广州三叠纪元智能科技有限公司 | 分布式***角色权限校验方法及其*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558407B2 (en) | Availability of devices based on location | |
US10205750B2 (en) | Policy-based secure web boot | |
US7519816B2 (en) | Portable computing environment solution | |
US10133525B2 (en) | Autonomous secure printing | |
US9208339B1 (en) | Verifying Applications in Virtual Environments Using a Trusted Security Zone | |
US20190089810A1 (en) | Resource access method, apparatus, and system | |
KR101018435B1 (ko) | 사용자 단말기의 보안 관리 장치 및 방법 | |
US20090193491A1 (en) | Secure element manager | |
US20100274910A1 (en) | Hosted application sandbox model | |
US20160350148A1 (en) | Thin client system, server device, policy management device, control method, and non-transitory computer readable recording medium | |
WO2018000370A1 (zh) | 一种移动终端的认证方法及移动终端 | |
CN107430669A (zh) | 计算***和方法 | |
CN113746777B (zh) | 安全访问数据的方法及电子设备 | |
US10771462B2 (en) | User terminal using cloud service, integrated security management server for user terminal, and integrated security management method for user terminal | |
CN113014452A (zh) | 网络流量测试方法、装置、测试端以及存储介质 | |
CN112866287A (zh) | 基于办公环境的跨网络访问方法、装置、***及存储介质 | |
US9380040B1 (en) | Method for downloading preauthorized applications to desktop computer using secure connection | |
CN113742714A (zh) | 微服务间访问管理方法、设备、装置及存储介质 | |
JP5841467B2 (ja) | 携帯型情報端末及びプログラム | |
KR101351243B1 (ko) | 애플리케이션 인증 방법 및 그 시스템 | |
CN113641966B (zh) | 一种应用集成方法、***、设备及介质 | |
US20240171587A1 (en) | Region-based authentication and access policies for services | |
US20230216856A1 (en) | Layered authentication method for managing access to cloud resources | |
US20240129294A1 (en) | Automatically generating task-based and limited-privilege user security credentials | |
CN115906118A (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 |