CN110430065B - 一种应用服务调用方法、装置及系统 - Google Patents
一种应用服务调用方法、装置及系统 Download PDFInfo
- Publication number
- CN110430065B CN110430065B CN201910728373.3A CN201910728373A CN110430065B CN 110430065 B CN110430065 B CN 110430065B CN 201910728373 A CN201910728373 A CN 201910728373A CN 110430065 B CN110430065 B CN 110430065B
- Authority
- CN
- China
- Prior art keywords
- request
- token
- application service
- parameter
- application
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012795 verification Methods 0.000 claims abstract description 89
- 238000012545 processing Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims description 22
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 231100000817 safety factor Toxicity 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种应用服务调用方法、装置及系统。应用服务引入并集成统一认证中心提供的Adapter,据此执行:一外部发来包括请求参数及其密文的应用请求时,将请求参数及其密文发送给统一认证中心以作签名验证,并在验证通过时根据其返回的Token作请求处理;一外部发来包括请求参数和Token的应用请求时,验证出Token有效时据此作请求处理;请求参数涉及到访问内部资源时,根据Token中的用户信息向外部返回相应资源,请求参数涉及到调用另一应用服务时,将包括请求参数和Token的应用请求发送给该应用服务。本方案能够在公网http协议下实现应用服务的安全调用。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用服务调用方法、装置及系统。
背景技术
随着应用服务,或称微服务、微服务应用的兴起和广泛使用,应用服务接口的安全性,越来越受到重视。当前较普遍采用的方式是采用Token。Token通常是一个经统一认证中心签名的,并且包含用户信息的字符串。
目前,客户端可以凭借Token调用应用服务接口以发出请求,应用服务收到请求后可从中取得Token。然后,验证Token是否是由统一认证中心签发的并且未失效。若验证通过,应用服务可解析出用户信息,并做相应请求处理。
但是,在公网上使用http协议时,由于http协议是支持明文传输,Token容易被截获,故存在很大的安全风险。
发明内容
本发明提供了一种应用服务调用方法、装置及系统,能够在公网http协议下实现应用服务的安全调用。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种应用服务调用方法,应用于应用服务,引入并集成统一认证中心提供的Adapter(转接器),还包括:
利用所述Adapter,执行下述操作:
拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID;
通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token;
根据所述第一Token,对相应的所述第一应用请求作请求处理;
拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得;
利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,根据所述第二Token,对相应的所述第二应用请求作请求处理;
其中,根据Token对相应的应用请求作请求处理包括:
相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;
相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
进一步地,所述第一请求参数还包括随机数;
在所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心之前,进一步包括:
校验在当前时间之前的预设时长范围内,是否收到过一包括相同随机数的目标请求参数,若是,继续当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
判断所述目标请求参数是否与所述第一请求参数相同,若是,结束当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心。
进一步地,所述利用所述统一认证中心的公钥验证所述第二Token是否有效,包括:
判断本地是否存储有所述统一认证中心的公钥,若是,继续当前流程,否则,从所述统一认证中心中拉取其公钥并存储至本地,并继续当前流程;
利用本地存储的公钥解密所述第二Token,并在解密通过时,确定所述第二Token有效。
第二方面,本发明提供了一种应用服务调用方法,应用于客户端,存储自身的密钥及其密钥ID,还包括:
接收外部输入的、针对一应用服务的调用请求;
在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成包括所述密钥ID的第二请求参数;
利用所述密钥加密所述第二请求参数以获得其密文;
调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务;
接收所述应用服务返回的资源;
以及,未在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成第三请求参数,并确定用户名和密码;
调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;
接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;
调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务;
接收所述应用服务返回的资源。
进一步地,所述第二请求参数包括:查询参数、请求体和请求头;
其中,所述请求头包括:随机数、当前时间戳和所述密钥ID;
其中,所述利用所述密钥加密所述第二请求参数以获得其密文,包括:
按照参数名称的字典顺序对所述查询参数进行排序,排序后将参数名称与值之间连接,参数之间连接,得到查询参数字符串;
将所述请求体中的内容进行加密,对加密后的结果进行编码,再对编码得到的字符串进行字典排序,得到请求体字符串;
按照参数名称的字典顺序对所述请求头中的内容进行排序,排序后将参数名称与值之间连接,参数之间连接,得到请求头字符串;
将所述查询参数字符串、所述请求头字符串、所述请求体字符串按顺序拼接,得到待签名字符串;
利用所述密钥加密所述待签名字符串,并在加密后进行编码得到最终签名,以作为所述第二请求参数的密文。
进一步地,所述未在公网上使用http协议时,包括:在公网上使用https协议时,或,在内网上使用http协议时。
第三方面,本发明提供了一种应用服务调用方法,应用于统一认证中心,向每一个应用服务提供Adapter,存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系,还包括:
在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文;
按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文;
加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token;
在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码;
向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
第四方面,本发明提供了一种用于执行上述任一所述应用服务调用方法的应用服务,包括:配置单元和Adapter;
其中,所述Adapter包括拦截子单元、签名验证子单元、Token验证子单元、请求处理子单元;
其中,配置单元,用于引入并集成统一认证中心提供的所述Adapter;
所述请求拦截子单元,用于拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID;拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得;
所述签名验证子单元,用于通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token;触发所述请求处理子单元根据所述第一Token,对相应的所述第一应用请求作请求处理;
所述Token验证子单元,用于利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,触发所述请求处理子单元根据所述第二Token,对相应的所述第二应用请求作请求处理;
所述请求处理子单元,用于相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
第五方面,本发明提供了一种用于执行上述任一所述应用服务调用方法的客户端,包括:
存储单元,用于存储自身的密钥及其密钥ID;
接收单元,用于接收外部输入的、针对一应用服务的调用请求;
处理单元,用于在公网上使用http协议时,根据所述调用请求,生成包括所述密钥ID的第二请求参数;利用所述密钥加密所述第二请求参数以获得其密文;调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务,并接收所述应用服务返回的资源;以及,未在公网上使用http协议时,根据所述调用请求,生成第三请求参数,并确定用户名和密码;调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务,并接收所述应用服务返回的资源。
第六方面,本发明提供了一种用于上述应用服务调用方法的统一认证中心,包括:
配置单元,用于向每一个应用服务提供转接器Adapter,存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系;
签名验证单元,用于在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文;按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文;加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token;
发放Token单元,用于在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码;向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
第七方面,本发明提供了一种应用服务调用系统,包括:至少一个上述应用服务、至少一个上述客户端,以及上述统一认证中心。
本发明提供了一种应用服务调用方法、装置及系统。应用服务引入并集成统一认证中心提供的Adapter,据此执行:一外部发来包括请求参数及其密文的应用请求时,将请求参数及其密文发送给统一认证中心以作签名验证,并在验证通过时根据其返回的Token作请求处理;一外部发来包括请求参数和Token的应用请求时,验证出Token有效时据此作请求处理;请求参数涉及到访问内部资源时,根据Token中的用户信息向外部返回相应资源,请求参数涉及到调用另一应用服务时,将包括请求参数和Token的应用请求发送给该应用服务。本发明能够在公网http协议下实现应用服务的安全调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种应用服务调用方法的流程图;
图2是本发明一实施例提供的另一种应用服务调用方法的流程图;
图3是本发明一实施例提供的又一种应用服务调用方法的流程图;
图4是本发明一实施例提供的一种应用服务的示意图;
图5是本发明一实施例提供的一种客户端的示意图;
图6是本发明一实施例提供的一种统一认证中心的示意图;
图7是本发明一实施例提供的一种应用服务调用系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种应用服务调用方法,应用于应用服务,可以包括以下步骤:
步骤101:引入并集成统一认证中心提供的Adapter,利用所述Adapter,执行下述步骤102至步骤107。
步骤102:拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID。
步骤103:通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心。
步骤104:接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token,并执行步骤107,以根据所述第一Token,对相应的所述第一应用请求作请求处理。
步骤105:拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得。
步骤106:利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,并执行步骤107,以根据所述第二Token,对相应的所述第二应用请求作请求处理,否则,结束当前流程。
步骤107:相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
本发明实施例提供了一种应用服务调用方法,该方法包括:应用服务引入并集成统一认证中心提供的Adapter,据此执行:一外部发来包括请求参数及其密文的应用请求时,将请求参数及其密文发送给统一认证中心以作签名验证,并在验证通过时根据其返回的Token作请求处理;一外部发来包括请求参数和Token的应用请求时,验证出Token有效时据此作请求处理;请求参数涉及到访问内部资源时,根据Token中的用户信息向外部返回相应资源,请求参数涉及到调用另一应用服务时,将包括请求参数和Token的应用请求发送给该应用服务。本发明实施例能够在公网http协议下实现应用服务的安全调用。
详细地,外部调用一应用服务时,通常会调用其应用服务接口以发送应用请求。
对应地,在应用服务这一端,由Adapter来实现应用请求相关处理。详细地,统一认证中心提供Adapter供各应用服务集成,各应用服务只需引入Adapter即可,并不需要开发签名认证、Token认证相关的代码。
本发明实施例中,外部向应用服务发送的一应用请求,可以包括请求参数、密文及加密所用密钥的密钥ID。由于各个用户的密钥仅用户自身和统一认证中心知道,故应用服务在收到应用请求时,即可触发统一认证中心作验证,以确定请求参数是否被篡改,只有验证通过的应用请求才是安全的,从而可收到统一认证中心返回的包含用户信息的Token,如此即可基于Token来实现应用服务调用。
这一实现路径可以称作“参数签名请求”。由于密钥ID不属于敏感信息,且用户密钥第三方不可知,故即使第三方截获应用请求,也并不会获知用户信息、用户密钥等敏感信息。如此,这一实现方式适用于安全系数较低的应用场景。举例来说,基于公网http协议的客户端向一应用服务发送应用请求时,即可采用这一实现路径,以保障信息传递安全性。如此,步骤102中的外部通常可以为一基于公网http协议的客户端。
请参考步骤107可知,客户端发来的应用请求,通常会涉及到请求访问应用服务中的内部资源。如此,应用服务即可根据Token中的用户信息,找到客户端所请求访问的资源,并将其返回给客户端。
除此之外,为处理应用请求,应用服务有可能还需以用户的身份,继续调用访问另一应用服务。如此,应用服务可以据此重新生成一新应用请求,并将该新应用请求发送给该另一应用服务。
由于应用服务并不知道用户的密钥,无法实现加密操作,从而无法适用上述“参数签名请求”的实现路径,但应用服务持有统一认证中心返回的含用户信息的Token,故应用服务可以基于该Token和相应请求参数来生成新应用请求。上面提到,客户端发来的请求参数并非全部涉及到调用另一应用服务,故用来生成新应用请求的请求参数,即可以为与之相关的那部分请求参数。
如此,包括请求参数和Token的新应用请求发送给该另一应用服务,该另一应用服务即可作应用请求处理。基于此可知,请参考步骤105,本应用服务同样也会收到其他应用服务发来的应用请求。如此,步骤105中的外部即可以为一应用服务。
由于Token是统一认证中心下发的,以作为应用服务内部调用或应用服务间相互调用的依据,故Token可用其私钥进行加密。由于其公钥对外公开,如此,应用服务在收到一包括请求参数和Token的应用请求时,首先可利用公钥,来验证其中Token的合法性。若验证通过,即可根据Token的用户信息,对应用请求作请求处理。当然,这一请求处理实现方式在上述技术描述中以作说明,本发明实施例在此不作赘述。
与上述“参数签名请求”的实现路径不同,这一实现路径中的应用请求是基于Token的,故该实现路径可称作“Token请求”。
由于“Token请求”这一实现路径涉及到了用户信息,故“Token请求”还可适用于安全系数较高的应用场景。举例来说,基于公网https协议的客户端,以及基于内网http协议的客户端,向一应用服务发送应用请求时,即可采用这一实现路径。比如,客户端可以基于自身的用户名和密码,以向统一认证中心换取相应Token,并据此发出应用请求。如此,步骤105中的外部还可以为一客户端。
由于“Token请求”并不涉及到请求方的加密操作,也未涉及到统一认证中心的相应验证操作,故可以节省计算量,降低相应调用接口的复杂度。
综上所述,本发明实施例提供了“参数签名请求”和“Token请求”这两条实现路径,从而可以分别适用于不同的应用场景,应用范围广泛。创造性的使用了签名换Token的方案,使得应用服务之间的调用全部简化为Token方式调用,且各应用服务无权获得用户的签名密钥,保障了用户签名密钥的安全性。基于此,各个应用服务为处理应用请求,还可向其他应用服务发起新应用请求。
在本发明一个实施例中,Adapter,表现形式可以为一个jar包。每一个应用服务都需要引入该jar包,该jar包可以负责拦截请求,与统一认证中心通信,完成Token和签名的验证。
在本发明一个实施例中,Token的存放位置可以在请求参数的请求头中,参数名可以为Authorization。
本发明实施例中,由于应用请求通常并不校验是谁发来的应用请求,故为了避免第三方截获应用请求后重放,可以在请求参数中加入随机数。随机数通常可以为较长的一串字符串,以在一定时间内通常具有唯一性,且字符串便于唯一性与否的校验。
举例来说,客户端发出应用请求,以请求自身的账单消费记录时,该应用请求会最早到达应用服务。若第三方在发送过程中截获应用请求,并发送给应用服务,则该应用服务会随后到达应用服务。由于第三方并未更改应用请求,故若不作区分,应用服务会分别返回这一账单消费记录,从而造成用户信息泄漏。
为解决这一重放问题,可在请求参数中加入随机数。如此,应用服务可以在预设时长范围内,仅回复最早发出应用请求的请求方,而不理会后续发出相同应用请求的请求方。
基于上述内容,在本发明一个实施例中,所述第一请求参数还包括随机数;
在所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心之前,进一步包括:
校验在当前时间之前的预设时长范围内,是否收到过一包括相同随机数的目标请求参数,若是,继续当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
判断所述目标请求参数是否与所述第一请求参数相同,若是,结束当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心。
当然,即使第三方截获后更改了随机数,但由于并不会获取密钥,故密文并未做相应改变,如此发送应用请求时,即便被判定为不同的应用请求,在后续的统一认证中心做签名验证时,仍为验证不通过。如此,本发明实施例中可以避免重放问题。
考虑到网络安全性低的情况下才可能出现数据截获情况,故对于“Token请求”的实现路径,由于是在网络安全性高的情况下,通常不会出现数据截获情况,故相应应用请求的请求参数中,可以不包括随机数,从而应用处理收到相应应用请求时,对应的也不作如上所述的随机数校验相关操作。
综上所述,本发明实施例中,客户端发出的应用请求中,请求参数包括随机数,应用服务收到该应用请求时会做随机数校验相关操作,从而可以避免重放问题。
在本发明一个实施例中,步骤106中,所述利用所述统一认证中心的公钥验证所述第二Token是否有效,包括:
判断本地是否存储有所述统一认证中心的公钥,若是,继续当前流程,否则,从所述统一认证中心中拉取其公钥并存储至本地,并继续当前流程;
利用本地存储的公钥解密所述第二Token,并在解密通过时,确定所述第二Token有效。
本发明实施例中,应用服务首次从统一认证中心中拉取公钥后可以进行本地缓存,后续直接利用缓存的公钥执行校验即可。
在本发明一个实施例中,Token可以是JWT格式的。Token由统一认证中心签发,其公钥对外公开,各应用服务可以使用公钥验证Token是否被篡改。
在本发明一个实施例中,在完成参数签名验证或Token验证之后,在作请求处理之前,还可以作鉴权,即验证当前请求者有无请求当前接口的权限。鉴权通过后,才可到达要访问的资源。
与上述任一应用于应用服务的应用服务调用方法相对应的,如图2所示,本发明一个实施例提供了一种应用服务调用方法,应用于客户端,可以包括以下步骤:
步骤201:存储自身的密钥及其密钥ID。
步骤202:接收外部输入的、针对一应用服务的调用请求,并执行步骤203或步骤207。
步骤203:在公网上使用http协议时,根据所述调用请求,生成包括所述密钥ID的第二请求参数。
步骤204:利用所述密钥加密所述第二请求参数以获得其密文。
步骤205:调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务。
步骤206:接收所述应用服务返回的资源,并结束当前流程。
步骤207:未在公网上使用http协议时,根据所述调用请求,生成第三请求参数,并确定用户名和密码。
步骤208:调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心。
步骤209:接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息。
步骤210:调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务。
步骤211:接收所述应用服务返回的资源。
详细地,用户需要调用一应用服务时,需要将请求需求输入客户端以发出调用请求。当然,通常还需直接或间接指定待调用的是哪一应用服务。
本发明实施例中,上述步骤203至步骤206对应于上述“参数签名请求”的实现路径,上述步骤步骤207至步骤211对应于上述“Token请求”的实现路径。
对于“参数签名请求”,客户端用自身的密钥加密请求参数以获得密文。对应地,统一认证中心根据请求参数中的密钥ID找到存储的该密钥后,再做相应验证。验证通过后,应用服务即可访问用户所请求访问的资源,并将资源最终返回给客户端。
对于“Token请求”,客户端用自身的用户名密码,比如通常可以为用户发出调用请求时输入的用户名和密码,向统一认证中心换取Token,该Token含相应用户信息,并用统一认证中心的私钥加密所获得。然后,客户端生成包括该Token和请求参数的应用请求并发送给应用服务。应用服务用户公钥校验Token的有效性,校验通过后,应用服务即可访问用户所请求访问的资源,并将资源最终返回给客户端。
在本发明一个实施例中,Token可以是JWT格式的。Token的存放位置可以在请求参数的请求头中,参数名可以为Authorization。
在本发明一个实施例中,步骤207中,所述未在公网上使用http协议时,包括:在公网上使用https协议时,或,在内网上使用http协议时。
在本发明一个实施例中,所述第二请求参数包括:查询参数、请求体和请求头;
其中,所述请求头包括:随机数、当前时间戳和所述密钥ID;
其中,所述步骤204,包括:按照参数名称的字典顺序对所述查询参数进行排序,排序后将参数名称与值之间连接,参数之间连接,得到查询参数字符串;将所述请求体中的内容进行加密,对加密后的结果进行编码,再对编码得到的字符串进行字典排序,得到请求体字符串;按照参数名称的字典顺序对所述请求头中的内容进行排序,排序后将参数名称与值之间连接,参数之间连接,得到请求头字符串;将所述查询参数字符串、所述请求头字符串、所述请求体字符串按顺序拼接,得到待签名字符串;利用所述密钥加密所述待签名字符串,并在加密后进行编码得到最终签名,以作为所述第二请求参数的密文。
举例来说,这一加密过程可以如下所述:
(1)对于查询参数,按照参数名称的字典顺序进行排序,排序后将参数名称与值之间使用“=”连接,参数之间使用“&”连接,得到查询参数字符串queryParamString。
(2)将请求body体中的内容进行MD5加密,对加密后的结果进行base64编码,得到一个string字符串,再对编码后的字符串进行字典排序,得到bodyString。
(3)请求header中必须包括如下固定参数:
a)x-random,一组随机数,防重放。
b)x-time,当前时间戳,标记请求发起时间。
c)x-secret-id,密钥ID。
将以上header参数,按照参数名称的字典顺序进行排序,排序后将参数名称与值之间使用“=”连接,参数之间使用“&”连接,得到header参数字符串headerParamString。
(4)将queryParamString、headerParamString、bodyString,按所述顺序拼接,连接符为“&&”,得到最终待签名的字符串signString。
(5)使用用户的密钥做为加密密钥,将signStirng使用HMAC-MD5方法进行加密,加密后进行base64编码,得到最终的签名signature。
然后,即可将signature放入header中,以“signature”为键,发起接口调用。
对应地,应用请求到达应用服务后,应用服务即可从中取出header参数、查询参数、body参数和signature,放入新请求的Body体中,然后调用统一认证中心的签名验证接口来发送新请求。
对应地,统一认证中心收到验签请求后,从新请求的Body体中取得原始请求的header参数、查询参数和body参数,以上述同样的方式对这些参数进行排序、拼接和签名,然后比对签名结果是否与请求中的签名结果signature一致,如果一致,则生成当前请求者的Token并返回。
与上述任一应用于应用服务的应用服务调用方法和上述任一应用于客户端的应用服务调用方法相对应的,如图3所示,本发明一个实施例提供了一种应用服务调用方法,应用于统一认证中心,可以包括以下步骤:
步骤301:向每一个应用服务提供Adapter。
步骤302:存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系。
步骤303:在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文。
步骤304:按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文。
步骤305:加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token。
步骤306:在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码。
步骤307:向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
本发明实施例中,上述步骤303至步骤305对应于上述“参数签名请求”的实现路径,上述步骤步骤306至步骤307对应于上述“Token请求”的实现路径。统一认证中心在应用服务调用中的具体操作实现,可参考上述内容,本发明实施例在此不做赘述。
如图4所示,本发明一个实施例提供了一种用于执行上述任一所述应用服务调用方法的应用服务,包括:配置单元401和Adapter402;
其中,所述Adapter402包括拦截子单元4021、签名验证子单元4022、Token验证子单元4023、请求处理子单元4024;
其中,配置单元401,用于引入并集成统一认证中心提供的所述Adapter402;
所述请求拦截子单元4021,用于拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID;拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得;
所述签名验证子单元4022,用于通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token;触发所述请求处理子单元4024根据所述第一Token,对相应的所述第一应用请求作请求处理;
所述Token验证子单元4023,用于利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,触发所述请求处理子单元4024根据所述第二Token,对相应的所述第二应用请求作请求处理;
所述请求处理子单元4024,用于相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
如图5所示,本发明一个实施例提供了一种用于执行上述任一所述应用服务调用方法的客户端,包括:
存储单元501,用于存储自身的密钥及其密钥ID;
接收单元502,用于接收外部输入的、针对一应用服务的调用请求;
处理单元503,用于在公网上使用http协议时,根据所述调用请求,生成包括所述密钥ID的第二请求参数;利用所述密钥加密所述第二请求参数以获得其密文;调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务,并接收所述应用服务返回的资源;以及,未在公网上使用http协议时,根据所述调用请求,生成第三请求参数,并确定用户名和密码;调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务,并接收所述应用服务返回的资源。
如图6所示,本发明一个实施例提供了一种用于执行上述应用服务调用方法的统一认证中心,包括:
配置单元601,用于向每一个应用服务提供Adapter,存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系;
签名验证单元602,用于在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文;按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文;加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token;
发放Token单元603,用于在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码;向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
如图7所示,本发明一个实施例提供了一种应用服务调用系统,包括:少一个上述应用服务701、至少一个上述客户端702,以及上述统一认证中心703。
详细地,统一认证中心主要负责签发Token、验证签名请求。当然,由于通常还会涉及到鉴权,故统一认证中心同样可称作统一认证鉴权中心,从而还可作权限检查。
详细地,对于应用服务来说,可以将一个功能模块放到一个应用服务中,一个完整的业务系统有多个应用服务组成。
本发明实施例提供了一种同时支持Token调用和参数签名调用的应用服务调用方式,通过该方式,用户既可以选择通过Token调用应用服务,也可以选择通过参数签名的方式调用应用服务。
详细地,Token调用可以适用于https协议和局域网内的http协议的接口调用;参数签名调用可以适用于公网的http协议的调用,Token调用和参数签名调用各有其适用场景,且可相互转换。
综上所述,本发明实施例提供了一种应用服务调用方案,同时支持Token调用和参数签名调用,且在一定条件下可以相互转换,从而既解决了公网http协议不安全的问题,也解决了内网使用参数签名时不方便和不必要的问题。
上述装置、系统内的各单元模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,应用服务引入并集成统一认证中心提供的Adapter,据此执行:一外部发来包括请求参数及其密文的应用请求时,将请求参数及其密文发送给统一认证中心以作签名验证,并在验证通过时根据其返回的Token作请求处理;一外部发来包括请求参数和Token的应用请求时,验证出Token有效时据此作请求处理;请求参数涉及到访问内部资源时,根据Token中的用户信息向外部返回相应资源,请求参数涉及到调用另一应用服务时,将包括请求参数和Token的应用请求发送给该应用服务。本发明实施例能够在公网http协议下实现应用服务的安全调用。
2、本发明实施例中,统一认证中心提供Adapter供各应用服务集成,各应用服务只需引入Adapter即可,并不需要开发签名认证、Token认证相关的代码。
3、本发明实施例中,由于“Token请求”并不涉及到请求方的加密操作,也未涉及到统一认证中心的相应验证操作,故可以节省计算量,降低相应调用接口的复杂度。
4、本发明实施例中,提供了“参数签名请求”和“Token请求”这两条实现路径,从而可以分别适用于不同的应用场景,应用范围广泛。此外,为处理应用请求,各个应用服务还可向其他应用服务发起新应用请求。
5、本发明实施例提供了“参数签名请求”和“Token请求”这两条实现路径,从而可以分别适用于不同的应用场景,应用范围广泛。创造性的使用了签名换Token的方案,使得应用服务之间的调用全部简化为Token方式调用,且各应用服务无权获得用户的签名密钥,保障了用户签名密钥的安全性。基于此,各个应用服务为处理应用请求,还可向其他应用服务发起新应用请求。
6、本发明实施例提供了一种应用服务调用方案,同时支持Token调用和参数签名调用,且在一定条件下可以相互转换,从而既解决了公网http协议不安全的问题,也解决了内网使用参数签名时不方便和不必要的问题。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种应用服务调用方法,其特征在于,应用于应用服务,引入并集成统一认证中心提供的转接器Adapter,还包括:
应用于客户端,存储自身的密钥及其密钥ID,还包括:
接收外部输入的、针对一应用服务的调用请求;
在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成包括所述密钥ID的第二请求参数;
利用所述密钥加密所述第二请求参数以获得其密文;
调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务;
接收所述应用服务返回的资源;
未在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成第三请求参数,并确定用户名和密码;
调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;
接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;
调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务;
接收所述应用服务返回的资源;
利用所述Adapter,执行下述操作:
拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID;
通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token;
根据所述第一Token,对相应的所述第一应用请求作请求处理;
拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得;
利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,根据所述第二Token,对相应的所述第二应用请求作请求处理;
其中,根据Token对相应的应用请求作请求处理包括:
相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;
相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
2.根据权利要求1所述的方法,其特征在于,
所述第一请求参数还包括随机数;
在所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心之前,进一步包括:
校验在当前时间之前的预设时长范围内,是否收到过一包括相同随机数的目标请求参数,若是,继续当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
判断所述目标请求参数是否与所述第一请求参数相同,若是,结束当前流程,否则,执行所述将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;
和/或,
所述利用所述统一认证中心的公钥验证所述第二Token是否有效,包括:
判断本地是否存储有所述统一认证中心的公钥,若是,继续当前流程,否则,从所述统一认证中心中拉取其公钥并存储至本地,并继续当前流程;
利用本地存储的公钥解密所述第二Token,并在解密通过时,确定所述第二Token有效。
3.根据权利要求2所述的方法,其特征在于,
所述第二请求参数包括:查询参数、请求体和请求头;
其中,所述请求头包括:随机数、当前时间戳和所述密钥ID;
其中,所述利用所述密钥加密所述第二请求参数以获得其密文,包括:
按照参数名称的字典顺序对所述查询参数进行排序,排序后将参数名称与值之间连接,参数之间连接,得到查询参数字符串;
将所述请求体中的内容进行加密,对加密后的结果进行编码,再对编码得到的字符串进行字典排序,得到请求体字符串;
按照参数名称的字典顺序对所述请求头中的内容进行排序,排序后将参数名称与值之间连接,参数之间连接,得到请求头字符串;
将所述查询参数字符串、所述请求头字符串、所述请求体字符串按顺序拼接,得到待签名字符串;
利用所述密钥加密所述待签名字符串,并在加密后进行编码得到最终签名,以作为所述第二请求参数的密文。
4.根据权利要求1所述的方法,其特征在于,
所述未在公网上使用http协议时,包括:在公网上使用https协议时,或,在内网上使用http协议时。
5.一种应用服务调用方法,其特征在于,应用于统一认证中心,向每一个应用服务提供转接器Adapter,存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系,还包括:
接收外部输入的、针对一应用服务的调用请求;
在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成包括所述密钥ID的第二请求参数;
利用所述密钥加密所述第二请求参数以获得其密文;
调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务;
接收所述应用服务返回的资源;
未在公网上使用http协议时,执行下述操作:
根据所述调用请求,生成第三请求参数,并确定用户名和密码;
调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;
接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;
调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务;
接收所述应用服务返回的资源;
在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文;
按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文;
加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token;
在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码;
向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
6.一种用于执行权利要求1或2所述应用服务调用方法的装置,其特征在于,包括:配置单元和转接器Adapter;
其中,所述Adapter包括拦截子单元、签名验证子单元、Token验证子单元、请求处理子单元;
其中,配置单元,用于引入并集成统一认证中心提供的所述Adapter;
所述请求拦截子单元,用于拦截一外部通过调用自身的应用服务接口而发来的、包括第一请求参数及其密文的第一应用请求,其中,所述第一请求参数包括加密所述第一请求参数所用密钥的密钥ID;拦截另一外部通过调用自身的应用服务接口而发来的、包括请求参数和第二Token的第二应用请求,其中,所述第二Token包括用户信息且经所述私钥加密而获得;
所述签名验证子单元,用于通过调用所述统一认证中心的签名验证接口,将包括所述第一请求参数及其密文的签名验证请求发送给所述统一认证中心;接收所述统一认证中心返回的、包括所述密钥ID所对应的用户信息、经所述统一认证中心的私钥加密而获得的第一Token;触发所述请求处理子单元根据所述第一Token,对相应的所述第一应用请求作请求处理;
所述Token验证子单元,用于利用所述统一认证中心的公钥验证所述第二Token是否有效,若是,触发所述请求处理子单元根据所述第二Token,对相应的所述第二应用请求作请求处理;
所述请求处理子单元,用于相应应用请求中的请求参数涉及到请求访问内部存储的资源时,根据Token中的用户信息,将所请求访问的资源返回给相应外部;相应应用请求中的请求参数涉及到调用另一应用服务时,通过调用该应用服务的应用服务接口,将包括请求参数和Token的应用请求发送给该应用服务。
7.一种用于执行权利要求1至4中任一所述应用服务调用方法的客户端,其特征在于,包括:
存储单元,用于存储自身的密钥及其密钥ID;
接收单元,用于接收外部输入的、针对一应用服务的调用请求;
处理单元,用于在公网上使用http协议时,根据所述调用请求,生成包括所述密钥ID的第二请求参数;利用所述密钥加密所述第二请求参数以获得其密文;调用所述应用服务的应用服务接口,将包括所述第二请求参数及其密文的应用请求发送给所述应用服务,并接收所述应用服务返回的资源;以及,未在公网上使用http协议时,根据所述调用请求,生成第三请求参数,并确定用户名和密码;调用统一认证中心的获取Token接口,将包括所述用户名和密码的获取Token请求发送给所述统一认证中心;接收所述统一认证中心发来的、经所述统一认证中心的私钥加密而获得的第三Token,其中,所述第三Token包括所述用户名和密码所对应的用户信息;调用所述应用服务的应用服务接口,将包括所述第三请求参数和所述第三Token的应用请求发送给所述应用服务,并接收所述应用服务返回的资源。
8.一种用于执行权利要求5所述应用服务调用方法的统一认证中心,其特征在于,包括:
配置单元,用于向每一个应用服务提供转接器Adapter,存储自身的私钥,以及存储密钥、密钥ID、用户信息、用户名和密码间的对应关系;
签名验证单元,用于在接收到一应用服务通过调用自身的签名验证接口而发来的签名验证请求时,获取所述签名验证请求中的请求参数及其密文;按照相同的请求参数加密方法,利用所述请求参数中密钥ID所对应的密钥,加密所述请求参数以得到密文;加密得到的密文与所述签名验证请求中的密文相一致时,向所述应用服务返回,包括所述请求参数中密钥ID所对应的用户信息、经所述私钥加密而获得的Token;
发放Token单元,用于在接收到一客户端通过调用自身的获取Token接口而发来的获取Token请求时,获取所述获取Token请求中的用户名和密码;向所述客户端返回,包括所述获取Token请求中用户名和密码所对应的用户信息的、经所述私钥加密而获得的Token。
9.一种应用服务调用系统,其特征在于,包括:至少一个如权利要求6所述的装置、至少一个如权利要求7所述的客户端,以及如权利要求8所述的统一认证中心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910728373.3A CN110430065B (zh) | 2019-08-08 | 2019-08-08 | 一种应用服务调用方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910728373.3A CN110430065B (zh) | 2019-08-08 | 2019-08-08 | 一种应用服务调用方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110430065A CN110430065A (zh) | 2019-11-08 |
CN110430065B true CN110430065B (zh) | 2022-03-29 |
Family
ID=68414874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910728373.3A Active CN110430065B (zh) | 2019-08-08 | 2019-08-08 | 一种应用服务调用方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110430065B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971680B (zh) * | 2019-11-22 | 2022-01-28 | 拉扎斯网络科技(上海)有限公司 | 通信方法、装置、系统、电子设备及可读存储介质 |
CN113395310A (zh) * | 2020-03-12 | 2021-09-14 | 华为技术有限公司 | 一种微服务调用方法、装置、设备及介质 |
CN111314491B (zh) * | 2020-03-27 | 2022-07-08 | 北京尚医智信健康管理有限公司 | 跨租户数据交互方法、装置、服务器集群及介质 |
CN111935164B (zh) * | 2020-08-14 | 2022-11-08 | 天元大数据信用管理有限公司 | 一种https接口请求方法 |
CN112202744B (zh) * | 2020-09-23 | 2022-11-01 | 中国建设银行股份有限公司 | 一种多系统数据通信方法和装置 |
CN113204772B (zh) * | 2021-04-26 | 2023-04-28 | 五八有限公司 | 数据处理方法、装置、系统、终端、服务器和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101765108B (zh) * | 2009-07-01 | 2012-05-30 | 北京华胜天成科技股份有限公司 | 基于移动终端的安全认证服务平台系统、装置和方法 |
CN104243435A (zh) * | 2013-06-21 | 2014-12-24 | 镇江新晔网络科技有限公司 | 一种基于OAuth的HTTP协议的通讯方法 |
CN106162574B (zh) * | 2015-04-02 | 2020-08-04 | 成都鼎桥通信技术有限公司 | 集群系统中应用统一鉴权方法、服务器与终端 |
CN105208024B (zh) * | 2015-09-22 | 2019-08-20 | 深圳市金溢科技股份有限公司 | 不使用https的数据安全传输方法及系统、客户端和服务端 |
US20180115542A1 (en) * | 2016-10-24 | 2018-04-26 | Caradigm Usa Llc | Security mechanism for multi-tiered server-implemented applications |
-
2019
- 2019-08-08 CN CN201910728373.3A patent/CN110430065B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110430065A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110430065B (zh) | 一种应用服务调用方法、装置及系统 | |
US20230224167A1 (en) | Access control method based on zero-trust security, device, and storage medium | |
US8621598B2 (en) | Method and apparatus for securely invoking a rest API | |
EP3913854A1 (en) | Methods and systems for pki-based authentication | |
US9172541B2 (en) | System and method for pool-based identity generation and use for service access | |
CN105681470B (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN112000951B (zh) | 一种访问方法、装置、系统、电子设备及存储介质 | |
US10257171B2 (en) | Server public key pinning by URL | |
CN105430014B (zh) | 一种单点登录方法及其系统 | |
CN109981665B (zh) | 资源提供方法及装置、资源访问方法及装置和系统 | |
CN112491881A (zh) | 跨平台单点登录方法、系统、电子设备及存储介质 | |
US8924725B2 (en) | Authenticated file handles for network file systems | |
CN109981287B (zh) | 一种代码签名方法及其存储介质 | |
CN106302606B (zh) | 一种跨应用访问方法及装置 | |
US20180130056A1 (en) | Method and system for transaction security | |
CN111800378A (zh) | 一种登录认证方法、装置、系统和存储介质 | |
CN107566393A (zh) | 一种基于受信任证书的动态权限验证系统及方法 | |
JP5186648B2 (ja) | 安全なオンライン取引を容易にするシステム及び方法 | |
CN109862009A (zh) | 一种客户端身份校验方法及装置 | |
Binu et al. | A mobile based remote user authentication scheme without verifier table for cloud based services | |
US11184339B2 (en) | Method and system for secure communication | |
Deeptha et al. | Extending OpenID connect towards mission critical applications | |
Emmanuel et al. | Mobile Banking in Developing Countries: Secure Framework for Delivery of SMS-banking Services | |
Bauer | Formal analysis of self-issued OpenID providers | |
TW201508538A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park Applicant after: Inspur cloud Information Technology Co.,Ltd. Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park Applicant before: Tidal Cloud Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |