CN109743163A - 微服务架构中的权限认证方法、装置及*** - Google Patents

微服务架构中的权限认证方法、装置及*** Download PDF

Info

Publication number
CN109743163A
CN109743163A CN201910005314.3A CN201910005314A CN109743163A CN 109743163 A CN109743163 A CN 109743163A CN 201910005314 A CN201910005314 A CN 201910005314A CN 109743163 A CN109743163 A CN 109743163A
Authority
CN
China
Prior art keywords
token
request
carrying
micro services
login 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
Application number
CN201910005314.3A
Other languages
English (en)
Inventor
张崇铭
李�浩
邱慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Best Faith Racket (beijing) Mdt Infotech Ltd
Original Assignee
Best Faith Racket (beijing) Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Best Faith Racket (beijing) Mdt Infotech Ltd filed Critical Best Faith Racket (beijing) Mdt Infotech Ltd
Priority to CN201910005314.3A priority Critical patent/CN109743163A/zh
Publication of CN109743163A publication Critical patent/CN109743163A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种微服务架构中的权限认证方法、装置及***,所述方法包括:接收资源服务器发送的验证请求,验证请求包括承载令牌,承载令牌用于指示登录用户的一次登录操作;当存储有承载令牌时,向资源服务器发送登录用户的权限信息,权限信息用于指示登录用户拥有的权限;当没有存储承载令牌时,向资源服务器返回无效响应,无效响应用于指示承载令牌无效。本申请中,承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。

Description

微服务架构中的权限认证方法、装置及***
技术领域
本申请涉及微服务技术领域,特别涉及一种微服务架构中的权限认证方法、装置及***。
背景技术
随着近年来互联网行业的快速发展,在***规模和项目开发人员都越发扩大的同时,传统单体架构耦合度高、代码量大、难以维护和快速部署等问题都复现出来。微服务架构的原理是将***拆分为多个可以独立开发,设计,运行和运维的服务,每个服务可以独立部署并且相互隔离,服务之间通过应用程序编程接口(Application ProgrammingInterface,API)调用。
在微服务架构中,当多个服务被调用来满足一个用户的请求时,用户无需向每个服务都单独出示各自凭证。利用开放授权(Open Authorization,OAUTH)协议,例如OAUTH2.0,可以实现多个服务的统一认证授权。通过向OAUTH服务发送用户名和密码进行认证和授权,获得承载令牌(Bearer Token)。这个承载令牌是受其他服务信任的,后续访问中可以通过这个承载令牌来进行权限的验证。具体的,如图1A所示,用户安装有客户端的终端101上登录。微服务网关102向部署有OAUTH服务的认证服务器103发送令牌请求。认证服务器103向微服务网关102返回一个承载令牌以及权限信息。其中,权限信息指示了该用户对各个服务拥有的权限。在微服务网关102调用服务时,在发送给资源服务器104的请求中添加经过加密的承载令牌和权限信息。资源服务器104对请求中经过加密的承载令牌和权限信息进行解密,若解密出承载令牌则表示本次请求的用户是经过验证的,并能根据解密出的用户信息确定用户的权限。
其中,由于微服务网关和资源服务器之间通过相同的密钥进行承载令牌的验证,因此,资源服务器无需向认证服务器请求验证承载令牌的有效性。认证服务器也无需存储承载令牌。因为认证服务器并不存储承载令牌,并且不参与承载令牌的验证,所以承载令牌一旦发出,认证服务器无法对承载令牌进行维护和处理,例如提前删除承载令牌、更新承载令牌、重置承载令牌的有效时间等等,从而降低了微服务***的运行效率。
发明内容
本申请提供了一种微服务架构中的权限认证方法、装置及***,可用于解决在现有技术中承载令牌一旦发出,认证服务器无法对承载令牌进行维护和处理,从而降低了微服务***的运行效率的问题。
第一方面,本申请提供一种微服务架构中的权限认证方法,所述方法包括:
接收资源服务器发送的验证请求,所述验证请求包括承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
当存储有所述承载令牌时,向所述资源服务器发送所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
当没有存储所述承载令牌时,向所述资源服务器返回无效响应,所述无效响应用于指示所述承载令牌无效,以使得所述资源服务器拒绝微服务网关的调用。
可选地,所述接收资源服务器发送的验证请求之前,还包括:
接收所述微服务网关发送的令牌请求,所述令牌请求包括所述登录用户的用户名和密码;
当确定所述用户名和所述密码正确时,生成所述承载令牌,并对应存储所述承载令牌和所述登录用户的权限信息;
向所述微服务网关发送所述承载令牌。
可选地,所述当确定所述用户名和所述密码正确时,生成承载令牌,包括:
当存储有所述用户名时,获取所述用户名对应的预设密码;
当所述预设密码和所述密码相同时,确定所述用户名和所述密码正确;
获取所述登录用户的权限信息;
生成与所述权限信息对应的承载令牌。
可选地,所述方法还包括:
当生成所述承载令牌时,启动定时器;
当所述定时器计时达到第一预设时长时,删除所述承载令牌。
可选地,所述向所述微服务网关发送所述承载令牌之后,还包括:
接收所述微服务网关发送的延期请求,所述延期请求中包括所述承载令牌;
根据所述延期请求,重置所述承载令牌对应的定时器。
可选地,所述向所述微服务网关发送所述承载令牌之后,还包括:
当所述承载令牌对应的权限信息发生变化时,删除所述承载令牌。
可选地,所述接收微服务网关发送的令牌请求之后,还包括:
当确定所述用户名和所述密码正确时,生成与所述登录用户对应的更新令牌,并将所述更新令牌发送给所述微服务网关;
接收所述微服务网关发送的更新请求,所述更新请求中包括所述更新令牌;
根据所述更新令牌,生成更新后的承载令牌。
第二方面,本申请提供一种微服务架构中的权限认证方法,所述方法包括:
接收终端发送的登录请求,所述登录请求包括登录用户的用户名和密码;
向认证服务器发送令牌请求,所述令牌请求包括所述用户名和所述密码,以使得所述认证服务器根据所述用户名和所述密码生成承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
接收所述认证服务器发送的所述承载令牌;
当调用一个服务时,向部署有所述服务的资源服务器发送调用请求,所述调用请求包括所述承载令牌,以使得所述资源服务器根据所述承载令牌,向所述认证服务器请求所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
可选地,所述接收所述认证服务器发送的所述承载令牌之后,还包括:
若检测到所述登录用户在所述终端上的操作,则向所述认证服务器发送延期请求,所述延期请求用于指示所述认证服务器重置所述承载令牌对应的定时器,所述定时器用于当计时达到第一预设时长时,指示所述认证服务器删除所述承载令牌。
可选地,所述向认证服务器发送令牌请求之后,还包括:
接收所述认证服务器发送的与所述登录用户对应的更新令牌;
当接收到所述终端发送的登录请求时,向所述认证服务器发送更新请求,以使得所述认证服务器生成更新后的承载令牌,所述更新请求中包括所述更新令牌;
接收所述认证服务器发送的所述更新后的承载令牌。
第三方面,本申请提供一种微服务架构中的权限认证方法,所述方法包括:
接收微服务网关发送的调用请求,所述调用请求包括承载令牌,所述承载令牌用于指示一个登录用户的一次登录操作;
向认证服务器发送验证请求,所述验证请求包括所述承载令牌;
当所述认证服务器存储有所述承载令牌时,接收所述认证服务器发送的所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
根据所述权限信息,检测所述登录用户是否具备调用所述调用请求所请求的服务的权限;
若所述登录用户具备调用所述服务的权限,则调用所述服务,完成所述调用请求。
第四方面,本申请提供一种微服务架构中的权限认证装置,所述装置包括:
第一接收模块,用于接收资源服务器发送的验证请求,所述验证请求包括承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
第一发送模块,用于当存储有所述承载令牌时,向所述资源服务器发送所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
所述第一发送模块,还用于当没有存储所述承载令牌时,向所述资源服务器返回无效响应,所述无效响应用于指示所述承载令牌无效,以使得所述资源服务器拒绝微服务网关的调用。
第五方面,本申请提供一种微服务架构中的权限认证装置,所述装置包括:
第二接收模块,用于接收终端发送的登录请求,所述登录请求包括登录用户的用户名和密码;
令牌请求模块,用于向认证服务器发送令牌请求,所述令牌请求包括所述用户名和所述密码,以使得所述认证服务器根据所述用户名和所述密码生成承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
所述第二接收模块,还用于接收所述认证服务器发送的所述承载令牌;
服务调用模块,用于当调用一个服务时,向部署有所述服务的资源服务器发送调用请求,所述调用请求包括所述承载令牌,以使得所述资源服务器根据所述承载令牌,向所述认证服务器请求所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
第六方面,本申请提供一种微服务架构中的权限认证装置,所述装置包括:
第三接收模块,用于接收微服务网关发送的调用请求,所述调用请求包括承载令牌,所述承载令牌用于指示一个登录用户的一次登录操作;
验证请求模块,用于向认证服务器发送验证请求,所述验证请求包括所述承载令牌;
所述第三接收模块,还用于当所述认证服务器存储有所述承载令牌时,接收所述认证服务器发送的所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
权限检测模块,用于根据所述权限信息,检测所述登录用户是否具备调用所述调用请求所请求的服务的权限;
请求响应模块,用于当所述登录用户具备调用所述服务的权限时,调用所述服务,完成所述调用请求。
第七方面,本申请提供一种微服务架构中的权限认证***,所述***包括微服务网关、认证服务器和至少一个资源服务器;所述认证服务器包括如上述第四方面所述的装置,所述微服务网关包括如上述第五方面所述的装置,所述资源服务器包括如上述第六方面所述的装置。
在本申请中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是现有技术中的通过相同密钥验证承载令牌的方法的示意图;
图1B是本申请一个实施例提供的网络架构的示意图;
图2是本申请一个实施例提供的微服务架构中的权限认证方法的流程图;
图3是本申请另一个实施例提供的微服务架构中的权限认证方法的流程图;
图4是本申请另一个实施例提供的微服务架构中的权限认证方法的流程图;
图5是本申请一个实施例提供的微服务架构中的权限认证方法的流程示意图;
图6是本申请一个实施例提供的微服务架构中的权限认证装置的示意性框图;
图7是本申请另一个实施例提供的微服务架构中的权限认证装置的示意性框图;
图8是本申请另一个实施例提供的微服务架构中的权限认证装置的示意性框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例描述的网络架构是为了更加清楚地说明本申请实施例的技术方案,并不构成对本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新事务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面首先结合图1B对本申请实施例适用的可能的网络架构进行介绍。
该网络架构包括:终端101,微服务网关102,认证服务器103和至少一个资源服务器104。微服务网关102与多个终端101建立通信连接。同时,微服务网关102也与多个资源服务器104建立有通信连接。认证服务器103与微服务网关102,以及各个资源服务器104之间建立有通信连接。
终端101是部署有微服务架构下的客户端的终端,可以是手机、平板电脑、电子书阅读器、多媒体播放设备、可穿戴设备、膝上型便携计算机等电子设备。当用户需要使用微服务架构下的服务时,需要在终端101的客户端上完成登录操作。进行登录操作的用户的即为登录用户。
微服务网关102也可以称为服务路由或网关路由。微服务网关102用于处理与调用资源服务器104上部署的各个服务相关的事务。
认证服务器103是用于处理在微服务架构下与用户权限、服务认证相关的事务的服务器,部署有OAUTH服务。认证服务器103存储有各个登录用户的权限信息。可选地,认证服务器103可以用于运行时过滤规则的注入,如灰度发布,以及负载均衡。
资源服务器104是指部署有微服务架构下的服务与服务资源的服务器。一个资源服务器104中至少部署有一个服务。一个服务也可以部署在包括多个资源服务器104的分布式服务集群中。
可选地,上述网络架构中还包括注册服务器。注册服务器用于向微服务网关102和认证服务器103提供各个服务的服务信息,例如互联网协议(Internet Protocol,IP)地址、端口号、服务名称等。资源服务器104启动一个服务时,向注册服务器注册该服务的服务信息,并在启动后,周期性地向注册服务器发送心跳信号,以通知注册服务器该服务在正常运行。认证服务器103和微服务网关102可以通过注册服务器获取各个服务的服务信息。
请参考图2,其示出了本申请一个实施例提供的一种微服务架构中的权限认证方法的流程图。该方法可以应用于图1B所示的网络架构中的认证服务器。该方法可以包括如下几个步骤。
步骤S201,接收资源服务器发送的验证请求。
在微服务架构下,登录用户登录终端上的客户端后,可以使用各个服务来处理业务。当登录用户使用一个服务时,终端根据登录用户的操作向微服务网关发送一个服务请求。该服务请求中包括一个服务标识。服务标识唯一指示一个服务,即登录用户使用的服务。微服务网关接收到上述服务请求后,根据服务标识确定登录用户使用的服务,并向部署该服务的资源服务器发送调用请求,以调用资源服务器的服务满足用户的服务请求。
示例性地,登录用户使用一个车辆信息查询服务,查询一辆汽车的汽车信息。终端向微服务网关发送一个服务请求。该服务请求中包括指示上述车辆信息查询服务的服务标识。微服务网关根据该服务标识,确定登录用户需要使用的服务为车辆信息查询服务,并向部署了该车辆信息查询服务的资源服务器发送调用请求,以调用资源服务器通过车辆信息查询服务查询上述汽车的汽车信息。
在微服务架构下,资源服务器在响应微服务网关的调用请求前,需要先确定调用请求的合法性,以及对应的登录用户是否具备调用服务的权限。
在本申请实施例中,资源服务器会向认证服务器发送验证请求,以请求认证服务器对调用请求的合法性进行验证。验证调用请求的合法性实际是验证承载令牌的有效性,因此,验证请求中包括承载令牌。承载令牌用于指示一个登录用户的一次登录操作。在登录用户登录时,认证服务器会对该用户的信息进行检测,例如用户名,密码和授权码(authorization_code)等等。对于通过检测的登录用户,认证服务器会生成并存储一个指示其本次登录操作的承载令牌。因此,认证服务器可以通过验证请求中的承载令牌,来验证调用请求的合法性。具体地,因为对于每一个登录用户的每一次登录操作,认证服务器都会生成并存储一个登录令牌,所以认证服务器通过检测自身是否存储有验证请求中的承载令牌,来验证承载令牌的有效性。若认证服务器存储有验证请求中的承载令牌,则该承载令牌为有效的承载令牌,认证服务器确定调用请求合法,执行步骤S202;若认证服务器没有存储验证请求中的承载令牌,则该承载令牌为无效的承载令牌,认证服务器确定调用请求不合法,执行步骤S203。
步骤S202,向资源服务器发送登录用户的权限信息。
由于承载令牌指示一个登录用户的一次登录操作,因此,认证服务器可以根据承载令牌确定对应的登录用户。在确定调用请求合法后,认证服务器将承载令牌对应的登录用户的权限信息发送给资源服务器。权限信息用于指示登录用户拥有的权限。该权限不仅仅是指用户是否能够使用服务,还包括用户能够使用的服务功能和能够管理的服务数据。
示例性地,一个车辆信息管理服务,提供查询汽车信息和修改汽车信息两种功能。汽车信息包括汽车品牌,汽车型号、购买日期,里程数,维修记录,车主信息等等。登录用户甲的权限信息指示出甲的权限为只能使用查询汽车信息的功能,并且不能查询车主信息。那么,用户甲在使用车辆信息管理服务时,只能查询车主信息之外的汽车信息。登录用户乙的权限信息指示出乙的权限为可以使用查询汽车信息的功能和修改汽车信息的功能,并且能查询汽车信息的全部内容,但是只能修改车主信息。那么。用户乙在使用车辆信息管理服务时,能够查询所有汽车信息,并且能够修改车主信息。
步骤S203,向资源服务器返回无效响应。
在确定调用请求不合法后,认证服务器向资源服务器返回无效响应。无效响应用于指示资源服务器承载令牌无效,以使得资源服务器拒绝微服务网关的调用请求。相应地,微服务网关也拒绝登录用户的服务请求。
在本申请实施例中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
请参考图3,其示出了本申请一个实施例提供的一种微服务架构中的权限认证方法的流程图。该方法可以应用于图1B所示的网络架构中的微服务网关。该方法可以包括如下几个步骤。
步骤S301,接收终端发送的登录请求。
在微服务架构下,登录用户登录终端的客户端时,需要输入自身的用户名和密码。在终端获取到登录用户输入的用户名和密码后,向微服务网关发送登录请求。登录请求包括登录用户的用户名和密码。相应地,微服务网关接收到终端发送的登录请求。
步骤S302,向认证服务器发送令牌请求。
在获取到终端发送的登录请求后,微服务网关需要向认证服务器请求一个指示登录用户本次登录操作的承载令牌。因此,微服务网关向认证服务器发送的令牌请求。令牌请求包括上述用户名和密码。
步骤S303,接收认证服务器发送的承载令牌。
在微服务网关向认证服务器发送令牌请求后,认证服务器会检测令牌请求中的用户名和密码是否正确。若不正确,则认证服务器向微服务网关返回拒绝响应,拒绝微服务网关的令牌请求。相应地,微服务网关接收到拒绝响应后,通知终端登录失败。若正确,则认证服务器根据用户名和密码生成一个承载令牌,并发送给微服务网关。相应地,微服务网关接收到认证服务器发送的承载令牌。
步骤S304,当调用一个服务时,向部署服务的资源服务器发送调用请求。
当登录用户使用一个服务时,终端根据登录用户的操作向微服务网关发送一个服务请求。该服务请求中包括一个服务标识。微服务网关接收到上述服务请求后,根据服务标识确定需要调用的服务,并向部署该服务的资源服务器发送调用请求,以调用资源服务器的服务满足用户的服务请求。调用请求包括承载令牌,以使得资源服务器根据承载令牌向认证服务器请求登录用户的权限信息。
在本申请实施例中,调用资源服务器的服务前,微服务网关向认证服务器发送令牌请求,以请求指示登录用户本次登录的承载令牌。在调用服务时,将承载令牌包括在调用请求中发送给资源服务器,以使得资源服务器请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
请参考图4,其示出了本申请一个实施例提供的微服务架构中的权限认证方法的流程图。该方法可以应用于图1B所示的网络架构中的资源服务器。该方法可以包括如下几个步骤。
步骤S401,接收微服务网关发送的调用请求。
当登录用户使用一个服务时,终端根据登录用户的操作向微服务网关发送一个服务请求。该服务请求中包括一个服务标识。微服务网关接收到上述服务请求后,根据服务标识确定登录用户使用的服务,并向部署有该服务的资源服务器发送调用请求,以调用资源服务器的服务满足用户的服务请求。相应地,资源服务器接收到微服务网关发送的调用请求。该调用请求包括承载令牌。
步骤S402,向认证服务器发送验证请求。
资源服务器在响应微服务网关的调用请求前,需要先确定调用请求的合法性,以及检测对应的登录用户是否有调用服务的权限。验证调用请求的合法性实际是验证承载令牌的有效性。因此,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌的有效性进行验证。验证请求包括承载令牌。相应地,认证服务器会对承载令牌的有效性进行验证,即检测是否存储有验证请求中的承载令牌。若否,则认证服务器向资源服务器返回无效响应,资源服务器根据无效响应拒绝微服务网关的调用请求;若是,则执行步骤S403。
步骤S403,接收认证服务器发送的登录用户的权限信息。
在确定调用请求合法后,即确定承载令牌有效后,认证服务器将承载令牌对应的登录用户的权限信息发送给资源服务器。相应地,资源服务器接收该权限信息。
步骤S404,检测登录用户是否具备调用请求所请求的服务的权限。
因为登录用户的权限信息指示了登录用户拥有的权限,所以资源服务器能够根据权限信息检测登录用户是否具备调用上述调用请求所请求的服务的权限。若有,则执行步骤S405;若没有,则执行步骤S406.
步骤S405,调用服务,完成调用请求。
若登录用户具备调用服务的权限,则调用微服务网关所请求的服务,完成调用请求。
示例性地,登录用户使用一个车辆信息查询服务,查询一辆汽车的汽车信息。汽车信息包括汽车品牌,汽车型号、购买日期,里程数,维修记录,车主信息等等。登录用户只查询汽车品牌,汽车型号、购买日期和里程数。微服务网关根据确定登录用户需要使用的服务为车辆信息查询服务,并向部署了该车辆信息查询服务的资源服务器发送调用请求。资源服务器向认证服务器发送了查询请求,并获取了该登录用户的权限信息。该权限信息指示了该登录用户具有查询汽车品牌,汽车型号、购买日期,里程数和维修记录的权限,但不具有查询车主信息的权限。资源服务器确定该登录用户具有调用车辆信息查询服务的权限,则通过该服务,查询车主信息之外的汽车信息,并将查询到的信息发送给微服务网关,完成调用请求。
步骤S406,拒绝调用请求
若登录用户不具备调用服务的权限,则拒绝微服务网关的调用请求。
在本申请实施例中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
请参考图5,其示出了本申请一个实施例提供的一种微服务架构中的权限认证方法的流程示意图。该方法可以应用于图1B所示的网络架构中。该方法可以包括如下几个步骤。
步骤S501,终端向微服务网关发送登录请求。
在微服务架构下,登录用户登录终端的客户端时,需要输入自身的用户名和密码。在终端获取到登录用户输入的用户名和密码后,向微服务网关发送登录请求。登录请求包括登录用户的用户名和密码。
可选地,登录请求还包括客户端认证信息,和/或,授权信息。其中,客户端认证信息用于指示客户端所属的终端。授权信息是指与登录用户的权限相关的信息。例如,一个应用于公司销售***的微服务架构。该公司的员工即为各个登录用户,不同的员工属于公司不同的销售门店。不同门店的员工拥有不同的权限。那么,用于指示员工所属门店的门店信息即为一种授权信息。
步骤S502,微服务网关向认证服务器发送的令牌请求。
在获取到终端发送的登录请求后,微服务网关向认证服务器发送令牌请求,以请求一个用于指示登录用户本次登录操作的承载令牌。令牌请求包括用户名和密码。
可选地,令牌请求还包括客户端认证信息,和/或,授权信息。
步骤S503,认证服务器生成承载令牌,并对应存储承载令牌和登录用户的权限信息。
用户在使用各个服务前,需要先在微服务架构下的客户端中注册账号。在注册账号时,用户设置一个用户名和一个预设密码。相应地,认证服务器会对应存储用户名和预设密码。当接收到令牌请求后,认证服务器先检查是否存储有令牌请求中的用户名。若无,则表明本次登录的用户不是注册用户,向微服务网关返回拒绝响应,拒绝微服务网关的令牌请求;若有,则获取用户名对应的预设密码,并检测令牌请求中的密码与预设密码是否相同。若不同,则表明本次登录的用户不是注册用户,向微服务网关返回拒绝响应,拒绝微服务网关的令牌请求;若相同,则获取登录用户的权限信息。认证服务器生成与权限信息对应的承载令牌,并对应存储该承载令牌和权限信息。
在一种可能的实施方式中,当令牌请求还包括客户端认证信息时,除了检测用户名和密码外,认证服务器还检测客户端认证信息所指示的终端是否是预设类型的终端。预设类型包括手机和电脑等。若否,则向微服务网关返回拒绝响应,拒绝微服务网关的令牌请求;若是,则生成承载令牌。通过检测客户端认证信息,可以对登录用户所使用的终端进行检测。
在另一种可能的实施方式中,在注册账号时,认证服务器还获取并存储用户的授权信息。当令牌请求还包括授权信息时,除了检测用户名和密码外,认证服务器还检测令牌请求中的授权信息与注册时存储的授权信息是否相同。若否,则向微服务网关返回拒绝响应,拒绝微服务网关的令牌请求;若是,则生成承载令牌。
示例性地,授权信息为门店信息。一个用户注册时,认证服务器存储的该用户的门店信息为:第035号店铺。当该用户登录时,令牌请求中包括了该用户的用户名、密码和门店信息。其中,令牌请求中的门店信息为第035号店铺。在确定用户名和密码正确后,认证服务器检测到令牌请求中的授权信息与注册时存储的授权信息相同,均为第035号店铺,则生成承载令牌。
可选地,在生成承载令牌时,认证服务器还生成一个与登录用户对应的更新令牌(refresh token),并将该更新令牌发送给微服务网关。当终端是手机时,用户会频繁的打开和关闭客户端。每次打开客户端,终端都会向微服务网关发送登录请求。相应地,微服务网关需要向认证服务器请求承载令牌。若每次请求承载令牌时,认证服务器都检测用户名、密码、客户端认证信息和授权信息,会占用认证服务器过多的资源。因此,认证服务器在第一次生成承载令牌时,还生成一个更新令牌,并发送给微服务网关。相应地,微服务网关接收并存储该更新令牌。当微服务网关再次接收到同一终端发送的同一登录用户的登录请求时,微服务网关向认证服务器发送更新请求。更新请求中包括更新令牌。认证服务器接收到更新请求,检测是否存储了请求中的更新令牌。若是,则表示更新令牌对应的登录用户已经通过了相关检测,无需再次进行检测,认证服务器生成更新后的承载令牌,并发送给微服务网关;若否,则拒绝微服务网关的更新请求。通过更新令牌,认证服务器无需重复检测已经检测过的登录用户,能够避免占用认证服务器过多的资源,提高认证服务器的运行效率。
在另一些实施例中,认证服务器将承载令牌、权限信息、更新令牌等存储在Redis服务器中。后续步骤中,认证服务器可以直接向Redis服务器请求验证。
步骤S504,认证服务器向微服务网关发送承载令牌。
认证服务器对承载令牌进行序列化操作,完成承载令牌的序列化,再将序列化后的承载令牌发送给微服务网关。此外,认证服务器向微服务网关返回拒绝响应时,也会对拒绝响应进行序列化操作。通过序列化操作,确保微服务网关能够接收承载令牌或拒绝响应。
步骤S505,当调用一个服务时,微服务网关向资源服务器发送调用请求。
微服务网关在接收到承载令牌后,存储该承载令牌,并记录该承载令牌对应的登录用户。当该登录用户使用一个服务时,微服务网关接收到终端发送服务请求,并根据服务请求确定需要调用的服务。在调用服务时,微服务网关确定该登录用户对应的承载令牌,并将该承载令牌包括在调用请求中,发送给部署所要调用的服务的资源服务器。
步骤S506,资源服务器向认证服务器发送验证请求。
在资源服务器响应调用请求前,资源服务器会向认证服务器发送验证请求,以请求认证服务器对调用请求的合法性进行验证。该验证请求中包括承载令牌。相应地,认证服务器根据验证请求对调用请求的合法性进行验证,即验证验证请求中的承载令牌的有效性。若认证服务器存储有验证请求中的承载令牌,则确定调用请求合法,执行步骤S507;若认证服务器没有存储验证请求中的承载令牌,则确定调用请求不合法,执行步骤S509。
步骤S507,认证服务器向资源服务器发送登录用户的权限信息。
认证服务器在生成承载令牌时,对应存储了承载令牌和承载令牌对应登录用户的权限信息。因此,在确定存储有验证请求中的承载令牌后,将对应存储的登录用户的权限信息发送给资源服务器。
需要说明的是,认证服务器向资源服务器发送的权限信息可以是登录用户对于所有服务的权限信息,也可以是登录用户对于本次调用的服务的权限信息。
步骤S508,根据权限信息,响应调用请求。
资源服务器根据权限信息,响应调用请求,而响应调用请求包括完成调用请求,或者,拒绝调用请求。具体地,资源服务器根据权限信息检测登录用户是否具备调用上述调用请求所请求的服务的权限。若登录用户具备调用服务的权限,则调用微服务网关请求的服务,完成调用请求;若登录用户不具备调用服务的权限,则拒绝微服务网关的调用请求。无论是完成调用请求,还是拒绝调用请求,资源服务器都会向微服务网关返回一个调用响应。当完成调用请求时,调用响应包括调用服务的结果,例如登录用户请求查询的信息,登录用户请求存储的数据的主键信息等等。当拒绝调用请求时,调用响应包括用于指示登录用户权限过低的相关信息。
步骤S509,认证服务器向资源服务器返回无效响应。
在确定调用请求不合法后,认证服务器向资源服务器返回无效响应。相应地,资源服务器向微服务网关返回一个调用响应,调用响应包括用于指示承载令牌无效的相关信息,以拒绝微服务网关的调用请求。
在一种可能的实施方式中,当登录用户在客户端中退出登录时,终端向微服务网关发送包括登录用户的用户名的退出信息。该退出信息用于通知微服务网关登录用户已退出登录。微服务网关在接收到退出信息后,向认证服务器发送令牌删除请求,并删除与登录用户对应的承载令牌。该令牌删除请求中包括所要删除的承载令牌。认证服务器接收到令牌删除请求后,删除自身存储的令牌删除请求中所要删除的承载令牌。
在另一种可能的实施方式中,当生成承载令牌时,认证服务器启动一个定时器。当定时器计时达到第一预设时长时,删除对应的承载令牌。在本申请实施例中,承载令牌指示了登录用户的一次登录操作。但为了登录用户的信息安全,若登录用户第一预设时长内没有在客户端中进行任何操作,则客户端会自动将登录用户退出登录,以防止他人冒用登录用户的身份进行操作。例如,登录用户在一台电脑上的客户端登录后,离开了该电脑,但是没有退出登录。此时,终端上的客户端检测到第一预设时长内没有任何操作,则将登录用户退出登录。将登录用户退出登录后,也要删除登录产生的承载令牌,以防止恶意程序使用该承载令牌。因此,认证服务器启动一个定时器。当定时器计时达到第一预设时长时,即终端将登录用户退出登录时,删除对应的承载令牌。删除后,即使恶意程序使用该承载令牌来调用服务,由于认证服务器已经删除了承载令牌,因此恶意程序也无法通过资源服务器与认证服务器之间的验证。其中,第一预设时长也称为承载令牌的有效时间,可以根据实际经验进行设定,例如5分钟。
可选地,在本申请实施例中,因为认证服务器存储了承载令牌,所以认证服务器支持重置承载令牌的有效时间。登录用户第一预设时长内没有在客户端中进行任何操作,则客户端会自动将登录用户退出登录。若登录用户一直在进行操作,则客户端会保持登录用户的登录状态。但是,认证服务器仍然启动定时器,当定时器计时达到第一预设时长时,承载令牌会被删除。若此时登录用户再进行操作并调用服务,由于承载令牌已经被删除,微服务网关会无法调用服务。因此,每当用户进行操作时,需要重置承载令牌的有效时间。具体地,微服务网关若检测到登录用户在终端上的操作,则向认证服务器发送延期请求。微服务网关可以主动监控终端上的客户端来检测登录用户是否执行了操作,终端也可以在登录用户执行操作时通知微服务网关。延期请求用于指示认证服务器重置承载令牌对应的定时器。通过重置定时器,来重置承载令牌的有效时间。
可选地,登录用户在微服务架构下各个服务中的权限可以改变。例如,应用于视频网站的微服务架构,登录用户购买视频网站的会员后,就拥有了会员相应的权限,例如跳过广告。当购买的会员到期后,登录用户则失去了会员相应的权限。无论是购买会员时,还是失去会员时,登录用户的权限都发生了变化。登录用户的权限一旦变化,则相应的权限信息也会变化。权限信息发生变化,则之前与该权限信息对应的承载令牌就不再适用。因此,当承载令牌对应的权限信息发生变化时,认证服务器删除该承载令牌。
在本申请实施例中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
本申请中还提供一种签名验证的方式,可以用于具有开放API的服务。微服务网关在调用时不需要通过承载令牌进行验证。而是,微服务网关与资源服务器之间通过加签和验签的方式进行验证,以防止恶意攻击、保护数据安全。
微服务网关在调用具有开放API的服务时,先进行加签,即在调用请求中添加签名和签名标识。微服务网关根据调用参数和调用时间戳,生成签名。其中,调用参数是指调用请求中的相关参数,例如接口类型,接口名称等等。具体地,微服务网关与资源服务器可以通过指定签名字段的方式,约定调用参数中哪些参数用于签名验证。调用时间戳用于指示微服务网关调用服务的时间。签名标识用于指示资源服务器需要进行验签。
资源服务器在接收到调用请求后,若检测到没有签名标识,则确定无需签名验证;若检测到签名标识,则对签名进行验签。资源服务器对签名进行解析、从中获取调用参数和调用时间戳,检测签名中的调用参数是否与调用请求中的一致。对于调用时间戳指示的调用时间,资源服务器根据接收到调用请求的时间,确定一个时间范围。例如,资源服务器接收到调用请求的时间为:13点14分20秒,则确定的时间范围为:13点04分20秒至13点14分20秒。若调用时间戳指示的调用时间在上述时间范围内,则资源服务器确定调用时间戳正确。当资源服务器确定签名中的调用参数和调用时间戳都正确时,签名验证成功,资源服务器完成调用请求;当资源服务器确定签名中的调用参数和调用时间戳任一项错误时,签名验证失败,资源服务器拒绝调用请求。
可选地,在本申请实施例中,采用申明式签名的签名验证方式。申明式签名是指通过添加注解的方式,将加签和验签的规则,例如生成签名的规则和解析签名的规则,添加至微服务网关与资源服务器。因为采用了添加注解的方式,声明式签名不需要通过编程的方式管理签名。所以,在接入具有开方API的服务时,不需要对微服务网关与资源服务器业务逻辑代码进行修改,从而提高了服务的接入效率,也便于对加签和验签的规则进行修改和管理。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6是根据一示例性实施例示出的一种微服务架构中的权限认证装置的示意性框图。该装置具有实现上述认证服务器侧方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第一接收模块601和第一发送模块602。
第一接收模块601,用于接收资源服务器发送的验证请求,所述验证请求包括承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
第一发送模块602,用于当存储有所述承载令牌时,向所述资源服务器发送所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
所述第一发送模块602,还用于当没有存储所述承载令牌时,向所述资源服务器返回无效响应,所述无效响应用于指示所述承载令牌无效,以使得所述资源服务器拒绝微服务网关的调用。
在本申请实施例提供的装置中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
可选地,所述第一接收模块601,还用于接收所述微服务网关发送的令牌请求,所述令牌请求包括所述登录用户的用户名和密码。
所述装置还包括:令牌生成模块。所述令牌生成模块,用于当确定所述用户名和所述密码正确时,生成所述承载令牌,并对应存储所述承载令牌和所述登录用户的权限信息。
所述第一发送模块602,还用于向所述微服务网关发送所述承载令牌。
可选地,所述令牌生成模块,具体用于:
当存储有所述用户名时,获取所述用户名对应的预设密码;当所述预设密码和所述密码相同时,确定所述用户名和所述密码正确;获取所述登录用户的权限信息;生成与所述权限信息对应的承载令牌。
可选地,所述装置还包括:令牌删除模块。
所述令牌删除模块,用于:当生成所述承载令牌时,启动定时器;当所述定时器计时达到第一预设时长时,删除所述承载令牌。
可选地,所述装置还包括:令牌重置模块。
所述令牌重置模块,用于:接收所述微服务网关发送的延期请求,所述延期请求中包括所述承载令牌;根据所述延期请求,重置所述承载令牌对应的定时器。
可选地,所述令牌删除模块,还用于当所述承载令牌对应的权限信息发生变化时,删除所述承载令牌。
可选地,所述装置还包括,令牌更新模块。
所述令牌更新模块,用于当确定所述用户名和所述密码正确时,生成与所述登录用户对应的更新令牌,并将所述更新令牌发送给所述微服务网关;接收所述微服务网关发送的更新请求,所述更新请求中包括所述更新令牌;根据所述更新令牌,生成更新后的承载令牌。
图7是根据一示例性实施例示出的一种微服务架构中的权限认证装置的示意性框图。该装置具有实现上述微服务网关侧方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第二接收模块701,令牌请求模块702和服务调用模块703。
第二接收模块701,用于接收终端发送的登录请求,所述登录请求包括登录用户的用户名和密码。
令牌请求模块702,用于向认证服务器发送令牌请求,所述令牌请求包括所述用户名和所述密码,以使得所述认证服务器根据所述用户名和所述密码生成承载令牌,所述承载令牌用于指示登录用户的一次登录操作。
所述第二接收模块701,还用于接收所述认证服务器发送的所述承载令牌。
服务调用模块703,用于当调用一个服务时,向部署有所述服务的资源服务器发送调用请求,所述调用请求包括所述承载令牌,以使得所述资源服务器根据所述承载令牌,向所述认证服务器请求所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
在本申请实施例提供的装置中,调用资源服务器的服务前,微服务网关向认证服务器发送令牌请求,以请求指示登录用户本次登录的承载令牌。在调用服务时,将承载令牌包括在调用请求中发送给资源服务器,以使得资源服务器请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
可选地,所述装置还包括,延期请求模块。
所述延期请求模块,用于当检测到所述登录用户在所述终端上的操作时,向所述认证服务器发送延期请求,所述延期请求用于指示所述认证服务器重置所述承载令牌对应的定时器,所述定时器用于当计时达到第一预设时长时,指示所述认证服务器删除所述承载令牌。
可选地,所述装置还包括,令牌更新模块。
所述令牌更新模块,用于:接收所述认证服务器发送的与所述登录用户对应的更新令牌;当接收到所述终端发送的登录请求时,向所述认证服务器发送更新请求,以使得所述认证服务器生成更新后的承载令牌,所述更新请求中包括所述更新令牌;接收所述认证服务器发送的所述更新后的承载令牌。
图8是根据一示例性实施例示出的一种微服务架构中的权限认证装置的示意性框图。该装置具有实现上述资源服务器侧方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第三接收模块801,验证请求模块802,权限检测模块803和请求响应模块804。
第三接收模块801,用于接收微服务网关发送的调用请求,所述调用请求包括承载令牌,所述承载令牌用于指示一个登录用户的一次登录操作。
验证请求模块802,用于向认证服务器发送验证请求,所述验证请求包括所述承载令牌。
所述第三接收模块801,还用于当所述认证服务器存储有所述承载令牌时,接收所述认证服务器发送的所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
权限检测模块803,用于根据所述权限信息,检测所述登录用户是否具备调用所述调用请求所请求的服务的权限。
请求响应模块804,用于当所述登录用户具备调用所述服务的权限时,调用所述服务,完成所述调用请求。
在本申请实施例的装置中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
本申请一示例性实施例提供一种微服务架构中的权限认证***。该***包括微服务网关、认证服务器和至少一个资源服务器,可用于实现上述方法示例。其中,认证服务器包括如上述图6实施例所示的装置,微服务网关包括如上述图7实施例所示的装置,资源服务器包括如上述图8实施例所示的装置。
在本申请提供的***中,调用资源服务器的服务时,资源服务器向认证服务器发送验证请求,以请求认证服务器对承载令牌进行验证,并请求获取相关的权限信息。承载令牌和权限的相关认证不再由微服务网关和资源服务器之间通过密钥的方式进行,而是由认证服务器负责。因此,认证服务器需要存储承载令牌。因为存储了承载令牌且参与了承载令牌的验证,所以认证服务器能够对承载令牌进行维护和处理,从而提高微服务***的运行效率。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序或智能合约,所述计算机程序或智能合约被节点加载并执行以实现上述实施例提供的方法。可选地,上述计算机可读存储介质可以是只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种微服务架构中的权限认证方法,其特征在于,所述方法包括:
接收资源服务器发送的验证请求,所述验证请求包括承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
当存储有所述承载令牌时,向所述资源服务器发送所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
当没有存储所述承载令牌时,向所述资源服务器返回无效响应,所述无效响应用于指示所述承载令牌无效,以使得所述资源服务器拒绝微服务网关的调用。
2.根据权利要求1所述的方法,其特征在于,所述接收资源服务器发送的验证请求之前,还包括:
接收所述微服务网关发送的令牌请求,所述令牌请求包括所述登录用户的用户名和密码;
当确定所述用户名和所述密码正确时,生成所述承载令牌,并对应存储所述承载令牌和所述登录用户的权限信息;
向所述微服务网关发送所述承载令牌。
3.根据权利要求2所述的方法,其特征在于,所述当确定所述用户名和所述密码正确时,生成承载令牌,包括:
当存储有所述用户名时,获取所述用户名对应的预设密码;
当所述预设密码和所述密码相同时,确定所述用户名和所述密码正确;
获取所述登录用户的权限信息;
生成与所述权限信息对应的承载令牌。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当生成所述承载令牌时,启动定时器;
当所述定时器计时达到第一预设时长时,删除所述承载令牌。
5.根据权利要求4所述的方法,其特征在于,所述向所述微服务网关发送所述承载令牌之后,还包括:
接收所述微服务网关发送的延期请求,所述延期请求中包括所述承载令牌;
根据所述延期请求,重置所述承载令牌对应的定时器。
6.根据权利要求2所述的方法,其特征在于,所述向所述微服务网关发送所述承载令牌之后,还包括:
当所述承载令牌对应的权限信息发生变化时,删除所述承载令牌。
7.根据权利要求2所述的方法,其特征在于,所述接收微服务网关发送的令牌请求之后,还包括:
当确定所述用户名和所述密码正确时,生成与所述登录用户对应的更新令牌,并将所述更新令牌发送给所述微服务网关;
接收所述微服务网关发送的更新请求,所述更新请求中包括所述更新令牌;
根据所述更新令牌,生成更新后的承载令牌。
8.一种微服务架构中的权限认证方法,其特征在于,所述方法包括:
接收终端发送的登录请求,所述登录请求包括登录用户的用户名和密码;
向认证服务器发送令牌请求,所述令牌请求包括所述用户名和所述密码,以使得所述认证服务器根据所述用户名和所述密码生成承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
接收所述认证服务器发送的所述承载令牌;
当调用一个服务时,向部署有所述服务的资源服务器发送调用请求,所述调用请求包括所述承载令牌,以使得所述资源服务器根据所述承载令牌,向所述认证服务器请求所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
9.根据权利要求8所述的方法,其特征在于,所述接收所述认证服务器发送的所述承载令牌之后,还包括:
若检测到所述登录用户在所述终端上的操作,则向所述认证服务器发送延期请求,所述延期请求用于指示所述认证服务器重置所述承载令牌对应的定时器,所述定时器用于当计时达到第一预设时长时,指示所述认证服务器删除所述承载令牌。
10.根据权利要求8所述的方法,其特征在于,所述向认证服务器发送令牌请求之后,还包括:
接收所述认证服务器发送的与所述登录用户对应的更新令牌;
当接收到所述终端发送的登录请求时,向所述认证服务器发送更新请求,以使得所述认证服务器生成更新后的承载令牌,所述更新请求中包括所述更新令牌;
接收所述认证服务器发送的所述更新后的承载令牌。
11.一种微服务架构中的权限认证方法,其特征在于,所述方法包括:
接收微服务网关发送的调用请求,所述调用请求包括承载令牌,所述承载令牌用于指示一个登录用户的一次登录操作;
向认证服务器发送验证请求,所述验证请求包括所述承载令牌;
当所述认证服务器存储有所述承载令牌时,接收所述认证服务器发送的所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
根据所述权限信息,检测所述登录用户是否具备调用所述调用请求所请求的服务的权限;
若所述登录用户具备调用所述服务的权限,则调用所述服务,完成所述调用请求。
12.一种微服务架构中的权限认证装置,其特征在于,所述装置包括:
第一接收模块,用于接收资源服务器发送的验证请求,所述验证请求包括承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
第一发送模块,用于当存储有所述承载令牌时,向所述资源服务器发送所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
所述第一发送模块,还用于当没有存储所述承载令牌时,向所述资源服务器返回无效响应,所述无效响应用于指示所述承载令牌无效,以使得所述资源服务器拒绝微服务网关的调用。
13.一种微服务架构中的权限认证装置,其特征在于,所述装置包括:
第二接收模块,用于接收终端发送的登录请求,所述登录请求包括登录用户的用户名和密码;
令牌请求模块,用于向认证服务器发送令牌请求,所述令牌请求包括所述用户名和所述密码,以使得所述认证服务器根据所述用户名和所述密码生成承载令牌,所述承载令牌用于指示登录用户的一次登录操作;
所述第二接收模块,还用于接收所述认证服务器发送的所述承载令牌;
服务调用模块,用于当调用一个服务时,向部署有所述服务的资源服务器发送调用请求,所述调用请求包括所述承载令牌,以使得所述资源服务器根据所述承载令牌,向所述认证服务器请求所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限。
14.一种微服务架构中的权限认证装置,其特征在于,所述装置包括:
第三接收模块,用于接收微服务网关发送的调用请求,所述调用请求包括承载令牌,所述承载令牌用于指示一个登录用户的一次登录操作;
验证请求模块,用于向认证服务器发送验证请求,所述验证请求包括所述承载令牌;
所述第三接收模块,还用于当所述认证服务器存储有所述承载令牌时,接收所述认证服务器发送的所述登录用户的权限信息,所述权限信息用于指示所述登录用户拥有的权限;
权限检测模块,用于根据所述权限信息,检测所述登录用户是否具备调用所述调用请求所请求的服务的权限;
请求响应模块,用于当所述登录用户具备调用所述服务的权限时,调用所述服务,完成所述调用请求。
15.一种微服务架构中的权限认证***,其特征在于,所述***包括微服务网关、认证服务器和至少一个资源服务器;
所述认证服务器包括如权利要求12所述的装置,所述微服务网关包括如权利要求13所述的装置,所述资源服务器包括如权利要求14所述的装置。
CN201910005314.3A 2019-01-03 2019-01-03 微服务架构中的权限认证方法、装置及*** Pending CN109743163A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910005314.3A CN109743163A (zh) 2019-01-03 2019-01-03 微服务架构中的权限认证方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910005314.3A CN109743163A (zh) 2019-01-03 2019-01-03 微服务架构中的权限认证方法、装置及***

Publications (1)

Publication Number Publication Date
CN109743163A true CN109743163A (zh) 2019-05-10

Family

ID=66363266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910005314.3A Pending CN109743163A (zh) 2019-01-03 2019-01-03 微服务架构中的权限认证方法、装置及***

Country Status (1)

Country Link
CN (1) CN109743163A (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149211A (zh) * 2019-05-15 2019-08-20 杭州朗和科技有限公司 服务鉴权方法、服务鉴权装置、介质以及电子设备
CN110430202A (zh) * 2019-08-09 2019-11-08 百度在线网络技术(北京)有限公司 认证方法及装置
CN110535904A (zh) * 2019-07-19 2019-12-03 浪潮电子信息产业股份有限公司 一种异步推送方法、***及装置
CN111010396A (zh) * 2019-12-17 2020-04-14 紫光云(南京)数字技术有限公司 一种互联网身份认证管理方法
CN111093197A (zh) * 2019-12-31 2020-05-01 北大方正集团有限公司 权限认证方法、权限认证***和计算机可读存储介质
CN111143814A (zh) * 2019-12-30 2020-05-12 武汉佰钧成技术有限责任公司 单点登录方法、微服务接入平台及存储介质
CN111181991A (zh) * 2020-01-03 2020-05-19 苏州融卡智能科技有限公司 物联网终端接入平台的构建方法与装置
CN111190734A (zh) * 2019-12-30 2020-05-22 杭州涂鸦信息技术有限公司 一种微服务路由方法和***及可读存储介质
CN111212027A (zh) * 2019-11-29 2020-05-29 云深互联(北京)科技有限公司 一种基于企业浏览器实现的网络安全验证方法和装置
CN111211902A (zh) * 2019-11-29 2020-05-29 云深互联(北京)科技有限公司 一种基于企业浏览器实现的数字签名方法和装置
CN111405036A (zh) * 2020-03-13 2020-07-10 北京奇艺世纪科技有限公司 服务访问方法、装置、相关设备及计算机可读存储介质
CN111585973A (zh) * 2020-04-16 2020-08-25 北京明略软件***有限公司 一种管理访问的方法和装置
CN111698312A (zh) * 2020-06-08 2020-09-22 中国建设银行股份有限公司 基于开放平台的业务处理方法、装置、设备和存储介质
CN111756544A (zh) * 2020-05-11 2020-10-09 北京明略软件***有限公司 一种接口调用合法性校验方法和装置
CN111859419A (zh) * 2020-06-29 2020-10-30 远光软件股份有限公司 基于微服务向主体配置资源权限的方法
CN112350978A (zh) * 2019-08-08 2021-02-09 中移(苏州)软件技术有限公司 一种业务处理方法、***、设备及存储介质
CN112564916A (zh) * 2020-12-01 2021-03-26 上海艾融软件股份有限公司 应用于微服务架构的访问客户端认证***
CN113055367A (zh) * 2021-03-08 2021-06-29 浪潮云信息技术股份公司 一种微服务网关鉴权的实现方法及***
CN113065115A (zh) * 2021-03-18 2021-07-02 中睿信数字技术有限公司 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法
CN113449157A (zh) * 2021-06-18 2021-09-28 神钢压缩机(上海)有限公司 一种信息记录查询方法、设备以及存储介质
CN113759883A (zh) * 2021-10-26 2021-12-07 深圳市元征科技股份有限公司 车辆诊断方法、车辆网关设备、服务器及存储介质
CN114124428A (zh) * 2021-07-21 2022-03-01 远光软件股份有限公司 基于区块链的物联网设备的访问方法及装置
CN114416224A (zh) * 2022-03-25 2022-04-29 共道网络科技有限公司 一种在多微服务环境下调用微服务的方法及装置
CN114513349A (zh) * 2022-01-29 2022-05-17 中国人民财产保险股份有限公司 确定微服务请求方来源的方法及装置
CN114697074A (zh) * 2022-02-23 2022-07-01 深圳爱捷云科技有限公司 权限校验方法、电子设备及存储介质
CN115460022A (zh) * 2022-11-11 2022-12-09 广州中长康达信息技术有限公司 一种对智能辅助平台的资源管理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220271A1 (en) * 2006-03-15 2007-09-20 Law Eric C W Online creation and delivery of cryptographically verifiable one-time password tokens
CN102624737A (zh) * 2012-03-27 2012-08-01 武汉理工大学 单点登录***中针对Form身份鉴别的单点登录集成方法
CN102857484A (zh) * 2011-07-01 2013-01-02 阿里巴巴集团控股有限公司 一种实现单点登录的方法、***及装置
CN106375270A (zh) * 2015-07-24 2017-02-01 华为技术有限公司 令牌生成并认证的方法及认证服务器
CN106790209A (zh) * 2017-01-03 2017-05-31 北京并行科技股份有限公司 一种登录认证方法及***
US20180302396A1 (en) * 2014-09-25 2018-10-18 International Business Machines Corporation Distributed single sign-on
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、***及终端设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220271A1 (en) * 2006-03-15 2007-09-20 Law Eric C W Online creation and delivery of cryptographically verifiable one-time password tokens
CN102857484A (zh) * 2011-07-01 2013-01-02 阿里巴巴集团控股有限公司 一种实现单点登录的方法、***及装置
CN102624737A (zh) * 2012-03-27 2012-08-01 武汉理工大学 单点登录***中针对Form身份鉴别的单点登录集成方法
US20180302396A1 (en) * 2014-09-25 2018-10-18 International Business Machines Corporation Distributed single sign-on
CN106375270A (zh) * 2015-07-24 2017-02-01 华为技术有限公司 令牌生成并认证的方法及认证服务器
CN106790209A (zh) * 2017-01-03 2017-05-31 北京并行科技股份有限公司 一种登录认证方法及***
CN108965230A (zh) * 2018-05-09 2018-12-07 深圳市中信网安认证有限公司 一种安全通信方法、***及终端设备

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149211A (zh) * 2019-05-15 2019-08-20 杭州朗和科技有限公司 服务鉴权方法、服务鉴权装置、介质以及电子设备
CN110535904A (zh) * 2019-07-19 2019-12-03 浪潮电子信息产业股份有限公司 一种异步推送方法、***及装置
CN112350978A (zh) * 2019-08-08 2021-02-09 中移(苏州)软件技术有限公司 一种业务处理方法、***、设备及存储介质
CN110430202A (zh) * 2019-08-09 2019-11-08 百度在线网络技术(北京)有限公司 认证方法及装置
CN110430202B (zh) * 2019-08-09 2022-09-16 百度在线网络技术(北京)有限公司 认证方法及装置
CN111212027A (zh) * 2019-11-29 2020-05-29 云深互联(北京)科技有限公司 一种基于企业浏览器实现的网络安全验证方法和装置
CN111211902A (zh) * 2019-11-29 2020-05-29 云深互联(北京)科技有限公司 一种基于企业浏览器实现的数字签名方法和装置
CN111010396A (zh) * 2019-12-17 2020-04-14 紫光云(南京)数字技术有限公司 一种互联网身份认证管理方法
CN111190734A (zh) * 2019-12-30 2020-05-22 杭州涂鸦信息技术有限公司 一种微服务路由方法和***及可读存储介质
CN111190734B (zh) * 2019-12-30 2023-08-18 杭州涂鸦信息技术有限公司 一种微服务路由方法和***及可读存储介质
CN111143814A (zh) * 2019-12-30 2020-05-12 武汉佰钧成技术有限责任公司 单点登录方法、微服务接入平台及存储介质
CN111143814B (zh) * 2019-12-30 2022-06-21 武汉佰钧成技术有限责任公司 单点登录方法、微服务接入平台及存储介质
CN111093197A (zh) * 2019-12-31 2020-05-01 北大方正集团有限公司 权限认证方法、权限认证***和计算机可读存储介质
CN111181991B (zh) * 2020-01-03 2022-06-17 深圳融卡科技有限公司 物联网终端接入平台的构建方法与装置
CN111181991A (zh) * 2020-01-03 2020-05-19 苏州融卡智能科技有限公司 物联网终端接入平台的构建方法与装置
CN111405036A (zh) * 2020-03-13 2020-07-10 北京奇艺世纪科技有限公司 服务访问方法、装置、相关设备及计算机可读存储介质
CN111585973A (zh) * 2020-04-16 2020-08-25 北京明略软件***有限公司 一种管理访问的方法和装置
CN111756544A (zh) * 2020-05-11 2020-10-09 北京明略软件***有限公司 一种接口调用合法性校验方法和装置
CN111698312A (zh) * 2020-06-08 2020-09-22 中国建设银行股份有限公司 基于开放平台的业务处理方法、装置、设备和存储介质
CN111859419B (zh) * 2020-06-29 2023-10-10 远光软件股份有限公司 基于微服务向主体配置资源权限的方法
CN111859419A (zh) * 2020-06-29 2020-10-30 远光软件股份有限公司 基于微服务向主体配置资源权限的方法
CN112564916A (zh) * 2020-12-01 2021-03-26 上海艾融软件股份有限公司 应用于微服务架构的访问客户端认证***
CN113055367A (zh) * 2021-03-08 2021-06-29 浪潮云信息技术股份公司 一种微服务网关鉴权的实现方法及***
CN113065115A (zh) * 2021-03-18 2021-07-02 中睿信数字技术有限公司 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法
CN113449157A (zh) * 2021-06-18 2021-09-28 神钢压缩机(上海)有限公司 一种信息记录查询方法、设备以及存储介质
CN114124428A (zh) * 2021-07-21 2022-03-01 远光软件股份有限公司 基于区块链的物联网设备的访问方法及装置
CN114124428B (zh) * 2021-07-21 2024-01-12 远光软件股份有限公司 基于区块链的物联网设备的访问方法及装置
CN113759883A (zh) * 2021-10-26 2021-12-07 深圳市元征科技股份有限公司 车辆诊断方法、车辆网关设备、服务器及存储介质
CN114513349A (zh) * 2022-01-29 2022-05-17 中国人民财产保险股份有限公司 确定微服务请求方来源的方法及装置
CN114697074A (zh) * 2022-02-23 2022-07-01 深圳爱捷云科技有限公司 权限校验方法、电子设备及存储介质
CN114416224A (zh) * 2022-03-25 2022-04-29 共道网络科技有限公司 一种在多微服务环境下调用微服务的方法及装置
CN115460022B (zh) * 2022-11-11 2023-03-07 广州中长康达信息技术有限公司 一种对智能辅助平台的资源管理方法
CN115460022A (zh) * 2022-11-11 2022-12-09 广州中长康达信息技术有限公司 一种对智能辅助平台的资源管理方法

Similar Documents

Publication Publication Date Title
CN109743163A (zh) 微服务架构中的权限认证方法、装置及***
KR102254499B1 (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN105229987B (zh) 主动联合的移动认证
US9384479B2 (en) Mobile phone takeover protection system and method
CN102394887B (zh) 基于OAuth协议的开放平台安全认证方法和***
CN107124431B (zh) 鉴权方法、装置、计算机可读存储介质和鉴权***
KR102252086B1 (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN106302346A (zh) Api调用的安全认证方法、装置、***
CN104184713A (zh) 终端识别方法、机器识别码注册方法及相应***、设备
CN103780580B (zh) 提供能力访问策略的方法、服务器和***
WO2014105263A1 (en) Multi-factor authentication and comprehensive login system for client-server networks
JP2009543510A (ja) 通信ネットワークにおける認証手順のための方法および装置
CN104159225A (zh) 一种基于无线网络的实名制管理方法及***
CN112532599B (zh) 一种动态鉴权方法、装置、电子设备和存储介质
JP2002508121A (ja) 通信システムに関する方法および装置
Beltran Characterization of web single sign-on protocols
CN109756337A (zh) 一种服务接口的安全接入方法和装置
US8234497B2 (en) Method and apparatus for providing secure linking to a user identity in a digital rights management system
CN109067785A (zh) 集群认证方法、装置
WO2019011187A1 (zh) 电子账户的挂失、解挂、业务管理方法、装置及设备
CN106209816B (zh) 一种网络摄像机登录方法及***
CN112398799A (zh) 一种单点登录方法、装置及***
CN105592180A (zh) 一种Portal认证的方法和装置
CN105704154B (zh) 一种基于RESTful的服务处理方法、装置及***
CN109150857A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190510

RJ01 Rejection of invention patent application after publication