一种认证的方法、装置、计算机设备及存储介质
技术领域
本公开涉及云服务技术领域,具体而言,涉及一种认证的方法、装置、计算机设备及存储介质。
背景技术
云服务是指提供给广大用户使用的共享服务,其中直播云服务可以为广大用户提供共享直播数据的服务。考虑到服务安全和用户权限,云平台可以为某一类用户设立账号,只有具有相关权限的账号才能访问对应的共享服务内容,这就需要对客户端进行认证。
在认证过程中,客户端发送访问云服务端的请求至网关,然后网关向身份与访问管理(Identity and Access Management,IAM)端发送认证请求并接收认证结果,在认证成功后,网关再向云服务端发起访问请求。
上述认证过程由于需要经过网关的中间处理,导致访问路径较长,浪费网络资源。
发明内容
本公开实施例至少提供一种认证的方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种认证的方法,应用于云服务端,包括:
接收应用客户端发送的访问请求;所述访问请求中携带有认证参数信息;
基于所述认证参数信息,从身份与访问管理端获取签名密钥;
基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串;
将所述签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
一种可能的实施方式中,基于所述认证参数信息,从身份与访问管理端获取签名密钥之前,还包括:
基于所述认证参数信息中的第一静态密钥,从缓存中查找与所述第一静态密钥对应的签名密钥;
所述基于所述认证参数信息,从身份与访问管理端获取签名密钥,包括:
若未从缓存中查找到与所述第一静态密钥对应的签名密钥,基于所述认证参数信息,从身份与访问管理端获取所述签名密钥;
所述从身份与访问管理端获取所述签名密钥之后,还包括:
将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中,包括:
基于最近最少使用算法,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,基于所述认证参数信息,从身份与访问管理端获取签名密钥,包括:
将所述认证参数信息中的第一静态密钥和令牌信息发送给身份与访问管理端;所述第一静态密钥和令牌信息用于身份与访问管理端进行合法性校验;
获取所述身份与访问管理端在进行合法性校验通过后生成的所述签名密钥。
一种可能的实施方式中,基于所述认证参数信息生成待签字符串,包括:
基于所述认证参数信息中目标应用的相关服务信息、以及请求时间信息,生成待签字符串。
第二方面,本公开实施例提供了一种认证的方法,应用于身份与访问管理端,包括:
接收云服务端发送的签名密钥获取请求;所述签名密钥获取请求中携带有所述云服务端接收的来自应用客户端的部分认证参数信息;
基于所述部分认证参数信息,生成签名密钥;
将所述签名密钥发送给所述云服务端。
一种可能的实施方式中,所述部分认证参数信息中包含第一静态密钥和令牌信息;
基于所述部分认证参数信息,生成签名密钥,包括:
对所述第一静态密钥和令牌信息进行合法性校验,在合法性校验通过后,生成所述签名密钥。
一种可能的实施方式中,在合法性校验通过后,生成所述签名密钥,包括:
基于所述令牌信息,解析得到第二静态密钥,基于所述第二静态密钥生成所述签名密钥。
第三方面,本公开实施例还提供一种认证的装置,应用于云服务端,包括:
接收模块,用于接收应用客户端发送的访问请求;所述访问请求中携带有认证参数信息;
密钥获取模块,用于基于所述认证参数信息,从身份与访问管理端获取签名密钥;
签名模块,用于基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串;
认证模块,用于将所述签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
一种可能的实施方式中,所述密钥获取模块,在基于所述认证参数信息,从身份与访问管理端获取签名密钥之前,还用于:
基于所述认证参数信息中的第一静态密钥,从缓存中查找与所述第一静态密钥对应的签名密钥;
所述基于所述认证参数信息,从身份与访问管理端获取签名密钥,包括:
若未从缓存中查找到与所述第一静态密钥对应的签名密钥,基于所述认证参数信息,从身份与访问管理端获取所述签名密钥;
所述从身份与访问管理端获取所述签名密钥之后,还包括:
将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,所述密钥获取模块,在将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中时,用于:
基于最近最少使用算法,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,所述密钥获取模块,在基于所述认证参数信息,从身份与访问管理端获取签名密钥时,用于:
将所述认证参数信息中的第一静态密钥和令牌信息发送给身份与访问管理端;所述第一静态密钥和令牌信息用于身份与访问管理端进行合法性校验;
获取所述身份与访问管理端在进行合法性校验通过后生成的所述签名密钥。
一种可能的实施方式中,所述签名模块,在基于所述认证参数信息生成待签字符串时,用于:
基于所述认证参数信息中目标应用的相关服务信息、以及请求时间信息,生成待签字符串。
第四方面,本公开实施例还提供一种认证的装置,应用于身份与访问管理端,包括:
接收模块,用于接收云服务端发送的签名密钥获取请求,所述签名密钥获取请求中携带有所述云服务端接收的来自应用客户端的部分认证参数信息;
密钥生成模块,用于基于所述部分认证参数信息,生成签名密钥;
发送模块,用于将所述签名密钥发送给所述云服务端。
一种可能的实施方式中,所述部分认证参数信息中包含第一静态密钥和令牌信息;
所述密钥生成模块,在基于所述部分认证参数信息,生成签名密钥时,用于:
对所述第一静态密钥和令牌信息进行合法性校验,在合法性校验通过后,生成所述签名密钥。
一种可能的实施方式中,所述密钥生成模块,在合法性校验通过后,生成所述签名密钥时,用于:
基于所述令牌信息,解析得到第二静态密钥,基于所述第二静态密钥生成所述签名密钥。
第五方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
第六方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
本公开实施例提供的认证的方法、装置、计算机设备及计算机可读存储介质中,云服务端先接收应用客户端发送的访问请求,所述访问请求中携带有认证参数信息,再基于所述认证参数信息,向身份与访问管理端发送携带了部分认证参数信息的签名密钥获取请求,随后身份与访问管理端基于这里的部分认证参数信息,生成签名密钥,并将所述签名密钥发送给云服务端,云服务端再基于认证参数信息中的相关信息生成待签字符串,并使用获取的签名密钥对待签字符串进行签名,得到签名后的字符串。最后,云服务端将签名后的字符串与认证参数信息中的签名信息进行比较,确定认证结果。可见,由于本公开实施例中,云服务端可以直接接收应用客户端的访问请求,相比于先经过网关认证再接收所述访问请求,缩短了访问路径,进而提高了客户端的访问效率,同时节省了网关资源和其它网络资源。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种认证的方法的流程图;
图2示出了本公开实施例所提供的认证的方法中,云服务端在认证流程中的执行逻辑流程图;
图3示出了本公开实施例所提供的认证的方法中,身份与访问管理IAM端在认证流程中的执行逻辑流程图;
图4示出了本公开实施例所提供的一种认证的装置400的示意图;
图5示出了本公开实施例所提供的另一种认证的装置500的示意图;
图6示出了本公开实施例所提供的一种计算机设备600的结构示意图;
图7示出了本公开实施例所提供的一种计算机设备700的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,应用客户端访问云服务需要认证过程,而认证过程需要网关的参与,也即应用客户端的访问请求先到达网关,网关再向IAM发起认证并接收认证结果,在认证成功后才会向云服务端发起访问请求,整个访问认证过程较为繁琐,导致访问路径较长,浪费网络资源。
基于上述研究,本公开实施例提供了一种认证的方法、装置、计算机设备及存储介质,在发送的认证请求不经过网关的情况下,完成应用客户端签名信息的认证,简化了认证流程,进而提高了访问效率,节省了网络资源。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种认证的方法进行详细介绍,本公开实施例所提供的认证的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该认证的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的认证的方法的流程图,所述方法包括步骤S101~S106,其中:
S101:云服务端接收应用客户端发送的访问请求,所述访问请求中携带有认证参数信息。
这里,当应用客户端需要使用云服务的时候,会向云服务端发送携带认证信息的访问请求,也即超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求。访问请求中携带有认证参数信息,认证参数信息中包含签名信息以及其他认证参数,比如安全令牌服务(Security Token Service、STS)中的第一静态密钥(Access Key,AK)、服务区域信息(Region)、用STS中的AK和第二静态密钥(Secret Access Key,SK)经过加密算法生成的令牌信息(Session Token)、构造签名的具体时间(Data Time)等。
在具体实施中,上述访问请求中携带的签名信息,可以是应用客户端在从应用服务端获取到STS后,基于STS生成的。这里,没有采用在客户端中预先设置STS或客户端每次需要签名时,向云服务端请求获取STS的方式,而是直接由APP的应用服务端基于预先存储的账号信息为应用客户端生成动态更新的STS,可以提高安全性及访问效率。具体地,应用服务端可以预先获取并存储云服务端为目标应用的用户提供的在约定时期内长期有效的账号信息,账号信息中包含用于生成STS的静态密钥对(上述AK和SK),这样,应用服务端可以响应应用客户端的STS获取请求,基于存储的静态密钥对生成动态的STS并返回给应用客户端,应用客户端在获取到STS后,基于STS生成签名密钥,最后基于签名密钥生成签名信息。
应用客户端在生成签名信息后,将该签名信息携带在上述访问请求中,直接发送给云服务端,同步发送的还有上述其它的认证参数信息。
本公开实施例区别于客户端经过网关访问云服务的方式,直接将访问请求发送给云服务真正的提供方(即所述云服务端),减少了在大流量的请求场景下的机器资源和网络资源的浪费,提高了访问效率,同时避免了因为不同的云服务端向网关发起认证请求,所引起的整个认证系统的兼容性问题。
S102:云服务端基于所述认证参数信息,向IAM端发送签名密钥获取请求。
这里,云服务端从应用客户端接收到访问请求后,对其中的所述认证参数信息进行提取,将提取的部分认证参数信息发送到IAM端,以获取对应的签名密钥(Signed Key)这里的部分认证参数信息包括上述AK和Session Token。
在一种可能的实施方式中,在基于所述认证参数信息,从IAM端获取签名密钥之前,可以先从缓存中查找签名密钥,具体地,基于所述认证参数信息中的所述AK,从缓存中查找与所述AK对应的签名密钥。
这里,IAM中可以在一定时间内缓存所述AK与签名密钥的对应关系,这样,当缓存中存储有查找的AK对应的签名密钥时,可以直接从缓存中获取对应的签名密钥,从而提高了访问效率,避免了对IAM的访问负担。
另外,若未从缓存中查找到与所述AK对应的签名密钥,则需要基于所述认证参数信息,向IAM端请求获取所述签名密钥;
在具体实施中,由于不同用户的账号信息数量庞大且设备的缓存空间有限,无法在缓存中无限期地存储所述AK与签名密钥的对应关系,因此存在无法从缓存查找到所述AK对应的签名密钥的情况。当无法从缓存中查找到所述AK对应的签名密钥时,可以基于所述认证参数信息,向存储有所述账号信息的IAM端请求获取所述签名密钥。
另外,在从IAM端获取所述签名密钥之后,可以将所述签名密钥与所述认证参数信息中的AK对应存储在缓存中,后续再发起访问请求时,可以直接从缓存中查找到该签名密钥。
在一种可能的实施方式中,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中时,可以基于最近最少使用(Least Recently Used,LRU)算法对应的缓存策略更新缓存。
这里,基于LRU算法可以建立一个最近最少使用缓存(Least Recently UsedCache,LRU-Cache),将所述签名密钥与所述认证参数信息中的AK对应存储在缓存中。所述LRU算法可以根据历史访问记录来进行缓存数据淘汰,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
示例性的,所述LRU-Cache可以通过使用一个链表保存缓存数据,具体过程如下:
新数据插入到所述链表的头部;
每当缓存命中(即缓存数据被访问),则将数据移到链表头部;
当链表数据存放满的时候,将链表尾部的数据丢弃。
这样,通过所述LRU-Cache的使用,提高了缓存数据的命中率。
S103:IAM端基于所述签名密钥获取请求中的部分认证参数信息,生成签名密钥,并将所述签名密钥发送给云服务端。
这里,签名密钥获取请求中的认证参数信息可以包括应用客户端发起的访问请求中的部分认证参数:AK、令牌信息和服务区域信息(Region)等。其中,所述令牌信息也即会话控制令牌(Session Token)。
在一种可能的实施方式中,从IAM端获取签名密钥,包括:
将所述认证参数信息中的AK、Session Token和Region发送给所述IAM端;所述AK、Session Token和Region用于IAM端进行合法性校验;
获取所述IAM端在进行合法性校验通过后反解出的所述签名密钥。
这里,所述IAM端对所述AK、Session Token和Region进行合法性校验,当校验结果为合法时,反解出所述签名密钥。
在具体实施中,所述Session Token包含所述认证参数信息,和所述Region共同用于合法性校验,在校验结果为合法时,可以基于IAM端存储的AK与签名密钥的对应关系,确定(即反解出)所述签名密钥。
S104:云服务端基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串。
这里,云服务端可以基于所述认证参数信息中目标应用的相关服务信息、以及请求时间信息,生成待签字符串。
其中,相关服务信息比如包括:应用客户端所在的服务区域信息(Region)、应用标识(APP ID)等;请求时间可以是当前具体的时间点,表达格式不限。
进一步的,云服务端基于S103中得到的签名密钥,按照约定方法,对待签字符串进行签名,这里,约定方法可以是多种开源加密算法之一,比如sha256算法。
示例性的,可以采用上述APP ID、Region、DateTime构造待签字符串(ToSign),比如:Region:="cn-north-1";DateTime:="20200119T153002Z";APP ID:="1001";ToSign:=Region+"\n"+DateTime+"\n"+Room ID。其中,每部分使用换行符"\n"分割,生成的待签字符串用于进行签名。云服务端通过所述签名密钥对所述待签字符串进行签名,即可得到签名后的字符串。
S105:云服务端将签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
这里,云服务端对应用客户端在访问请求中携带的签名信息和上述云服务端计算的签名后的字符串进行比较。若比较结果为一致,则认证成功。
S106:云服务端认证成功后,向应用客户端返回访问数据。
这里,云服务端在对应用客户端认证成功后,可以向应用客户端返回请求的访问数据。若认证失败,可以向应用客户端返回指示认证失败的通知信息,并不再返回访问数据。
下面,分别从云服务端和IAM端,描述本公开实施例的上述认证的方法。
如图2所示,为IAM端在认证流程中的执行逻辑流程图,包括:
S201:接收云服务端发送的签名密钥获取请求,所述签名密钥获取请求中携带有所述云服务端接收的来自应用客户端的部分认证参数信息。
S202:基于所述部分认证参数信息,生成签名密钥。
S203:将所述签名密钥发送给所述云服务端。
如图3所示,为云服务端在认证的流程中的执行逻辑流程图,包括:
S301:接收应用客户端发送的访问请求,所述访问请求中携带有认证参数信息。
S302:基于所述认证参数信息,从身份与访问管理IAM端获取签名密钥。
S303:基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串。
S304:将所述签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
关于上述云服务端和IAM端相关内容的描述详见上述图1相关内容的描述,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与认证的方法对应的认证的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述认证的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种认证的装置400的示意图,所述装置可以部署在云服务端,包括:接收模块401、密钥获取模块402、签名模块403、认证模块404;其中,
接收模块401,用于接收应用客户端发送的访问请求,所述访问请求中携带有认证参数信息;
密钥获取模块402,用于基于所述认证参数信息,从身份与访问管理端获取签名密钥;
签名模块403,用于基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串;
认证模块404,用于将所述签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
一种可能的实施方式中,密钥获取模块402,具体用于:
基于所述认证参数信息中的第一静态密钥,从缓存中查找与所述第一静态密钥对应的签名密钥;
若未从缓存中查找到与所述第一静态密钥对应的签名密钥,基于所述认证参数信息,从身份与访问管理端获取所述签名密钥;
将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,密钥获取模块402,还用于:
基于最近最少使用算法,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
进一步地,密钥获取模块402,具体用于:
将所述认证参数信息中的第一静态密钥和令牌信息发送给身份与访问管理端,所述第一静态密钥和令牌信息用于身份与访问管理端进行合法性校验;
获取所述身份与访问管理端在进行合法性校验通过后生成的所述签名密钥。
一种可能的实施方式中,签名模块403,具体用于:
基于所述认证参数信息中目标应用的相关服务信息、以及请求时间信息,生成待签字符串。
参照图5所示,为本公开实施例提供的另一种认证的装置500的示意图,所述装置可以部署在身份与访问管理端,包括:接收模块501、密钥生成模块502、和发送模块503;其中:
接收模块501,用于接收云服务端发送的签名密钥获取请求,所述签名密钥获取请求中携带有所述云服务端接收的来自应用客户端的部分认证参数信息;
密钥生成模块502,用于基于所述部分认证参数信息,生成签名密钥;
发送模块503,用于将所述签名密钥发送给所述云服务端。
一种可能的实施方式中,接收模块501,具体用于:
接收所述部分认证参数信息中包含的第一静态密钥和令牌信息。
一种可能的实施方式中,密钥生成模块502,具体用于:
对所述第一静态密钥和令牌信息进行合法性校验,在合法性校验通过后,生成所述签名密钥。
进一步地,密钥生成模块502,具体用于:
基于所述令牌信息,解析得到第二静态密钥,基于所述第二静态密钥生成所述签名密钥。
本公开实施例提供的认证的方法、装置、计算机设备及存储介质中,云服务端先接收应用客户端发送的访问请求,所述访问请求中携带有认证参数信息,再基于所述认证参数信息,向身份与访问管理端发送携带了部分认证参数信息的签名密钥获取请求,随后身份与访问管理端基于这里的部分认证参数信息,生成签名密钥,并将所述签名密钥发送给云服务端,云服务端再基于认证参数信息中的相关信息生成待签字符串,并使用获取的签名密钥对待签字符串进行签名,得到签名后的字符串。最后,云服务端将签名后的字符串与认证参数信息中的签名信息进行比较,确定认证结果。可见,由于本公开实施例中,云服务端可以直接接收应用客户端的访问请求,相比于先经过网关认证再接收所述访问请求,缩短了访问路径,进而提高了客户端的访问效率,同时节省了网关资源和其它网络资源。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图6所示,为本公开实施例提供的计算机设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换,当计算机设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601在执行以下指令:
接收应用客户端发送的访问请求;所述访问请求中携带有认证参数信息;
基于所述认证参数信息,从身份与访问管理身份与访问管理端获取签名密钥;
基于所述认证参数信息生成待签字符串,并使用获取的所述签名密钥对待签字符串进行签名,得到签名后的字符串;
将所述签名后的字符串与所述认证参数信息中的签名信息进行比较,确定认证结果。
一种可能的实施方式中,处理器601执行的指令中,基于所述认证参数信息,从身份与访问管理端获取签名密钥之前,还包括:
基于所述认证参数信息中的第一静态密钥,从缓存中查找与所述第一静态密钥对应的签名密钥;
所述基于所述认证参数信息,从身份与访问管理端获取签名密钥,包括:
若未从缓存中查找到与所述第一静态密钥对应的签名密钥,基于所述认证参数信息,从身份与访问管理端获取所述签名密钥;
所述从身份与访问管理端获取所述签名密钥之后,还包括:
将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,处理器601执行的指令中,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中,包括:
基于最近最少使用算法,将所述签名密钥与所述认证参数信息中的第一静态密钥对应存储在缓存中。
一种可能的实施方式中,处理器601执行的指令中,基于所述认证参数信息,从身份与访问管理端获取签名密钥,包括:
将所述认证参数信息中的第一静态密钥和令牌信息发送给身份与访问管理端;所述第一静态密钥和令牌信息用于身份与访问管理端进行合法性校验;
获取所述身份与访问管理端在进行合法性校验通过后生成的所述签名密钥。
一种可能的实施方式中,处理器601执行的指令中,基于所述认证参数信息生成待签字符串,包括:
基于所述认证参数信息中目标应用的相关服务信息、以及请求时间信息,生成待签字符串。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图7所示,为本公开实施例提供的计算机设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换,当计算机设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701在执行以下指令:
接收云服务端发送的签名密钥获取请求,所述签名密钥获取请求中携带有所述云服务端接收的来自应用客户端的部分认证参数信息;
基于所述部分认证参数信息,生成签名密钥;
将所述签名密钥发送给所述云服务端。
一种可能的实施方式中,处理器701执行的指令中,所述部分认证参数信息中包含第一静态密钥和令牌信息;
基于所述部分认证参数信息,生成签名密钥,包括:
对所述第一静态密钥和令牌信息进行合法性校验,在合法性校验通过后,生成所述签名密钥。
一种可能的实施方式中,处理器701执行的指令中,在合法性校验通过后,生成所述签名密钥,包括:
基于所述令牌信息,解析得到第二静态密钥,基于所述第二静态密钥生成所述签名密钥。
上述指令的具体执行过程可以参考本公开实施例中所述的认证的方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的认证的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的认证的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的认证的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。