服务鉴权方法、服务鉴权装置、介质以及电子设备与流程

文档序号:18471088发布日期:2019-08-20 20:18阅读:247来源:国知局
服务鉴权方法、服务鉴权装置、介质以及电子设备与流程

本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种服务鉴权方法、服务鉴权装置、介质以及电子设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

微服务是一种云计算架构模式,将原有单体应用进行拆分,形成多个微服务之间的访问,微服务之间以松耦合的模式进行开发和部署。然而,服务之间的访问权限如何管理成为一个重要问题。

目前业界流行的授权方式包括简单授权和协议授权。简单授权一般通过白名单的形式进行授权,通过相应的白名单进行权限控制。允许白名单内的服务访问授权服务,而对于白名单外的服务则禁止访问。协议授权指服务提供方和服务调用方之间事先约定好某一协议。比较常用的是采用某一密钥信息,服务调用方每次发起请求时候,需要通过密钥信息以及一些规定的相关协议进行加密生成一定的请求头信息。服务提供方接收到请求后,解析请求头信息,并通过密钥信息以及约定好的协议进行鉴权,鉴权通过则允许服务调用方访问,否则不允许访问。



技术实现要素:

但是,简单授权的控制能力比较单一,且安全性相对比较低,简单授权方式不适合业务规则复杂的微服务应用。协议授权虽然相对安全性较高,但由于微服务之间调用频繁,协议授权增加了服务提供方和服务调用方的传输与计算压力,导致处理效率严重下降,同时,协议授权不具备通用性,不符合微服务设计的松耦合理念,如果微服务系统中需要增加一个新的服务,则要求新服务必须实现某种协议加密授权。

为此,非常需要一种改进的服务鉴权方法,以使克服上述技术问题。

在本上下文中,本发明的实施方式期望提供一种服务鉴权方法,同时具备高效率和高安全性。

在本发明实施方式的第一方面中,提供了一种服务鉴权方法,包括接收第一服务发送的第一密钥,在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌,接收第二服务发送的第二令牌,以及在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。

在本发明的一个实施例中,在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌包括读取存储的多个密钥,其中,所述多个密钥中的每个密钥对应于一个服务组,在所述第一密钥与存储的多个密钥中的任意一个密钥一致的情况下,基于所述第一密钥,确定所述第一服务所属的服务组,以及基于所述第一服务所属的服务组,生成第一令牌并分配给所述第一服务。

在本发明的另一个实施例中,所述向所述第一服务分配第一令牌包括在缓存中存在与所述第一服务对应的第一令牌的情况下,将所述第一令牌发送到所述第一服务,或者,在缓存中不存在与所述第一服务对应的第一令牌的情况下,生成所述第一令牌,并发送到所述第一服务。

在本发明的又一个实施例中,所述方法还包括接收所述第二服务发送的识别信息,基于所述识别信息,确定所述第二服务的鉴权类型。

在本发明的又一个实施例中,所述基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果包括,在所述第二服务的鉴权类型为边缘服务的情况下,向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果包括在所述第二服务的鉴权类型为外部可访问的情况下,获得所述第二服务的授权范围,若所述第一服务在所述第二服务的授权范围内,则向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果包括在所述第二服务的鉴权类型为内部可访问的情况下,确定所述第一服务与所述第二服务所属的服务组,若所述第一服务与所述第二服务属于同一服务组,则向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述确定所述第一服务与所述第二服务所属的服务组包括,基于所述第一令牌确定所述第一服务所属的第一服务组,基于第二服务发送的识别信息确定所述第二服务所属的第二服务组。

在本发明的再一个实施例中,所述方法还包括所述第二服务根据鉴权结果向所述第一服务发送反馈信息。其中,在鉴权失败的情况下,反馈请求失败的通知信息,或者,在鉴权成功的情况下,反馈第一服务所请求的服务信息。

在本发明实施方式的第二方面中,提供了一种服务鉴权装置,包括第一接收模块、分配模块、第二接收模块和反馈模块。第一接收模块,用于接收第一服务发送的第一密钥。分配模块,用于在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌。第二接收模块,用于接收第二服务发送的第二令牌。反馈模块,用于在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。

在本发明的一个实施例中,所述分配模块包括读取子模块、第一确定子模块以及生成子模块。读取子模块,用于读取存储的多个密钥,其中,所述多个密钥中的每个密钥对应于一个服务组。第一确定子模块,用于在所述第一密钥与存储的多个密钥中的任意一个密钥一致的情况下,基于所述第一密钥,确定所述第一服务所属的服务组。生成子模块,用于基于所述第一服务所属的服务组,生成第一令牌并分配给所述第一服务。

在本发明的另一个实施例中,所述分配模块用于在缓存中存在与所述第一服务对应的第一令牌的情况下,将所述第一令牌发送到所述第一服务,或者,在缓存中不存在与所述第一服务对应的第一令牌的情况下,生成所述第一令牌,并发送到所述第一服务。

在本发明的又一个实施例中,所述装置还包括第三接收模块和确定模块。第三接收模块,用于接收所述第二服务发送的识别信息。确定模块,用于基于所述识别信息,确定所述第二服务的鉴权类型。

在本发明的又一个实施例中,所述反馈模块包括第一反馈子模块,用于在所述第二服务的鉴权类型为边缘服务的情况下,向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述反馈模块包括获得子模块和第二反馈子模块。获得子模块,用于在所述第二服务的鉴权类型为外部可访问的情况下,获得所述第二服务的授权范围。第二反馈子模块,用于若所述第一服务在所述第二服务的授权范围内,则向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述反馈模块包括第二确定子模块和第三反馈子模块。第二确定子模块,用于在所述第二服务的鉴权类型为内部可访问的情况下,确定所述第一服务与所述第二服务所属的服务组。第三反馈子模块,用于若所述第一服务与所述第二服务属于同一服务组,则向所述第二服务返回鉴权成功的鉴权结果。

在本发明的又一个实施例中,所述第二确定子模块包括第一确定单元和第二确定单元。第一确定单元,用于基于所述第一令牌确定所述第一服务所属的第一服务组。第二确定单元,用于基于第二服务发送的识别信息确定所述第二服务所属的第二服务组。

在本发明实施方式的第三方面中,提供了一种介质,其上存储有可执行指令,所述指令被处理单元执行时使所述处理单元执行上述任一项所述的方法。

在本发明实施方式的第四方面中,提供了一种电子设备,包括,处理单元,以及存储单元,其上存储有可执行指令,所述指令被所述处理单元执行时使所述处理单元执行如上所述的方法。

根据本发明实施方式的服务鉴权方法、系统以及电子设备,适用于微服务之间的授权与鉴权过程,能够适应复杂的业务规则,同时保证较高的安全性。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1a和图1b示意性地示出了根据本发明实施方式的微服务的应用场景的示意图;

图2示意性地示出了根据本发明示例性实施例的服务鉴权方法的流程图;

图3示意性地示出了根据本发明示例性实施例的向第一服务分配第一令牌的流程图;

图4示意性地示出了根据本发明示例性实施例的确定第二服务的鉴权类型的流程图;

图5示意性地示出了根据本发明示例性实施例的基于所述第二服务的鉴权类型向第二服务返回鉴权结果的流程图;

图6示意性地示出了根据本发明示例性实施例的服务鉴权系统的框图;

图7示意性地示出了根据本发明示例性实施例的分配模块的框图;

图8示意性地示出了根据本发明另一示例性实施例的服务鉴权系统的框图;

图9示意性地示出了根据本发明示例性实施例的反馈模块的框图;

图10示意性地示出了根据本发明示例性实施例的第二确定子模块的框图;

图11示意性地示出了根据本发明示例性实施例的计算机可读存储介质的示意图;以及

图12示意性地示出了根据本发明示例性实施例的电子设备的方框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种服务鉴权方法、系统、介质和电子设备。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

微服务是一种云计算架构模式,将原有单体应用进行拆分,形成多个微服务之间的访问,微服务之间以松耦合的模式进行开发和部署。然而,服务之间的访问权限如何管理成为一个重要问题。为了解决这一问题,本发明示例性实施例提供了一种服务鉴权方法,通过服务认证中心对多个服务之间的令牌验证,能够适应复杂的业务规则,并保证较高的安全性。具体地,服务认证中心可以基于第一服务的请求向第一服务分配第一密钥,并基于第二服务的请求验证用于调用第二服务的调用请求中包含的第二令牌是否合法,以便第二服务基于验证结果确定是否允许该调用请求对其进行调用。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1a和图1b,图1a和图1b示意性地示出了根据本发明实施方式的微服务的应用场景的示意图。

微服务是一种云计算架构模式,将原有单体应用进行拆分,形成多个微服务之间的访问,微服务之间以松耦合的模式进行开发和部署。服务鉴权解决微服务之间访问的身份验证问题。通过服务鉴权,识别服务身份,是一种验证能否实现服务间访问的机制。

如图1a所示,在业务场景中,可以划分为多个项目,例如项目1、项目2和项目3;每个项目内可以设置至少一个服务组,例如项目1包括服务组a、服务组b、服务组c和服务组d;每个服务组内可以设置至少一个服务(即微服务),例如服务组a中可以设置服务a、服务b等。处于不同服务组甚至不同项目的服务之间的相互调用可以制定不同的规则。

如图1b所示,在该系统中,还设置有服务认证中心,用于对服务之间的相互调用提供鉴权服务。多个服务可分别与服务认证中心进行交互,例如,第一服务和第二服务可以与服务认证中心进行交互。根据本发明示例性实施例,服务认证中心提供密钥管理、服务授权以及服务鉴权功能。例如,服务认证中心可以为每一个服务组提供唯一的密钥,密钥相当于服务或服务组的身份信息,服务组内所有服务可以公用同一组密钥。密钥例如可以是一组由ak(accesskey)以及sk(secretkey)组成的密钥对。

根据本发明示例性实施例,第一服务通过服务认证中心分配的密钥去服务认证中心换取令牌,通过该令牌访问第二服务;第二服务接到访问请求后,解析令牌信息并去服务认证中心进行鉴权;服务认证中心通过验证令牌得到鉴权结果,并返回第二服务;第二服务根据鉴权结果,确定是否允许第一服务对第二服务进行调用。如图2所示意的本发明示例性实施例的方法可以实现在该服务认证中心。

需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

示例性方法

下面结合图1a和图1b的应用场景,参考图2~图5描述根据本发明示例性实施方式的服务鉴权方法。

图2示意性地示出了根据本发明示例性实施例的服务鉴权方法的流程图。

如图2所示,该方法包括步骤s210~s240。

在步骤s210,接收第一服务发送的第一密钥。根据本发明示例性实施例,第一服务在请求调用第二服务时,向服务认证中心发送第一密钥,服务认证中心接收第一服务发送的第一密钥。

在步骤s220,在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌。根据本发明示例性实施例,服务认证中心对第一密钥进行验证,如果验证通过,则向第一服务分配第一令牌,以便第一服务能够基于该第一令牌调用第二服务。

在步骤s230,接收第二服务发送的第二令牌。根据本发明示例性实施例,第二服务接收到第一服务发送的包含令牌的调用请求后,将接收到的令牌交由服务认证中心进行验证,服务认证中心接收第二服务发送的令牌作为第二令牌。在正常情况下,该第二令牌应当是服务认证中心分配给第一服务的第一令牌,如果不是,说明调用过程存在异常。

在步骤s240,在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。根据本发明示例性实施例,服务认证中心对第二令牌进行验证,确定第二令牌是否与分配给第一服务的第一令牌一致,如果一致,则返回鉴权成功的鉴权结果,如果不一致,则返回鉴权失败的鉴权结果。

根据本发明示例性实施例,在实际应用时,由于在短时间之内可能存在多个服务之间的多次调用,在步骤s240中对第二令牌的验证可以是验证第二令牌是否是服务认证中心发放出去的合法令牌,而不必验证是否是某一个确切的令牌,如果令牌来源不明,或者明显被篡改过,则不是合法令牌。

根据本发明示例性实施例,以上描述的第一服务和第二服务所执行的逻辑可以由设置在第一服务和第二服务之外的代理实现,用于解耦鉴权逻辑与业务逻辑,极大地减少了在原有业务逻辑中加入鉴权逻辑的工作量。例如,第一服务向第二服务发送调用请求时,第一服务的代理将调用请求拦截,并使用第一密钥向服务认证中心请求第一令牌,在获得第一令牌后,将第一令牌随调用请求一同发送到第二服务,第二服务接收到调用请求前,被第二服务的代理拦截,将调用请求中随附的令牌发送到服务认证中心进行验证,得到鉴权结果,如果鉴权成功,则允许调用请求到达第二服务,进行正常调用,如果鉴权失败,则不再将调用请求传递到第二服务,直接返回调用失败的结果。

下面结合图3至图5所示意的实施例进行说明。

图3示意性地示出了根据本发明示例性实施例的向第一服务分配第一令牌的流程图。

如图3所示,该方法包括步骤s310~s330。

在步骤s310,读取存储的多个密钥,其中,所述多个密钥中的每个密钥对应于一个服务组。

在步骤s320,在所述第一密钥与存储的多个密钥中的任意一个密钥一致的情况下,基于所述第一密钥,确定所述第一服务所属的服务组。

在步骤s330,基于所述第一服务所属的服务组,生成第一令牌并分配给所述第一服务。

根据本发明示例性实施例,服务认证中心向各个服务组分配密钥,第一服务向服务认证中心请求令牌时,会将第一服务所属的服务组的密钥一并发送到服务认证中心,服务认证中心根据该密钥确定第一服务是合法服务,并且能够确定第一服务所属的服务组,以便向其分配密钥。

根据本发明示例性实施例,所述向所述第一服务分配第一令牌包括在缓存中存在与所述第一服务对应的第一令牌的情况下,将所述第一令牌发送到所述第一服务,或者,在缓存中不存在与所述第一服务对应的第一令牌的情况下,生成所述第一令牌,并发送到所述第一服务。例如,在第一服务第一次发起调用请求时,服务认证中心为其生成令牌,并将令牌进行缓存。之后,当第一服务再次发起调用请求时,服务认证中心可以首先检查缓存中是否存在该令牌,如果存在,则直接返回该令牌,而无需再次生成新的令牌。

根据本发明示例性实施例,令牌可以具有有效期。可以定期检查缓存中的令牌的有效期之后,可以删除超过有效期的令牌。或者,在检查是否存在某个特定令牌时,如果存在,则继续判断该令牌的有效期。如果超过有效期,则删除该令牌并生成新的令牌,如果未超过有效期,则可以直接使用该令牌。

根据本发明示例性实施例,同一服务组中的服务可以使用同一令牌,若在第一服务发出调用请求之前,服务认证中心已经为与第一服务处于同一服务组的第三服务生成了令牌,则可以直接将该令牌分配给第一服务,无需再次生成新的令牌。

图4示意性地示出了根据本发明示例性实施例的确定第二服务的鉴权类型的流程图。

如图4所示,该方法包括步骤s410和步骤s420。

在步骤s410,接收所述第二服务发送的识别信息。

在步骤s420,基于所述识别信息,确定所述第二服务的鉴权类型。

根据本发明示例性实施例,在将第二令牌交由服务认证中心验证时,同时还可以提交第二服务的识别信息,以便服务认证中心根据该识别信息判断第二服务的鉴权类型以及第二服务所属的服务组。

图5示意性地示出了根据本发明示例性实施例的基于所述第二服务的鉴权类型向第二服务返回鉴权结果的流程图。

如图5所示,该方法可以包括步骤s510~s560。

在步骤s510,确定第二服务的鉴权类型。根据本发明示例性实施例,第二服务的鉴权类型例如可以分为边缘服务、外部可访问和内部可访问三种,下文以这三种方式分别进行介绍,但是,本领域技术人员可以根据需要设计其他的鉴权类型,本公开对此不做限定。

根据本发明示例性实施例,边缘服务允许任何服务对其进行调用。外部可访问的服务可配置授权范围。例如,可以通过白名单的方式设定授权范围,若第一服务在该白名单中,则允许调用,否则不允许调用。还可以通过一定的规则描述授权范围,当第一服务满足该规则时,则允许调用,否则不允许调用。内部可访问的服务仅允许同一服务组的服务进行调用,对于该服务组外部的任何其他服务,则不允许调用。

根据本发明示例性实施例,若第二服务的鉴权类型为边缘服务,则执行步骤s520;若第二服务的鉴权类型为外部可访问,则顺序执行步骤s530和s540;若第二服务的鉴权类型为内部可访问,则顺序执行步骤s550和s560。

在步骤s520,在所述第二服务的鉴权类型为边缘服务的情况下,向所述第二服务返回鉴权成功的鉴权结果。

在步骤s530,在所述第二服务的鉴权类型为外部可访问的情况下,获得所述第二服务的授权范围。

在步骤s540,若所述第一服务在所述第二服务的授权范围内,则向所述第二服务返回鉴权成功的鉴权结果。

在步骤s550,在所述第二服务的鉴权类型为内部可访问的情况下,确定所述第一服务与所述第二服务所属的服务组。

在步骤s560,若所述第一服务与所述第二服务属于同一服务组,则向所述第二服务返回鉴权成功的鉴权结果。

根据本发明示例性实施例,可以基于第一令牌确定第一服务所属的第一服务组。令牌例如可以设计为包含以下信息,令牌识别标识、密钥和有效期,其中,可以为不同的服务组分配不同的密钥,这样,服务认证中心可以基于令牌中的密钥确定请求服务的第一服务属于哪一个服务组。

根据本发明示例性实施例,可以基于第二服务发送的识别信息确定所述第二服务所属的第二服务组。在第二服务将第一服务的令牌交由服务认证中心鉴权时,还可以提交第二服务的识别信息或者第二服务所属的服务组的识别信息或者第二服务的密钥,在服务认证中心为不同服务组分配不同的密钥的情况下,可以根据第二服务提供的密钥确定第二服务所属的服务组。

应当了解的是,边缘服务、外部可访问或内部可访问之间相互独立,在实现时可以实现其中的一种、两种或全部三种,或者,其中的至少一种可以与其他模式结合使用。

根据本发明示例性实施例,该方法还包括所述第二服务根据鉴权结果向所述第一服务发送反馈信息。其中,在鉴权失败的情况下,反馈请求失败的通知信息,或者,在鉴权成功的情况下,反馈第一服务所请求的服务信息。

例如,在第二服务为内部可访问的服务,且第一服务与第二服务不属于同一服务组的情况下,服务认证中心向第二服务返回鉴权失败的鉴权结果,第二服务不允许第一服务对其进行调用,可以输出请求失败的通知信息,例如可以展示在显示设备中,或者可以将该通知信息反馈到第一服务,以便第一服务基于调用失败的结果决定后续的操作。

又如,在第二服务为外部可访问的服务,且第一服务在第二服务的授权范围内的情况下,服务认证中心向第二服务返回鉴权成功的鉴权结果,第二服务允许第一服务对其进行调用,可以根据调用的请求向第一服务提供服务,反馈所请求的服务信息。

该方法通过服务认证中心对多个服务之间的令牌验证,能够适应复杂的业务规则,并保证较高的安全性。

示例性系统

在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的服务鉴权系统进行说明。

图6示意性地示出了根据本发明示例性实施例的服务鉴权系统600的框图。

如图6所示,服务鉴权系统600包括第一接收模块610、分配模块620、第二接收模块630以及反馈模块640。

第一接收模块610,例如执行上文参考图2描述的操作s210,用于接收第一服务发送的第一密钥。

分配模块620,例如执行上文参考图2描述的操作s220,用于在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌。

第二接收模块630,例如执行上文参考图2描述的操作s230,用于接收第二服务发送的第二令牌。

反馈模块640,例如执行上文参考图2描述的操作s240,用于在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。

图7示意性地示出了根据本发明示例性实施例的分配模块700的框图。

如图7所示,该分配模块700包括读取子模块710、第一确定子模块720以及生成子模块730。

读取子模块710,例如执行上文参考图3描述的操作s310,用于读取存储的多个密钥,其中,所述多个密钥中的每个密钥对应于一个服务组。

第一确定子模块720,例如执行上文参考图3描述的操作s320,用于在所述第一密钥与存储的多个密钥中的任意一个密钥一致的情况下,基于所述第一密钥,确定所述第一服务所属的服务组。

生成子模块730,例如执行上文参考图3描述的操作s330,用于基于所述第一服务所属的服务组,生成第一令牌并分配给所述第一服务。

在本发明的另一个实施例中,所述分配模块用于在缓存中存在与所述第一服务对应的第一令牌的情况下,将所述第一令牌发送到所述第一服务,或者,在缓存中不存在与所述第一服务对应的第一令牌的情况下,生成所述第一令牌,并发送到所述第一服务。

图8示意性地示出了根据本发明另一示例性实施例的服务鉴权系统800的框图。

如图8所示,该服务鉴权系统800在图6所示意的实施例的基础上,还可以包括第三接收模块810和确定模块820。

第三接收模块810,例如执行上文参考图4描述的操作s410,用于接收所述第二服务发送的识别信息。

确定模块820,例如执行上文参考图4描述的操作s420,用于基于所述识别信息,确定所述第二服务的鉴权类型。

图9示意性地示出了根据本发明示例性实施例的反馈模块900的框图。

如图9所示,该反馈模块900可以包括第一反馈子模块911、获得子模块921、第二反馈子模块922、第二确定子模块931以及第三反馈子模块932中的一种或多种。

第一反馈子模块911,例如执行上文参考图5描述的操作s520,用于在所述第二服务的鉴权类型为边缘服务的情况下,向所述第二服务返回鉴权成功的鉴权结果。

获得子模块921,例如执行上文参考图5描述的操作s530,用于在所述第二服务的鉴权类型为外部可访问的情况下,获得所述第二服务的授权范围。

第二反馈子模块922,例如执行上文参考图5描述的操作s540,用于若所述第一服务在所述第二服务的授权范围内,则向所述第二服务返回鉴权成功的鉴权结果。

第二确定子模块931,例如执行上文参考图5描述的操作s550,用于在所述第二服务的鉴权类型为内部可访问的情况下,确定所述第一服务与所述第二服务所属的服务组。

第三反馈子模块932,例如执行上文参考图5描述的操作s560,用于若所述第一服务与所述第二服务属于同一服务组,则向所述第二服务返回鉴权成功的鉴权结果。

图10示意性地示出了根据本发明示例性实施例的第二确定子模块1000的框图。

如图10所示,该第二确定子模块1000包括第一确定单元1010和第二确定单元1020。

第一确定单元1010,用于基于所述第一令牌确定所述第一服务所属的第一服务组。

第二确定单元1020,用于基于第二服务发送的识别信息确定所述第二服务所属的第二服务组。

根据本发明示例性实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本发明示例性实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,第一接收模块610、分配模块620、第二接收模块630、反馈模块540、读取子模块710、第一确定子模块720、生成子模块730、第三接收模块810、确定模块820、第一反馈子模块911、获得子模块921、第二反馈子模块922、第二确定子模块931、第三反馈子模块932、第一确定单元1010以及第二确定单元1020中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块610、分配模块620、第二接收模块630、反馈模块640、读取子模块710、第一确定子模块720、生成子模块730、第三接收模块810、确定模块820、第一反馈子模块911、获得子模块921、第二反馈子模块922、第二确定子模块931、第三反馈子模块932、第一确定单元1010以及第二确定单元1020中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块610、分配模块620、第二接收模块630、反馈模块640、读取子模块710、第一确定子模块720、生成子模块730、第三接收模块810、确定模块820、第一反馈子模块911、获得子模块921、第二反馈子模块922、第二确定子模块931、第三反馈子模块932、第一确定单元1010以及第二确定单元1020中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

示例性介质

在介绍了本发明示例性实施方式的系统之后,接下来,参考图11对本发明示例性实施方式的一种计算机可读存储介质进行说明。本发明示例性实施方式提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令被处理单元执行时使所述处理单元执行上文所述的方法。

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于图表的数据处理方法中的步骤,例如,所述电子设备可以执行如图2中所示的步骤s210,接收第一服务发送的第一密钥;步骤s220,在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌;步骤s230,接收第二服务发送的第二令牌;步骤s240,在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图11所示,描述了根据本发明的实施方式的服务鉴权程序产品1100,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如java,c++等,还包括常规的过程式程序设计语言——诸如“c”,语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)一连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。

示例性电子设备

在介绍了本发明示例性实施方式的方法、系统和介质之后,接下来,参考图12对本发明示例性实施方式的服务鉴权电子设备进行说明。

本发明实施例还提供了一种服务鉴权电子设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明的服务鉴权电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的服务鉴权方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤s210,接收第一服务发送的第一密钥;步骤s220,在对所述第一密钥验证通过的情况下,向所述第一服务分配第一令牌;步骤s230,接收第二服务发送的第二令牌;步骤s240,在所述第二令牌与第一令牌一致的情况下,基于所述第二服务的鉴权类型,向所述第二服务返回鉴权结果。

下面参照图12来描述根据本发明的这种实施方式的服务鉴权电子设备1200。如图12所示的电子设备1200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图12所示,电子设备1200以通用电子设备的形式表现。电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230。

总线1230包括数据总线、地址总线和控制总线。

存储单元1220可以包括易失性存储器,例如随机存取存储器(ram)1221和/或高速缓存存储器1222,还可以进一步包括只读存储器(rom)1223。

存储单元1220还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

电子设备1200也可以与一个或多个外部设备1240(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了服务鉴权系统的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1