CN117768144A - 服务鉴权方法、装置及分布式微服务架构 - Google Patents
服务鉴权方法、装置及分布式微服务架构 Download PDFInfo
- Publication number
- CN117768144A CN117768144A CN202311437247.5A CN202311437247A CN117768144A CN 117768144 A CN117768144 A CN 117768144A CN 202311437247 A CN202311437247 A CN 202311437247A CN 117768144 A CN117768144 A CN 117768144A
- Authority
- CN
- China
- Prior art keywords
- authentication
- service
- password
- request
- determining
- 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 abstract description 84
- 238000012423 maintenance Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 13
- 230000009286 beneficial effect Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 43
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 235000013405 beer Nutrition 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种服务鉴权方法、装置及分布式微服务架构,所述方法包括:接收客户端发送的认证请求;响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。本发明能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护。
Description
技术领域
本发明涉及微服务技术领域,尤其涉及一种服务鉴权方法、装置及分布式微服务架构。
背景技术
在当下流行的分布式微服务架构下,微服务比较分散,且负责的功能属于各个细分领域,完成不同的业务需求可能需要调用多个不同的微服务接口。如何在调用过程中保证高效安全的访问控制,是一个很大的难题。
目前,现有的方法大多着眼于解析鉴权信息来辨认调用方/客户端,对于成熟的分布式微服务架构系统,一方面,微服务数量庞大且调用量也很可观,如果每次调用都要进行调用方判断,并解析鉴权信息,那必然会耗费许多成本,从而影响系统性能;另一方面,这种鉴权机制的粒度比较粗,对于被调用方/服务端而言,只能控制调用方/客户端能不能来调自己,而不能控制调用方/客户端能调自己的哪部分资源。
因此,如何提高对调用方的请求进行服务鉴权的效率,是当下亟需解决的技术问题。
发明内容
本发明提供一种服务鉴权方法、装置及分布式微服务架构,用以解决现有技术中上述存在的缺陷,实现能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证,也有利于后续服务的拓展和维护。
本发明提供一种服务鉴权方法,应用于服务端,所述方法包括:
接收客户端发送的认证请求;
响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
根据本发明提供的一种服务鉴权方法,所述鉴权参数包括组件编码和第一鉴权口令;
所述基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果,包括:
将所述组件编码和白名单中的组件编码列表进行对比,确定所述组件编码匹配成功,所述白名单预先设置于所述服务端,用于维护网关服务;
确定所述认证请求中的URL中携带的服务名和API存在于所述白名单的可访问资源列表中;
解密第二鉴权口令,确定所述第一鉴权口令与第二鉴权口令相符合,得到第一鉴权结果,所述第一鉴权结果表示放行所述认证请求,所述第二鉴权口令为所述服务端的鉴权口令。
根据本发明提供的一种服务鉴权方法,所述方法还包括:
确定所述组件编码匹配失败,或确定所述服务名和API不存在于所述白名单的可访问资源列表中,或确定所述第一鉴权口令与第二鉴权口令不符合,得到第二鉴权结果,所述第二鉴权结果表示拒绝所述认证请求。
根据本发明提供的一种服务鉴权方法,所述得到第二鉴权结果之后,所述方法还包括:
从各判断流程中确定第二鉴权结果对应的目标流程;
将所述目标流程反馈至所述客户端,以使所述客户端基于所述第二鉴权结果进行问题定位。
根据本发明提供的一种服务鉴权方法,所述接收客户端发送的认证请求之前,还包括:
接收维护端发送的更新后的第一鉴权口令,基于所述更新后的第一鉴权口令确定所述第二鉴权口令,以基于所述第二鉴权口令和客户端的第一鉴权口令进行服务鉴权。
本发明还提供一种服务鉴权方法,应用于客户端,所述方法包括:
向服务端发送认证请求,所述认证请求用于进行服务鉴权;
接收所述服务端发送的鉴权结果,在所述鉴权结果为拒绝所述认证请求的情况下,基于所述鉴权结果进行问题定位。
本发明还提供一种服务鉴权装置,应用于服务端,包括:
接收模块,用于接收客户端发送的认证请求;
解密模块,用于响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
判断模块,用于基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
本发明还提供一种分布式微服务架构,包括客户端、服务端以及维护端;
所述维护端包括鉴权口令维护模块和白名单维护模块;
所述鉴权口令维护模块,用于生成初始鉴权口令、更新鉴权口令以及将口令同步推送到所述客户端和服务端;
所述白名单维护模块,用于维护所述服务端的白名单的组件编码列表和可访问资源列表。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述服务鉴权方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述服务鉴权方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述服务鉴权方法。
本发明提供的服务鉴权方法、装置及分布式微服务架构,通过接收客户端发送的认证请求;响应于认证请求,对认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定认证请求的URL中携带的服务名和API;基于鉴权参数、服务名和API进行服务鉴权判断,确定认证请求的鉴权结果。本发明提出的分布式微服务架构下的服务鉴权方法,能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的服务鉴权方法的流程示意图之一;
图2是本发明提供的服务鉴权方法的流程示意图之二;
图3是本发明提供的服务鉴权装置的结构示意图;
图4是本发明提供的服务鉴权方法的流程示意图之三;
图5是本发明的分布式微服务架构的结构示意图;
图6是本发明的维护端的结构示意图;
图7是鉴权口令维护模块的维护第一鉴权口令页面示意图;
图8是白名单维护模块的维护白名单页面示意图;
图9是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式微服务架构下的微服务往往分布在不同的服务器上,但外部客户端可能需要调用多个微服务的接口才能完成一个业务需求。如此在多个微服务同时被调用的过程中,如何保证高效安全的鉴权认证是个难题,对服务的拓展和维护也带来了极大的负担。
为了解决上述问题,现有的一些方法如下所示:
其一、使用“用户—租户”的机制,根据用户ID和所属的租户ID、token过期时间、用户类别对应的密钥,生成token和refresh token,访问过程中将用户信息和token等一起拼装成JSON字符串,对字符串进行解密从而得到用户权限信息来调用本地缓存资源。
其二、提供可编排的鉴权模块,定义鉴权函数,根据编排文件生成鉴权信息,将鉴权信息发送到服务端服务器进行鉴权检查。
其三,提供一种微服务鉴权认证方法,该方法应用于网关,网关接收到客户端发送的认证请求,从中获取鉴权凭证并解析出鉴权参数,通过鉴权参数来判断客户端是否鉴权通过。
以上方法在一定程度上为微服务之间的调用做了访问控制,但是根本上都只是在调用过程中传递鉴权信息,通过解析鉴权信息来辨认调用方即客户端。
为了解决上述问题,本发明提供一种服务鉴权方法、装置及分布式微服务架构,实现能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证,也有利于后续服务的拓展和维护。
参照图1,本发明提供的服务鉴权方法,应用于服务端,所述方法包括以下步骤:
步骤110、接收客户端发送的认证请求;
步骤140、响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
步骤130、基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
首先需要指出,本发明实施例应用在分布式的微服务架构中,微服务架构是把一个大型的单个应用程序和服务拆分为数个甚至数十个的微服务。围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。
在上述步骤110中,接收客户端发送的认证请求,认证请求即客户端对服务器进行资源调用的请求,通常,认证请求是通过HTTP协议的头部字段发送的,例如Bearer令牌、基本身份验证等。
需要说明的是,本实施例中的认证请求包括:POST URL和鉴权凭证,鉴权凭证包括由鉴权参数通过加密组成的字符串。加密和解密方式可以为对称加解密、非对称加解密、哈希函数加解密等,对此不做具体限定。
然后通过上述步骤120,响应于认证请求,对认证请求中的鉴权信息进行解密,得到鉴权参数,即组件编码和第一鉴权口令,并确定认证请求中的URL所携带的服务名和API,也就是确认认证请求所对应的服务名称和应用程序调用接口。
最后通过上述步骤130,根据上述的鉴权参数和服务名/API,判断客户端请求是否鉴权通过。
其判断的流程主要包括:
(1)判断组件编码是否存在于服务端白名单的组件编码列表中。
(2)判断客户端请求的URL中携带的服务名/API是否存在于服务端白名单的可访问资源列表中。
(3)判断客户端请求中携带的第一鉴权口令与服务端的第一鉴权口令是否符合。
根据上述的判断结果而确定服务的鉴权结果,鉴权结果即为鉴权通过,放行请求,或鉴权未通过,拒绝请求。
本发明提供的服务鉴权方法,通过接收客户端发送的认证请求;响应于认证请求,对认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定认证请求的URL中携带的服务名和API;基于鉴权参数、服务名和API进行服务鉴权判断,确定认证请求的鉴权结果。本发明提出的分布式微服务架构下的服务鉴权方法,能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护。
在一些可选的实施例中,所述鉴权参数包括组件编码和第一鉴权口令;
所述基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果,包括:
将所述组件编码和白名单中的组件编码列表进行对比,确定所述组件编码匹配成功,所述白名单预先设置于所述服务端,用于维护网关服务;
确定所述认证请求中的URL中携带的服务名和API存在于所述白名单的可访问资源列表中;
解密第二鉴权口令,确定所述第一鉴权口令与第二鉴权口令相符合,得到第一鉴权结果,所述第一鉴权结果表示放行所述认证请求,所述第二鉴权口令为所述服务端的鉴权口令。
确定所述组件编码匹配失败,或确定所述服务名和API不存在于所述白名单的可访问资源列表中,或确定所述第一鉴权口令与第二鉴权口令不符合,得到第二鉴权结果,所述第二鉴权结果表示拒绝所述认证请求。
本实施例提供了鉴权判断的具体过程:
首先,将组件编码和白名单中的组件编码列表进行对比,确定组件编码是否匹配成功,若成功则进行下一步判断,若失败则直接拒绝该请求。
需要说明的是,白名单预先设置于服务端,用于维护网关服务,也就是说,服务端组件需要维护自身网关服务的白名单,即通过设置白名单中的组件编码控制哪些组件可以来访问自己。同时,可选地,可以设置白名单中可调用资源的部分,即设置服务端组件的某些服务和API是可以被访问的。
组件编码即一种产品标识,组件编码和微服务是一对多的关系,也就是说一个组件编码可能对应至少一个微服务,而第一鉴权口令则是一种鉴权凭证,有随机数加密而成。
需要说明的是,本实施例中的网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过网关这一层。也就是说,API的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由网关来做,这样既提高业务灵活性又不缺安全性。
其次,判断认证请求中的URL中携带的服务名和API是否存在于白名单的可访问资源列表中,若存在则进行下一步判断,若不存在则直接拒绝该请求。
最后,解密服务端的第二鉴权口令,也就是服务端的第一鉴权口令,判断第一鉴权口令与第二鉴权口令是否相符合,若符合则得到第一鉴权结果,第一鉴权结果表示放行认证请求,若第一鉴权口令与第二鉴权口令不符合,得到第二鉴权结果,第二鉴权结果表示拒绝认证请求。也就是说,当客户端的鉴权口令和服务端的鉴权口令相一致时,客户端发送的认证请求即鉴权通过。
本发明通过对认证需求进行多方面的鉴权判断,从而确定服务的鉴权结果,提高服务鉴权的精确性,并且能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护。
进一步而言,本发明提供的服务鉴权方法,针对客户端请求,不仅针对是哪个客户端进行鉴权信息判断,并且设置三个级别的白名单,从服务、API和接口类型三个级别来控制调用方/客户端能访问被调方/服务端的哪些资源,也就是确定客户端要访问什么资源。
一方面,服务端服务器在接收到客户端请求时,首先会对白名单进行判断,如果不符合,则立即拒绝该请求,减少了解析鉴权信息的成本。另一方面,能够更细粒度地控制可访问资源,可以控制客户端请求仅可以调用服务端服务的指定的部分API。
在一些可选的实施例中,所述得到第二鉴权结果之后,所述方法还包括:
从各判断流程中确定第二鉴权结果对应的目标流程;
将所述目标流程反馈至所述客户端,以使所述客户端基于所述第二鉴权结果进行问题定位。
本实施例中,当认证请求被拒绝时,则需要确定的导致鉴权失败的对应流程,即确认是哪一个判断环节出现了问题,将存在问题的判断流程返回客户端服务,从而让客户端不但可以知晓本次调用是否成功,并且可以通过返回的具体确定是哪个判断逻辑没有通过,从而帮助客户端快速定位问题。
在一些可选的实施例中,所述接收客户端发送的认证请求之前,还包括:
接收维护端发送的更新后的第一鉴权口令,基于所述更新后的第一鉴权口令确定所述第二鉴权口令,以基于所述第二鉴权口令和客户端的第一鉴权口令进行服务鉴权。
需要指出,本实施例中的初始第一鉴权口令在生成之后,会不断进行更新,鉴权口令维护模块会将更新后的口令同步推送到客户端和服务端,以在客户端想服务端发送请求时,利用第一鉴权口令进行服务鉴权。
参照图2,本发明还提供一种服务鉴权方法,应用于客户端,所述方法包括以下步骤:
步骤210、向服务端发送认证请求,所述认证请求用于进行服务鉴权;
步骤220、接收所述服务端发送的鉴权结果,在所述鉴权结果为拒绝所述认证请求的情况下,基于所述鉴权结果进行问题定位。
本实施例是客户端对应服务端的方法流程,其有益效果与服务端的方法流程相同,能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护,在此不再进行赘述。
下面对本发明提供的服务鉴权装置进行描述,下文描述的服务鉴权装置与上文描述的服务鉴权方法可相互对应参照。
参照图3,本发明还提供一种服务鉴权装置,应用于服务端,包括:
接收模块310,用于接收客户端发送的认证请求;
解密模块320,用于响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
判断模块330,用于基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
本发明提供的服务鉴权装置,通过接收客户端发送的认证请求;响应于认证请求,对认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定认证请求的URL中携带的服务名和API;基于鉴权参数、服务名和API进行服务鉴权判断,确定认证请求的鉴权结果。本发明提出的分布式微服务架构下的服务鉴权方法,能在多个微服务同时被调用的过程中,保证既高效又安全的鉴权认证。进一步地,也有利于后续服务的拓展和维护。
在一些实施例中,所述鉴权参数包括组件编码和第一鉴权口令;
所述基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果,包括:
将所述组件编码和白名单中的组件编码列表进行对比,确定所述组件编码匹配成功,所述白名单预先设置于所述服务端,用于维护网关服务;
确定所述认证请求中的URL中携带的服务名和API存在于所述白名单的可访问资源列表中;
解密第二鉴权口令,确定所述第一鉴权口令与第二鉴权口令相符合,得到第一鉴权结果,所述第一鉴权结果表示放行所述认证请求,所述第二鉴权口令为所述服务端的鉴权口令。
在一些实施例中,所述判断模块还用于:
确定所述组件编码匹配失败,或确定所述服务名和API不存在于所述白名单的可访问资源列表中,或确定所述第一鉴权口令与第二鉴权口令不符合,得到第二鉴权结果,所述第二鉴权结果表示拒绝所述认证请求。
在一些实施例中,所述装置还包括反馈模块,所述反馈模块用于:
从各判断流程中确定第二鉴权结果对应的目标流程;
将所述目标流程反馈至所述客户端,以使所述客户端基于所述第二鉴权结果进行问题定位。
在一些实施例中,所述接收客户端发送的认证请求之前,还包括发送模块,所述发送模块用于:
接收维护端发送的更新后的第一鉴权口令,基于所述更新后的第一鉴权口令确定所述第二鉴权口令,以基于所述第二鉴权口令和客户端的第一鉴权口令进行服务鉴权。
参照图4,图4是本发明的服务鉴权方法的完整流程图,包括以下步骤:
步骤410、服务端服务收到请求;
步骤420、解密模块对服务请求中的鉴权参数进行解密,得到组件编码、第一鉴权口令以及请求URL;
步骤430、判断模块收到解密后的鉴权参数;
步骤440、判断组件编码是否存在于白名单中;
步骤450、判断请求的URL中携带的服务名/API是否存在于白名单的可访问资源列表中;
步骤460、判断客户端和服务端的第一鉴权口令是否符合;
步骤470、拒绝请求;
步骤480、放行请求。
进一步地,本发明的完整步骤如下所述:
步骤S1、在维护模块录入客户端和服务端组件的组件编码;
步骤S2、客户端组件需要生成初始的鉴权口令,通过维护模块的口令推送机制,同步到服务端组件。
步骤S3、服务端组件需要维护自身网关服务的白名单,即通过设置白名单中的组件编码控制哪些组件可以来访问自己。同时,可选地,可以设置白名单中可调用资源的部分,即设置服务端组件的某些服务和API是可以被访问的。
步骤S4、客户端与服务端的服务部署并启动。
步骤S5、客户端服务发起调用的请求,服务端服务通过接收模块接收认证请求,再调用解密模块将认证请求中携带的鉴权信息进行解析,得到组件编码和鉴权口令。将组件编码和鉴权口令发送给判断模块,通过与步骤S3中的白名单进行比较,得出该组件编码是否存在于白名单中,如果不存在,则直接拒绝该请求。如果存在,则查看白名单中是否设置了可调用资源的部分,如果没有,则直接拒绝。如果设置了可调用部分服务/部分API,那么判断上述认证请求URL中的微服务名/API是否符合,如果不符合,则拒绝该请求,否则放行请求。
步骤S6:将步骤S5的结果返回客户端服务,从而让客户端知晓本次调用是否成功。并且如果调用失败,则会详细返回具体是哪个判断逻辑没有通过,从而帮助客户端快速定位问题。
参照图5,本发明还提供一种分布式微服务架构,包括客户端510、服务端520以及维护端530;
参照图6,所述维护端630包括鉴权口令维护模块631和白名单维护模块632;
所述鉴权口令维护模块631,用于生成初始鉴权口令、更新鉴权口令以及将口令同步推送到所述客户端和服务端;
所述白名单维护模块632,用于维护所述服务端的白名单的组件编码列表和可访问资源列表。
参照图7,鉴权口令维护模块的维护第一鉴权口令页面如下所示,包括:
密钥标签:XXX(用于加密的标签);
组件编码:XXX;
第一鉴权口令:XXXXXXX;
操作:生成口令下发、重新下发口令。
参照图8,白名单维护模块的维护白名单页面如下所示,包括:
上游组件:
上游组件编码:XXX,XXX,XXX;
白名单列表:
服务级别:
选择服务:XXX,XXX,XXX;
API级别:
选择服务:XXX,XXX,XXX;
选择API:XXX,XXX,XXX;
接口类型级别:
选择服务:XXX,XXX,XXX;
接口分类编码:XXX,XXX,XXX。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行服务鉴权方法,该方法包括:
接收客户端发送的认证请求;
响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的服务鉴权方法,该方法包括:
接收客户端发送的认证请求;
响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的服务鉴权方法,该方法包括:
接收客户端发送的认证请求;
响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种服务鉴权方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的认证请求;
响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
2.根据权利要求1所述的服务鉴权方法,其特征在于,所述鉴权参数包括组件编码和第一鉴权口令;
所述基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果,包括:
将所述组件编码和白名单中的组件编码列表进行对比,确定所述组件编码匹配成功,所述白名单预先设置于所述服务端,用于维护网关服务;
确定所述认证请求中的URL中携带的服务名和API存在于所述白名单的可访问资源列表中;
解密第二鉴权口令,确定所述第一鉴权口令与第二鉴权口令相符合,得到第一鉴权结果,所述第一鉴权结果表示放行所述认证请求,所述第二鉴权口令为所述服务端的鉴权口令。
3.根据权利要求2所述的服务鉴权方法,其特征在于,所述方法还包括:
确定所述组件编码匹配失败,或确定所述服务名和API不存在于所述白名单的可访问资源列表中,或确定所述第一鉴权口令与第二鉴权口令不符合,得到第二鉴权结果,所述第二鉴权结果表示拒绝所述认证请求。
4.根据权利要求3所述的服务鉴权方法,其特征在于,所述得到第二鉴权结果之后,所述方法还包括:
从各判断流程中确定第二鉴权结果对应的目标流程;
将所述目标流程反馈至所述客户端,以使所述客户端基于所述第二鉴权结果进行问题定位。
5.根据权利要求2所述的服务鉴权方法,其特征在于,所述接收客户端发送的认证请求之前,还包括:
接收维护端发送的更新后的第一鉴权口令,基于所述更新后的第一鉴权口令确定所述第二鉴权口令,以基于所述第二鉴权口令和客户端的第一鉴权口令进行服务鉴权。
6.一种服务鉴权方法,其特征在于,应用于客户端,所述方法包括:
向服务端发送认证请求,所述认证请求用于进行服务鉴权;
接收所述服务端发送的鉴权结果,在所述鉴权结果为拒绝所述认证请求的情况下,基于所述鉴权结果进行问题定位。
7.一种服务鉴权装置,其特征在于,应用于服务端,包括:
接收模块,用于接收客户端发送的认证请求;
解密模块,用于响应于所述认证请求,对所述认证请求中携带的鉴权信息进行解密,得到鉴权参数,以及确定所述认证请求的URL中携带的服务名和API;
判断模块,用于基于所述鉴权参数、服务名和API进行服务鉴权判断,确定所述认证请求的鉴权结果。
8.一种分布式微服务架构,其特征在于,包括客户端、服务端以及维护端;
所述维护端包括鉴权口令维护模块和白名单维护模块;
所述鉴权口令维护模块,用于生成初始鉴权口令、更新鉴权口令以及将口令同步推送到所述客户端和服务端;
所述白名单维护模块,用于维护所述服务端的白名单的组件编码列表和可访问资源列表。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述服务鉴权方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述服务鉴权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311437247.5A CN117768144A (zh) | 2023-10-31 | 2023-10-31 | 服务鉴权方法、装置及分布式微服务架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311437247.5A CN117768144A (zh) | 2023-10-31 | 2023-10-31 | 服务鉴权方法、装置及分布式微服务架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117768144A true CN117768144A (zh) | 2024-03-26 |
Family
ID=90313294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311437247.5A Pending CN117768144A (zh) | 2023-10-31 | 2023-10-31 | 服务鉴权方法、装置及分布式微服务架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117768144A (zh) |
-
2023
- 2023-10-31 CN CN202311437247.5A patent/CN117768144A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106357649B (zh) | 用户身份认证系统和方法 | |
US9621355B1 (en) | Securely authorizing client applications on devices to hosted services | |
US8438616B2 (en) | Method for terminal configuration and management and terminal device | |
EP2705642B1 (en) | System and method for providing access credentials | |
US9369873B2 (en) | Network application function authorisation in a generic bootstrapping architecture | |
CN110689332B (zh) | 资源账户绑定方法、存储介质及电子设备 | |
JP2018519706A (ja) | ネットワークアクセスデバイスをワイヤレスネットワークアクセスポイントにアクセスさせるための方法、ネットワークアクセスデバイス、アプリケーションサーバ、および不揮発性コンピュータ可読記憶媒体 | |
CN110933084B (zh) | 一种跨域共享登录态方法、装置、终端及存储介质 | |
TW201707415A (zh) | 安全認證方法、裝置及系統 | |
CN110247758B (zh) | 密码管理的方法、装置及密码管理器 | |
CN110737884A (zh) | 一种跨平台的终端授权管理方法及系统 | |
CN108768928B (zh) | 一种信息获取方法、终端及服务器 | |
CN111132305A (zh) | 5g用户终端接入5g网络的方法、用户终端设备及介质 | |
CN104579657A (zh) | 身份认证方法及装置 | |
CN116233832A (zh) | 验证信息发送方法及装置 | |
CN113852681B (zh) | 一种网关认证方法、装置及安全网关设备 | |
CN110933112A (zh) | 一种入网认证方法、装置和存储介质 | |
CN116647345A (zh) | 权限令牌的生成方法以及装置、存储介质、计算机设备 | |
CN115460015B (zh) | 一种基于TOTP的Web应用的身份认证方法及系统 | |
CN111586007A (zh) | 一种数据传输的安全认证系统和方法 | |
US20220353260A1 (en) | Systems and methods for multi-level authentication | |
CN114158046B (zh) | 一键登录业务的实现方法和装置 | |
CN117768144A (zh) | 服务鉴权方法、装置及分布式微服务架构 | |
CN112235320B (zh) | 一种基于密码的视联网组播通信方法及装置 | |
CN111723347B (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 |