微服务架构下实现级联授权的系统及方法与相关技术

合集下载

微服务架构的设计和实现方法

微服务架构的设计和实现方法

微服务架构的设计和实现方法随着互联网的蓬勃发展,越来越多的企业开始采用微服务架构来实现业务。

微服务架构是一种面向服务的架构,它将应用程序划分为一系列小型服务,每个服务都可以独立部署和维护,通过内部通信来协同工作,从而实现高可用性、可扩展性和可维护性。

本文将介绍微服务架构的设计和实现方法,包括服务划分、服务通信、服务注册和发现、负载均衡以及容错处理等方面。

一、服务划分微服务架构的核心思想是将应用程序拆分为一系列小型服务,每个服务都专注于一项特定的业务功能。

因此,正确的服务划分对于构建可扩展、可维护的微服务架构至关重要。

服务划分的原则包括:单一职责原则、高内聚低耦合原则、业务驱动原则、自治性原则和可替换性原则。

在进行服务划分时,应该考虑以下几个方面:1.功能划分:将应用程序按照功能进行划分,每个服务负责一个业务功能。

2.数据划分:将应用程序按照数据进行划分,每个服务负责一个数据域。

3.流程划分:将应用程序按照流程进行划分,每个服务负责一个流程。

二、服务通信服务通信是微服务架构的关键,它涉及到多个服务之间的通信和协作。

常见的服务通信方式包括同步调用、异步调用和事件驱动。

在进行服务通信时,应考虑以下几个方面:1.协议选择:选择适合业务需求的通信协议,如HTTP、TCP、UDP等。

2.编解码方式:选择合适的编解码方式,如JSON、XML、Protobuf等。

3.异常处理:在进行服务通信时,可能会出现各种异常情况,需要进行有效的异常处理。

三、服务注册和发现服务注册和发现是微服务架构中的一个核心组件,它用于管理和查找服务。

通常情况下,每个服务都需要向注册中心进行注册,以便其他服务可以发现它并与之通信。

常见的服务发现工具包括Zookeeper、Eureka和Consul等。

在进行服务注册和发现时,应考虑以下几个方面:1.注册信息:确定服务需要注册的信息,如服务名称、版本号、IP地址等。

2.发现机制:选择适合项目的服务发现机制,如客户端发现、服务器发现、单点负载均衡等。

微服务架构设计与实现

微服务架构设计与实现

微服务架构设计与实现随着互联网的不断发展,应用系统已经不再简单地局限于单一的业务场景,而是越来越复杂多样化,因此,如何构建一个可靠、高效、可扩展、易维护的应用系统,已成为当前研究的热点之一。

在这种情况下,微服务架构就应运而生,因其具有高可伸缩性、代码的独立性、解耦性、可维护性以及易于升级等特点。

一、什么是微服务架构微服务架构是一种将单体应用拆分成小型、轻量级的服务的架构模式。

每个微服务可以独立运行,通过应用编程接口API进行交互。

每个微服务可以由不同的技术栈实现,并且可以升级和部署。

通过将应用程序拆分成更小的部分并将其部署到独立的服务器上,微服务能够更好地满足业务需求。

二、微服务架构的优势1.可伸缩性微服务架构采用组件化的方式,每个微服务都可独立部署,可以根据业务需求对其进行弹性扩展。

这样,可以根据系统的实际负载情况来增减服务器的数量,从而保证服务的可用性和高效性。

2.代码的独立性由于每个微服务的代码都是相互独立的,因此,它们可以由不同的开发团队独立开发和部署,这为不同的业务线提供了更灵活的开发方式,同时,也方便了团队协作和后期维护。

3.解耦性在微服务架构中,每个微服务都是相互独立的,这就意味着,如果其中一个服务发生了故障,它不会对其它服务造成影响,这降低了系统出现故障的风险。

同时,因为不同的服务之间相互独立,各个服务之间的耦合性也会被大大降低,这样就可以更加方便地编写和维护应用程序。

4.可维护性在微服务架构中,每个微服务都处于一个独立的进程中。

这使得软件的升级和部署变得非常容易。

当一个服务需要更新时,你只需要更新该服务的代码,然后在无缝地替换实例即可,而不会影响到其他服务的运行。

5.易于升级一个成熟的微服务架构应该可以轻松进行升级,这意味着你可以使用高版本的不同技术栈来替换旧技术栈,对于企业和应用系统来说,这是非常重要的,因为应用系统需要不断地进行技术升级来保持其竞争力。

三、微服务架构的实现要实现微服务架构,需要考虑以下要素:1.服务注册与发现在微服务架构中,每个服务都是一个独立的单元,因此需要一个服务注册中心来管理所有的服务。

基于云计算技术的微服务架构设计与实现

基于云计算技术的微服务架构设计与实现

基于云计算技术的微服务架构设计与实现近年来,微服务架构在软件开发领域内越来越受到关注。

它是一种将软件系统拆分为多个小型服务的架构,每个服务都独立运行,具备高度的可扩展性和灵活性。

然而,在实际应用中,如何有效地实现微服务架构并保证系统的可靠性与稳定性,一直是亟待解决的问题。

本文将探讨如何利用云计算技术来进行微服务架构的设计与实现。

一、云计算与微服务云计算是一种基于网络的计算模式,它提供了一种将数据和应用程序存储在远程服务器上的方式,并通过互联网进行访问和使用的方式。

云计算的出现极大地推动了微服务架构的发展,为其提供了强大的支撑。

首先,云计算架构具备高度的可扩展性和可用性。

云服务提供商可以通过优化硬件和网络设施,确保其能够处理任意类型和数量的应用程序,并灵活地对服务器进行扩展。

这使得微服务架构可以根据不同的业务需求随时调整和扩展服务。

其次,云计算可以为微服务架构提供高水平的安全性。

云供应商可以根据当前的安全标准让系统加强安全性。

而微服务架构也可以很好地应用安全策略,从而降低系统的攻击和错误率。

最后,在云计算中,微服务架构所需的硬件、软件、维护和安全性等方面的开销可以被大大降低。

因为云计算采用了共享的硬件和软件资源,最大限度地减少了开发和维护微服务架构的成本。

二、基于云计算的微服务架构实现云计算技术为微服务架构提供了无限的可能性,这里我们将重点讨论利用云计算技术的微服务架构实现的具体方案。

1、基本架构微服务架构的基本架构包括:管理单元:用于控制整个架构,管理和监控所有的微服务实例。

API网关:用于消费者和微服务之间的通信,管理和过滤客户端请求,确保微服务之间的异步通信。

微服务实例:包括独立运行的微服务模块,每个模块具备独立的扩展、测试、发布和管理功能。

负载均衡器:负责将负载分配到不同的微服务实例上,以确保高性能和稳定性。

数据库:用于存储应用程序数据和信息。

2、实现步骤在具体实现中,我们需要根据上述基本架构,完成以下几个步骤:环境建设:选择一家高质量的云服务提供商以确保可靠的基础架构和极度的可用性。

微服务架构设计与实现

微服务架构设计与实现

微服务架构设计与实现微服务架构是一种允许开发人员将一个大型应用程序拆分为多个小型服务的架构设计模式。

每个小型服务都可以独立部署和扩展,并与其他服务通过API进行通信。

随着分布式计算和云计算的普及,微服务架构成为现代应用程序开发的一种热门选择。

本文将详细介绍微服务架构的设计和实现,包括以下几个方面。

1.什么是微服务架构?- 解释微服务架构的基本概念和目标。

- 强调微服务架构与传统单体应用架构的不同之处。

- 提出为什么微服务架构适合现代应用程序开发的论点。

2.微服务架构的优势- 分析微服务架构相对于单体架构的优势。

- 强调微服务架构的可伸缩性和容错性。

- 讨论微服务架构对团队组织和开发流程的影响。

3.微服务架构的关键组件- 介绍微服务架构的核心组件,如服务发现,负载均衡,熔断器等。

- 解释每个组件的作用和实现原理。

- 探讨如何选择和配置适合自己应用程序需求的组件。

4.微服务架构的通信机制- 讨论微服务架构中服务之间的通信方式,如同步和异步通信。

- 强调API的重要性,以及如何设计和管理API。

- 探讨消息队列和事件驱动架构对微服务通信的增强作用。

5.微服务架构的部署和运维- 探讨微服务架构的部署策略,如容器化和自动化部署。

- 强调监控和日志记录在微服务架构运维中的重要性。

- 讨论如何处理故障和故障恢复。

6.微服务架构的挑战和解决方案- 分析微服务架构可能面临的挑战,如服务之间的依赖性和性能问题。

- 提出相应的解决方案,如服务网关和缓存机制。

- 潜在的安全问题和解决方案。

7.微服务架构的最佳实践- 探讨如何设计和实现可扩展,可靠和易于维护的微服务架构。

- 强调测试的重要性和如何实施有效的测试策略。

- 讨论持续集成和持续交付在微服务架构中的应用。

8.微服务架构的案例研究- 分析一些成功采用微服务架构的实际案例,如Netflix和Uber。

- 探讨这些案例中的设计和实现要点。

- 强调如何从这些案例中借鉴经验,应用于自己的应用程序开发。

面向企业级应用的微服务架构设计与实现

面向企业级应用的微服务架构设计与实现

面向企业级应用的微服务架构设计与实现微服务架构设计是当前企业级应用开发中越来越受到关注和应用的技术,它将整个应用拆分为一系列小型、独立的服务,每个服务都具有特定的功能,通过互相协作完成复杂的业务需求。

本文将就面向企业级应用的微服务架构设计与实现进行探讨。

一、微服务架构设计原则1. 单一职责原则:每个微服务都应该只关注于单个业务功能,并尽可能小而独立。

2. 轻量级通信协议:选择性能高、轻量级的通信协议,例如RESTful API或消息队列,以实现微服务之间的通信。

3. 去中心化管理:避免单一的中心化管理,将自治权下放到每个微服务中,以实现灵活性和可扩展性。

4. 弹性设计:微服务架构需要能够弹性地扩展和缩小规模,以应对不同负载和并发需求。

5. 容错性设计:每个微服务应该是独立可运行的,即使某个微服务发生故障,也不影响整个系统的正常运行。

二、微服务架构实现步骤1. 领域分析:通过对业务需求的深入分析,将整个应用划分为一个个的子域,每个子域对应一个微服务。

2. 服务划分:确定每个微服务的边界和功能,在划分时需要遵循单一职责原则,确保微服务的内聚性和独立性。

3. 数据分离:根据每个微服务的业务逻辑,将相关数据分离到对应的微服务中,确保每个微服务具有独立的数据存储和管理。

4. 服务接口定义:定义每个微服务的接口和协议,确保微服务之间能够进行通信和交互。

5. 服务实现:每个微服务的实现可以选择不同的技术栈和编程语言,根据具体需求进行选择和实现。

6. 通信机制:通过合适的通信机制,例如RESTful API或消息队列,实现微服务之间的通信和数据交换。

7. 配置管理:微服务之间可能存在一些共享的配置信息,需要进行集中管理和动态更新,确保系统的一致性和可扩展性。

8. 监控和日志:在微服务架构中,需要建立监控和日志系统,对每个微服务的运行状态进行监测和记录,以便及时发现和解决问题。

9. 安全性设计:考虑系统的安全性需求,对微服务进行访问授权、数据加密和安全检测等措施,确保系统的安全性。

基于SpringCloud的微服务架构设计与实现

基于SpringCloud的微服务架构设计与实现

基于SpringCloud的微服务架构设计与实现一、引言随着互联网的快速发展,传统的单体应用已经无法满足当今复杂多变的业务需求。

微服务架构作为一种新型的架构设计思想,逐渐成为了各大互联网企业的首选。

而SpringCloud作为目前最流行的微服务框架之一,提供了丰富的组件和解决方案,帮助开发者快速搭建和部署微服务架构。

本文将深入探讨基于SpringCloud的微服务架构设计与实现。

二、微服务架构概述微服务架构是一种以小型、独立部署的服务为基础,通过轻量级通信机制协同工作的架构风格。

相比于传统的单体应用,微服务架构具有更好的可扩展性、灵活性和可维护性。

在微服务架构中,每个功能模块被拆分成一个个独立的服务单元,各个服务之间通过API进行通信,实现了高内聚、低耦合的设计。

三、SpringCloud简介SpringCloud是基于SpringBoot的开源微服务框架,提供了一系列开箱即用的解决方案,如服务注册与发现、负载均衡、断路器、网关等。

通过SpringCloud,开发者可以快速搭建起一个完整的微服务架构系统。

SpringCloud致力于解决微服务架构中常见的分布式系统问题,为开发者提供了一站式解决方案。

四、微服务架构设计原则在设计基于SpringCloud的微服务架构时,需要遵循一些设计原则,以确保系统具有良好的可扩展性和稳定性。

以下是一些常见的微服务架构设计原则: 1. 单一职责原则:每个微服务应该只关注一个特定领域或功能。

2. 高内聚低耦合:各个微服务之间应该尽量减少依赖,降低耦合度。

3. 服务自治:每个微服务应该具有独立部署和运行能力。

4. 弹性设计:引入断路器等机制,保证系统在面对异常情况时能够正常运行。

5. 分布式数据管理:采用分布式事务等方式来管理数据一致性。

五、基于SpringCloud的微服务架构实现步骤1. 项目初始化首先,我们需要创建一个SpringBoot项目,并引入SpringCloud 相关依赖。

SpringCloud微服务架构设计与实现

SpringCloud微服务架构设计与实现

SpringCloud微服务架构设计与实现微服务是一种架构风格,它将大型应用程序拆分为一组较小的、松耦合的服务。

这些服务可以独立开发、部署,通过轻量级通信机制协同工作,从而增强了系统的可伸缩性、可维护性和可测试性。

SpringCloud是一套为开发者提供构建分布式应用程序的解决方案。

本文将重点探讨SpringCloud微服务架构的设计与实现。

一、微服务架构概述随着云计算的快速发展和应用的广泛普及,传统的单体应用架构已经无法满足日益增长的用户需求。

微服务架构的出现解决了传统架构的诸多痛点,使得开发者可以更好地应对快速迭代、复杂业务以及大规模并发等挑战。

二、SpringCloud微服务架构的核心组件SpringCloud由多个项目组成,提供了各种各样的功能来支持微服务架构的设计与实现。

其中,核心组件包括:1.服务注册与发现:通过服务注册与发现机制,实现了服务的自动发现和负载均衡。

Eureka和Consul是SpringCloud中常用的服务注册与发现工具。

2.服务调用:SpringCloud使用Ribbon和Feign来实现服务的调用和负载均衡,开发者可以方便地实现服务间的通信。

3.服务容错:通过断路器模式,SpringCloud提供了熔断、降级和限流的功能,达到了提高系统的容错能力和稳定性的目的。

4.配置中心:SpringCloud的配置中心允许开发者集中管理应用程序的配置信息,并且支持实时刷新配置,提高了系统的可维护性和可扩展性。

5.消息队列:SpringCloud使用消息队列来实现服务间的异步通信。

常用的消息队列包括RabbitMQ和Kafka。

三、SpringCloud微服务架构的设计原则在设计与实现SpringCloud微服务架构时,应遵循以下原则:1.单一职责原则:每个微服务只负责一项特定的业务功能,保持职责的清晰性和单一性。

2.松耦合原则:微服务之间通过轻量级通信机制进行通信,解除依赖关系,从而实现松耦合。

微服务架构下的分布式系统设计与实现

微服务架构下的分布式系统设计与实现

微服务架构下的分布式系统设计与实现一、引言随着互联网的快速发展,传统的单体应用已经无法满足日益增长的用户需求和复杂的业务场景。

微服务架构作为一种新型的架构风格,逐渐成为了许多企业和组织选择的首要方案。

在微服务架构下,分布式系统设计与实现变得尤为重要,本文将深入探讨微服务架构下的分布式系统设计与实现。

二、微服务架构概述微服务架构是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,并通过轻量级机制(通常是HTTP API)进行通信。

微服务架构具有高内聚、松耦合、易于扩展和部署等优点,能够更好地应对复杂业务场景和快速变化的需求。

三、分布式系统设计原则在设计微服务架构下的分布式系统时,需要遵循一些重要的原则:1. 服务自治性:每个微服务都应该具有独立性和自治性,能够独立部署、扩展和更新。

2. 服务发现与治理:采用合适的服务注册与发现机制,以及负载均衡、熔断等治理手段,确保系统的稳定性和可靠性。

3. 数据一致性:保证分布式系统中数据的一致性,可以采用分布式事务、事件驱动等方式来解决。

4. 容错与恢复:考虑系统中可能出现的故障情况,实现容错机制和故障恢复策略。

5. 监控与追踪:建立完善的监控系统,对系统进行实时监控和追踪,及时发现和解决问题。

四、分布式系统设计模式在微服务架构下,常用的分布式系统设计模式包括但不限于: 1. API 网关模式:通过一个统一的入口为客户端提供访问多个微服务的接口,并进行路由、认证、限流等操作。

2. 消息队列模式:通过消息队列实现微服务之间的异步通信,提高系统的可伸缩性和解耦性。

3. CQRS 模式:将读写操作分离,提高系统的性能和灵活性。

4.Saga 模式:通过事务补偿机制来保证分布式事务的一致性。

5.Event Sourcing 模式:将所有状态变更存储为事件,并通过事件溯源来重建对象状态。

五、分布式系统实现技术在实现微服务架构下的分布式系统时,可以选择合适的技术栈来支撑: 1. 容器化技术:如Docker、Kubernetes等,实现应用程序的快速部署和扩展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本技术特别涉及一种微服务架构下实现级联授权的系统及方法。该微服务架构下实现级联授权的系统,包括微服务应用,元数据管理中心和授权鉴权中心,各微服务应用均内置适配器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操作定义系

相关文档
最新文档