本技术特别涉及一种微服务架构下实现级联授权的系统及方法。该微服务架构下实现级联授权的系统,包括微服务应用,元数据管理中心和授权鉴权中心,各微服务应用均内置适配器Adapter。所述微服务应用通过内置的适配器Adapter连接到元数据管理中心和授权鉴权中心。该微服务架构下实现级联授权的系统及方法,解决了微服务架构下一次请求需要跨多个微服务应用时的权限问题,授权时不再需要用户知晓操作的依赖关系,也不需要对各操作进行逐个授权,极大的提升了用户体验,降低了用户使用和操作难度。
权利要求书
1.一种微服务架构下实现级联授权的系统,其特征在于:包括微服务应用,元数据管理中心和授权鉴权中心,各微服务应用均内置适配器Adapter;所述微服务应用通过内置的适配器Adapter连接到元数据管理中心和授权鉴权中心。
2.根据权利要求1所述的微服务架构下实现级联授权的系统,其特征在于:所述微服务应用中内置的适配器Adapter负责请求拦截,并与授权鉴权中心交互,验证请求者是否拥有所请求资源的权限。
3.根据权利要求1所述的微服务架构下实现级联授权的系统,其特征在于:所述元数据管理中心负责管理维护整个系统下,所有微服务应用的权限元数据信息,包括服务定义、资源类型定义、操作定义以及操作之间的依赖关系。
4.根据权利要求3所述的微服务架构下实现级联授权的系统,其特征在于:所述元数据管理中心保存有整个系统所有操作之间的依赖关系,当用户有某个操作的操作权限时,则认为该用户同时具有该操作依赖的其他操作的操作权限。
5.根据权利要求4所述的微服务架构下实现级联授权的系统,其特征在于:创建云主机依赖于创建网络,创建云主机还依赖于挂载云硬盘;当用户有创建云主机的操作权限时,授权鉴权中心同时认为该用户具有创建网络和挂载云硬盘的操作权限。
6.根据权利要求1或2所述的微服务架构下实现级联授权的系统,其特征在于:所述授权鉴权中心负责为用户分配权限,以及验证用户是否拥有指定资源的操作权限。
7.一种根据权利要求1~6所述的微服务架构下实现级联授权的系统的实现方法,其特征在于:当微服务应用内置的适配器Adapter拦截到用户操作请求时,将请求者信息、请求的操作信息发送给授权鉴权中心进行权限验证;如果用户没有权限,则进一步去元数据管理中心查询依赖于当前操作的其他操作,然后进一步将请求者信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果有权限,则认为有权限,如果仍然没有权限,则进一步根据操作依赖关系进行权限验证,直至依赖关系结束。
8.根据权利要求7所述的微服务架构下实现级联授权的系统的实现方法,其特征在于,包括以下步骤:
第一步,用户向微服务应用发出用户操作请求,所述用户操作请求携带用户凭证;
第二步,适配器Adapter拦截并解析用户操作请求,获取用户凭证信息和请求的操作信息;
第三步,适配器Adapter将解析获取的用户凭证信息和请求的操作信息发送到授权鉴权中心,检查用户是否有所请求的操作的操作权限;
第四步,若用户有操作权限,授权鉴权中心则返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求发送到微服务应用,微服务应用执行该用户请求的相应操作即可;
第五步,若用户没有操作权限,则去元数据管理中心查询依赖于当前请求的操作的其他操作,然后进一步将用户凭证信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果用户对依赖当前操作的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
如果仍然没有权限,则进一步根据操作依赖关系查找其他操作进行权限验证,直至遍历所有依赖关系;如果用户对具有依赖关系的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
若遍历所有依赖关系都没有操作权限,则认为用户没有当前请求的操作的操作权限,授权鉴权中心返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求拦截,微服务应用不执行该用户请求的相应操作。
技术说明书
一种微服务架构下实现级联授权的系统及方法
技术领域
本技术涉及身份认证和访问控制技术领域,特别涉及一种微服务架构下实现级联授权的系统及方法。
背景技术
随着微服务的兴起和广泛使用,越来越多的应用都开始采用微服务架构,然而,微服务架构下的权限控制,较传统单体应用,有着很大的不同。
在传统单体应用中,各功能模块之间的调用,属于进程内调用,不需要考虑安全性,因此,只需要在对外接口的入口处做好权限检查就可以了。
然而,微服务架构下,用户的一次请求,可能会涉及到跨多个微服务应用之间的调用。如:用户A拥有创建云主机的权限,而创建云主机还涉及到创建网络,挂载云硬盘等操作,
而云主机、网络、云硬盘,分别隶属于三个不同的微服务应用;用户请求到达云主机应用,云主机应用进一步拿着用户身份凭证去调用网络和云硬盘的接口;此时,如果用户A没有创建网络和挂载云硬盘的权限的话,则创建云主机操作将无法完成。
如果用户A想要把云主机创建出来,还需要再进一步授予其创建网络和挂载云硬盘的权限。然而,这样的操作,在用户使用习惯和便捷度上,很不友好。
基于以上的问题,提出一种新的授权方式,以能够实现类似单体应用下的授权,成为技术人员亟待解决的难题。
基于上述情况,本技术提出了一种微服务架构下实现级联授权的系统及方法。只要授予用户A创建云主机的权限,那么就应该能够成功的创建出云主机,而不需要关注创建云主机内部的逻辑。
技术内容
本技术为了弥补现有技术的缺陷,提供了一种简单高效的微服务架构下实现级联授权的系统及方法。
本技术是通过如下技术方案实现的:
一种微服务架构下实现级联授权的系统,其特征在于:包括微服务应用,元数据管理中心和
授权鉴权中心,各微服务应用均内置适配器Adapter;所述微服务应用通过内置的适配器Adapter连接到元数据管理中心和授权鉴权中心。
所述微服务应用中内置的适配器Adapter负责请求拦截,并与授权鉴权中心交互,验证请求者是否拥有所请求资源的权限。
所述元数据管理中心负责管理维护整个系统下,所有微服务应用的权限元数据信息,包括服务定义、资源类型定义、操作定义以及操作之间的依赖关系。
所述元数据管理中心保存有整个系统所有操作之间的依赖关系,当用户有某个操作的操作权限时,则认为该用户同时具有该操作依赖的其他操作的操作权限。
创建云主机依赖于创建网络,创建云主机还依赖于挂载云硬盘;当用户有创建云主机的操作权限时,授权鉴权中心同时认为该用户具有创建网络和挂载云硬盘的操作权限。
所述授权鉴权中心负责为用户分配权限,以及验证用户是否拥有指定资源的操作权限。
基于该微服务架构下实现级联授权的系统的实现方法,当微服务应用内置的适配器Adapter 拦截到用户操作请求时,将请求者信息、请求的操作信息发送给授权鉴权中心进行权限验证;如果用户没有权限,则进一步去元数据管理中心查询依赖于当前操作的其他操作,然后进一步将请求者信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果有权限,则认为有权限,如果仍然没有权限,则进一步根据操作依赖关系进行权限验证,直至依赖关系结束。
基于该微服务架构下实现级联授权的系统的实现方法,包括以下步骤:
第一步,用户向微服务应用发出用户操作请求,所述用户操作请求携带用户凭证;
第二步,适配器Adapter拦截并解析用户操作请求,获取用户凭证信息和请求的操作信息;第三步,适配器Adapter将解析获取的用户凭证信息和请求的操作信息发送到授权鉴权中
心,检查用户是否有所请求的操作的操作权限;
第四步,若用户有操作权限,授权鉴权中心则返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求发送到微服务应用,微服务应用执行该用户请求的相应操作即可;
第五步,若用户没有操作权限,则去元数据管理中心查询依赖于当前请求的操作的其他操作,然后进一步将用户凭证信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果用户对依赖当前操作的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
如果仍然没有权限,则进一步根据操作依赖关系查找其他操作进行权限验证,直至遍历所有依赖关系;如果用户对具有依赖关系的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
若遍历所有依赖关系都没有操作权限,则认为用户没有当前请求的操作的操作权限,授权鉴权中心返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求拦截,微服务应用不执行该用户请求的相应操作。
本技术的有益效果是:该微服务架构下实现级联授权的系统及方法,解决了微服务架构下一次请求需要跨多个微服务应用时的权限问题,授权时不再需要用户知晓操作的依赖关系,也不需要对各操作进行逐个授权,极大的提升了用户体验,降低了用户使用和操作难度。
附图说明
附图1为本技术微服务架构下实现级联授权的系统示意图。
附图2为本技术微服务架构下实现级联授权的系统的实现方法示意图。
具体实施方式
为了使本技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,
对本技术进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
该微服务架构下实现级联授权的系统,包括微服务应用,元数据管理中心和授权鉴权中心,各微服务应用均内置适配器Adapter;所述微服务应用通过内置的适配器Adapter连接到元数据管理中心和授权鉴权中心。
微服务架构下,每个相对独立的功能模块都会单独为一个微服务应用,一个大的系统会包含众多的微服务应用,少则几个,多则上百。
一个功能相对独立的功能模块,一般会做为一个微服务应用,如云主机服务做为一个独立的微服务应用;网络服务做为一个独立的微服务应用;云硬盘服务做为一个独立的微服务应用。
所述微服务应用中内置的适配器Adapter负责请求拦截,并与授权鉴权中心交互,验证请求者是否拥有所请求资源的权限。
所述元数据管理中心负责管理维护整个系统下,所有微服务应用的权限元数据信息,包括服务定义、资源类型定义、操作定义以及操作之间的依赖关系。
一般情况下,一个独立的微服务应用对应一个服务定义。
表1服务定义
表2资源类型定义
说明:一个服务下,可以定义多个资源类型。
表3操作定义系
说明:一个资源类型下,可以定义多个操作。
所述元数据管理中心保存有整个系统所有操作之间的依赖关系,当用户有某个操作的操作权限时,则认为该用户同时具有该操作依赖的其他操作的操作权限。
表4操作之间的依赖关
说明:一个操作,可以同时依赖多个其他操作。
创建云主机依赖于创建网络,创建云主机还依赖于挂载云硬盘;当用户有创建云主机
所述授权鉴权中心负责为用户分配权限,以及验证用户是否拥有指定资源的操作权限。
基于该微服务架构下实现级联授权的系统的实现方法,当微服务应用内置的适配器Adapter 拦截到用户操作请求时,将请求者信息、请求的操作信息发送给授权鉴权中心进行权限验证;如果用户没有权限,则进一步去元数据管理中心查询依赖于当前操作的其他操作,然后进一步将请求者信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果有权限,则认为有权限,如果仍然没有权限,则进一步根据操作依赖关系进行权限验证,直至依赖关系结束。
基于该微服务架构下实现级联授权的系统的实现方法,包括以下步骤:
第一步,用户向微服务应用发出用户操作请求,所述用户操作请求携带用户凭证;
第二步,适配器Adapter拦截并解析用户操作请求,获取用户凭证信息和请求的操作信息;
第三步,适配器Adapter将解析获取的用户凭证信息和请求的操作信息发送到授权鉴权中心,检查用户是否有所请求的操作的操作权限;
第四步,若用户有操作权限,授权鉴权中心则返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求发送到微服务应用,微服务应用执行该用户请求的相应操作即可;
第五步,若用户没有操作权限,则去元数据管理中心查询依赖于当前请求的操作的其他操作,然后进一步将用户凭证信息和依赖当前操作的其他操作信息发送给授权鉴权中心进行权限验证;如果用户对依赖当前操作的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
如果仍然没有权限,则进一步根据操作依赖关系查找其他操作进行权限验证,直至遍历所有依赖关系;如果用户对具有依赖关系的其他操作有操作权限,则认为用户有当前请求的操作的操作权限,回到第四步;
若遍历所有依赖关系都没有操作权限,则认为用户没有当前请求的操作的操作权限,授权鉴权中心返回反馈信息,适配器Adapter收到反馈信息后将用户操作请求拦截,微服务应用不执行该用户请求的相应操作。
以上所述的实施例,只是本技术具体实施方式的一种,本领域的技术人员在本技术技术方案范围内进行的通常变化和替换都应包含在本技术的保护范围内。