CN115828309A - 一种服务调用方法及*** - Google Patents
一种服务调用方法及*** Download PDFInfo
- Publication number
- CN115828309A CN115828309A CN202310111684.1A CN202310111684A CN115828309A CN 115828309 A CN115828309 A CN 115828309A CN 202310111684 A CN202310111684 A CN 202310111684A CN 115828309 A CN115828309 A CN 115828309A
- Authority
- CN
- China
- Prior art keywords
- service
- token
- self
- caller
- security center
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012795 verification Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种服务调用方法及***,涉及计算机技术领域。该方法的一具体实施方式包括:利用服务调用方根据自解析令牌向服务提供方发送服务调用请求;所述自解析令牌是安全中心根据所述服务调用方的身份信息和可访问服务的权限信息生成的;利用所述服务提供方确定本地是否存储有所述服务调用方的令牌特征值;在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;在验证通过的情况下,所述服务提供方确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。该实施方式降低了***资源的占用,进而提高了服务性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种服务调用方法及***。
背景技术
在分布式的微服务架构下,为了保证服务调用方和服务提供者之间的信息交换安全性,服务提供者在接收到调用请求后会访问安全中心,以通过安全中心对服务调用方的身份和权限进行验证。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在微服务架构下,各个应用以细粒度的微服务对外提供服务,服务调用方和服务提供者的数量相对于传统单体架构均呈指数级增涨,相应地发起调用请求的频次也大大增涨。因此每次接收到调用请求后再利用安全中心进行验证的方式,使得安全中心成为了处理大量调用请求的中心节点,这导致安全中心很可能成为微服务架构的性能瓶颈,严重迟滞服务性能。
发明内容
有鉴于此,本发明实施例提供一种服务调用方法及***,服务调用方在向服务提供方发送调用请求时携带安全中心预先生成的自解析令牌。服务提供方在接收到调用请求后可以根据本地存储的令牌特征值对自解析令牌进行验证,在验证通过的情况下确定服务调用方可访问的目标服务,并允许服务调用方访问目标服务,从而响应服务调用请求。由此,通过上述验证自解析令牌的方式,服务提供方无需每次接收到调用请求之后均访问安全中心以使得安全中心对本次调用请求进行验证,从而减少对安全中心服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
为实现上述目的,根据本发明实施例的一个方面,提供了一种服务调用方法。
本发明实施例的一种服务调用方法包括:利用服务调用方根据自解析令牌向服务提供方发送服务调用请求;所述自解析令牌是安全中心根据所述服务调用方的身份信息和可访问服务的权限信息生成的;
利用所述服务提供方确定本地是否存储有所述服务调用方的令牌特征值;
在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;
在验证通过的情况下,所述服务提供方确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
可选地,该方法还包括:服务调用方根据自身的身份信息,向所述安全中心发送令牌生成请求;
所述安全中心响应于所述令牌生成请求,对所述身份信息进行验证;
在验证通过的情况下,所述安全中心根据所述身份信息、预先存储的所述服务调用方的访问权限列表以及自身的私钥,生成所述自解析令牌,并将所述自解析令牌发送给所述服务调用方。
可选地,所述服务调用方的身份信息包括应用名称和应用类型;所述安全中心根据所述身份信息、预先存储的所述服务调用方的访问权限列表以及自身的私钥,生成所述自解析令牌,包括:
所述安全中心计算所述访问权限列表的散列值,并生成与所述令牌生成请求对应的随机数;
根据所述应用名称、所述应用类型、所述散列值和所述随机数计算第一令牌签名值;
利用所述私钥对所述第一令牌签名值进行签名,以生成所述自解析令牌。
可选地,该方法还包括:
所述安全中心确定失效时间和令牌版本信息;
所述根据所述应用名称、所述应用类型、所述散列值和所述随机数计算第一令牌签名值,包括:
对所述失效时间、所述令牌版本信息、所述应用名称、所述应用类型、所述散列值和所述随机数进行摘要计算,得到所述第一令牌签名值。
可选地,所述服务调用方基于SSL通信链路向所述安全中心发送所述令牌生成请求;
可选地,所述安全中心基于SSL通信链路将所述自解析令牌发送给所述服务调用方。
可选地,所述根据所述令牌特征值对所述自解析令牌进行验证,包括:
确定所述自解析令牌的值是否与所述令牌特征值相同,在相同的情况下,确定所述自解析令牌验证通过。
可选地,在所述服务提供方本地不存在所述令牌特征值的情况下,还包括:
所述服务提供方从所述安全中心获取所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数和所述安全中心的公钥;
根据所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数计算第二令牌签名值;
根据所述第二令牌签名值和所述公钥,对所述自解析令牌进行验证。
可选地,在根据所述第二令牌签名值和所述公钥确定所述自解析令牌验证通过之后,还包括:
将所述自解析令牌的值存储在本地,作为所述服务调用方的令牌特征值。
可选地,所述服务提供方确定所述服务调用方可访问的目标服务,包括:
所述服务提供方将自身提供的服务进行散列计算,并根据散列计算结果以及所述服务调用方的访问权限列表,确定所述服务调用方可访问的目标服务。
为实现上述目的,根据本发明实施例的又一方面,提供了一种服务调用***。
本发明实施例的一种服务调用***包括:服务调用方、安全中心和服务提供方;其中,
所述安全中心,用于根据所述服务调用方的身份信息和可访问服务的权限信息生成所述服务调用方对应的自解析令牌;
所述服务调用方,用于根据所述自解析令牌向服务提供方发送服务调用请求;
所述服务提供方,用于确定本地是否存储有所述服务调用方的令牌特征值;在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;在验证通过的情况下,确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
为实现上述目的,根据本发明实施例的又一方面,提供了一种服务调用的电子设备。
本发明实施例的一种服务调用的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种服务调用的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种服务调用的方法。
上述发明中的一个实施例具有如下优点或有益效果:服务调用方在向服务提供方发送调用请求时携带安全中心预先生成的自解析令牌。服务提供方在接收到调用请求后可以根据本地存储的令牌特征值对自解析令牌进行验证,在验证通过的情况下确定服务调用方可访问的目标服务,并允许服务调用方访问目标服务,从而响应服务调用请求。由此,通过上述验证自解析令牌的方式,服务提供方无需每次接收到调用请求之后均访问安全中心以使得安全中心对本次调用请求进行验证,从而减少对安全中心服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种服务调用方法的主要步骤的示意图;
图2是根据本发明实施例的一种服务调用***的主要架构示意图;
图3是根据本发明实施例的另一种服务调用方法的主要步骤的示意图;
图4是根据本发明实施例的一种服务调用***的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的一种服务调用方法的主要步骤的示意图。
如图1所示,本发明实施例的一种服务调用方法主要包括以下步骤:
步骤S101:利用服务调用方根据自解析令牌向服务提供方发送服务调用请求;所述自解析令牌是安全中心根据所述服务调用方的身份信息和可访问服务的权限信息生成的;
步骤S102:利用所述服务提供方确定本地是否存储有所述服务调用方的令牌特征值;在存在的情况下执行步骤S103。
步骤S103:根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证,在验证通过的情况下执行步骤S104。
步骤S104:所述服务提供方确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
在本发明实施例中,服务调用方可以预先与安全中心建立互信关系,安全中心存储有所有建立了互信关系的服务调用方的身份信息和权限信息;其中,身份信息包括服务调用方的应用名称和应用类型,权限信息包括服务调用方可被授权访问的服务列表信息。服务调用方在首次调用服务前(如在启动后)或者上一次申请的自解析令牌过期后,可向安全中心发起令牌生成请求。具体地,服务调用方根据自身的身份信息,向安全中心发送令牌生成请求;安全中心响应于令牌生成请求,对身份信息进行验证;在验证通过的情况下,安全中心根据身份信息、预先存储的服务调用方的访问权限列表以及自身的私钥,生成所述自解析令牌,并将自解析令牌发送给所述服务调用方。
其中,服务调用方在发送令牌生成请求时,可以根据基于SSL(Secure SocketLayer,安全套接层)的通信链路向安全中心发送携带其身份信息和密码的令牌生成请求,以便于数据加密传输,保证数据安全。安全中心在获取到服务调用方的令牌生成请求后,对服务调用方的身份信息进行验证,例如,验证令牌生成请求中携带的身份信息和密码,确定该服务调用方是否属于预先建立互信关系(如预先在安全中心注册)的服务调用方,如果是,则确定服务调用方的身份信息验证通过。
在身份信息验证通过后,安全中心根据服务调用方的身份信息、预先存储的服务调用方的访问权限列表以及自身的私钥,生成自解析令牌。具体地,安全中心计算访问权限列表的散列值,并生成与令牌生成请求对应的随机数;根据服务调用方的应用名称、应用类型、访问权限列表的散列值和随机数计算第一令牌签名值;利用所述私钥对第一令牌签名值进行签名,以生成所述自解析令牌。
进一步地,在本发明一个实施例中,安全中心还可以确定自解析令牌的失效时间和令牌版本信息,然后对失效时间、令牌版本信息、服务调用方的应用名称和应用类型、散列值和随机数进行摘要计算,得到所述第一令牌签名值。
在此实施例中,安全中心在获取到服务调用方的令牌生成请求后,根据预先保存的服务调用方的权限信息,创建专属于该服务调用方的自解析令牌,自解析令牌包括的字段如下表1所示:
表1
其中,访问权限列表是服务调用方被授权访问的服务列表信息,安全中心可计算其散列值,以便根据散列值生成自解析令牌。另外,令牌时效时间由安全中心设置,例如为生成自解析令牌后的6~8h之内的随机时间。第一令牌签名值是对服务调用方的应用名称、应用类型、访问权限列表的散列值、随机数、令牌时效时间和令牌版本信息进行摘要计算得到的,最后再利用安全中心专属的私钥对该第一令牌签名值进行签名,得到自解析令牌。也就是说,自解析令牌本质上是字符串,其由两层信息组成,内层(第一令牌签名值)是服务调用方的身份信息以及权限信息等,这部分采用哈希算法加密得到,外层是安全中心对内层信息利用非对称密钥算法再次加密得到。安全中心在生成自解析令牌后,可基于SSL通信链路将所述自解析令牌发送给所述服务调用方,以保证数据安全。服务调用者从安全中心获取到自解析令牌后,在内存中存储该自解析令牌,在令牌有效期内无需再次申请,在后续服务调用时根据该自解析令牌向服务提供方发起服务调用请求即可。
服务提供方在接收到服务调用请求之后,需要对自解析令牌进行验证,以对服务调用方的身份和可访问权限进行验证。在本发明一个实施例中,若服务提供方本地存储有服务调用方的令牌特征值,则确定所述自解析令牌的值是否与所述令牌特征值相同,在相同的情况下,确定所述自解析令牌验证通过。如上所述,自解析令牌是安全中心利用其私钥对第一令牌签名值签名得到的,其本质是字符串,因此在对 自解析令牌进行验证时,可以直接验证该字符串与服务提供方本地存储的令牌特征值是否相同。其中,令牌特征值可以是上一次服务调用方根据该自解析令牌发起服务调用请求时,服务提供方在验证通过后存储在本地的。
基于此,在本发明另一个实施例中,若服务调用方是首次基于自解析令牌发起服务调用请求,那么服务提供方本地不存在该自解析令牌的令牌特征值,在此情况下,服务提供方可以从安全中心获取服务调用方的应用名称和应用类型、以及失效时间、令牌版本信息、散列值、随机数和安全中心的公钥,并根据所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数计算第二令牌签名值;然后根据所述第二令牌签名值和所述公钥,对所述自解析令牌进行验证。
在这里,服务提供方可以从安全中心获取与自解析令牌对应的应用名称和应用类型、以及失效时间、令牌版本信息、散列值、随机数,然后利用与生成自解析令牌相同的哈希算法计算得到第二令牌签名值,并且利用安全中心的公钥对服务调用方发送的自解析令牌进行解密,得到第一令牌签名值。若新生成的第二令牌签名值和解密得到的第一令牌签名值相同,那么可以确定自解析令牌确为安全中心签发的,由此可以确定服务调用者的身份验证通过。
然后,服务提供方可以根据自解析令牌进一步可访问服务权限的验证,以确定服务调用方可访问的目标服务。在本发明一个实施例中,服务提供方将自身提供的服务进行散列计算,并根据散列计算结果以及服务调用方的访问权限列表,确定服务调用方可访问的目标服务。
在这里,服务提供方将自身所提供的服务做散列计算,然后与服务调用方的访问权限列表的散列结果进行比对,若自身提供的服务存在于调用者的可访问访问权限列表中,则认为服务调用者具有访问该服务的权限;若不存在,则认为服务调用者没有访问该服务的权限,由此可以确定出服务调用者可访问的目标服务。若服务调用者本次调用的服务属于目标服务,那么服务提供者允许服务调用者访问目标服务,以响应服务调用请求;若服务调用者本次调用的服务不属于目标服务,也即服务调用者没有访问相应服务的权限,那么服务提供者可以直接返回令牌权限验证错误的结果给服务调用者。
另外,在身份验证和可访问服务权限验证通过后,服务提供方可以将自解析令牌的值存储在本地,作为该自解析令牌的令牌特征值,以便后续服务调用方再次根据该自解析令牌发起服务调用请求时,服务提供方可直接根据本地的令牌特征值对自解析令牌进行验证。在本地存储令牌特征值时,可以根据自解析令牌的失效时间设置令牌特征值的失效时间,由此当再次接收到根据自解析令牌发起的服务调用请求后,可确定本地是否存在有效的令牌特征值,在令牌特征值有效的情况下,再根据令牌特征值对自解析令牌进行验证。由此,服务提供者在首次获取到根据自解析令牌发起的服务调用请求后,只需从安全中心获取该自解析令牌的解密密钥即可对自解析令牌进行解析,进而验证服务调用方的身份和可访问权限,而无需多次访问安全中心,从而不仅降低了服务调用过程中账号密码泄露的可能性,也减少了对服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
下面根据如图2所示的架构图,对本发明实施例提供的服务调用方法进行进一步说明,如图3所示,该方法可以包括以下步骤:
步骤S301:服务调用方根据自身的身份信息,向安全中心发送令牌生成请求。
该步骤对应于图2的架构图中的第一步,即服务调用方向安全中心请求自解析令牌。
步骤S302:安全中心根据令牌生成请求,对服务调用方的身份进行验证。在验证通过的情况下执行步骤S303,在验证不通过的情况下拒绝令牌生成请求,并结束当前流程。
步骤S303:安全中心确定失效时间和令牌版本信息,并生成随机数;对失效时间、令牌版本信息、随机数、服务调用方的应用名称、应用类型、访问权限列表的散列值进行摘要计算,得到第一令牌签名值。
步骤S304:安全中心利用私钥对第一令牌签名值进行签名,得到自解析令牌,并将自解析令牌发送给服务调用方。
其中,步骤S302-步骤S304为安全中心生成自解析令牌的过程,对应于图2中安全中心向服务调用方返回自解析令牌的步骤。
步骤S305:服务调用方根据自解析令牌向服务提供方发送服务调用请求。
步骤S306:服务提供方确定本地是否存储有服务调用方的令牌特征值,如果存在执行步骤S307,否则执行步骤S308。
在这里,若服务提供方本地存储有令牌特征值,说明服务调用方并非首次根据自解析令牌发起服务调用请求,反之,若服务提供方本地不存在令牌特征值,说明服务调用方是首次根据自解析令牌发起服务调用请求或者此前申请的自解析令牌已过期。
步骤S307:根据令牌特征值对自解析令牌进行验证,在验证通过的情况下执行步骤S309,否则拒绝服务调用请求并结束当前流程。
步骤S308:服务提供方从安全中心获取所述服务调用方的应用名称和应用类型、以及失效时间、令牌版本信息、散列值、述随机数和安全中心的公钥,并计算第二令牌签名值;根据所述第二令牌签名值和所述公钥,对所述自解析令牌进行验证。在验证通过的情况下执行步骤S309,否则拒绝服务调用请求并结束当前流程。
其中,服务提供方与安全中心也可预先建立互信关系,由此在服务调用方首次根据自解析令牌发起服务调用请求时,服务提供方可以根据互信关系获取安全中心的公钥,以对自解析令牌进行验证,以确认令牌真实性。
步骤S309:服务提供方将自身提供的服务进行散列计算,并根据散列计算结果以及服务调用方的访问权限列表,确定服务调用方可访问的目标服务。
步骤S310:服务提供方允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
在这里,服务提供方将自身所提供的服务做散列计算,然后与服务调用方的访问权限列表的散列结果进行比对,若自身提供的服务存在于调用者的可访问访问权限列表中,则认为服务调用者具有访问该服务的权限;若不存在,则认为服务调用者没有访问该服务的权限,由此可以确定出服务调用者可访问的目标服务。若服务调用者本次调用的服务属于目标服务,那么服务提供者允许服务调用者访问目标服务,以响应服务调用请求;若服务调用者本次调用的服务不属于目标服务,也即服务调用者没有访问相应服务的权限,那么服务提供者可以直接返回令牌权限验证错误的结果给服务调用者。
根据本发明实施例的一种服务调用方法可以看出,服务调用方在向服务提供方发送调用请求时携带安全中心预先生成的自解析令牌。服务提供方在接收到调用请求后可以根据本地存储的令牌特征值对自解析令牌进行验证,在验证通过的情况下确定服务调用方可访问的目标服务,并允许服务调用方访问目标服务,从而响应服务调用请求。由此,通过上述验证自解析令牌的方式,服务提供方无需每次接收到调用请求之后均访问安全中心以使得安全中心对本次调用请求进行验证,从而减少对安全中心服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
图4是根据本发明实施例的服务调用***的主要模块的示意图。
如图4所示,本发明实施例的一种服务调用***400包括:服务调用方401、安全中心402和服务提供方403;其中,
所述安全中心402,用于根据所述服务调用方401的身份信息和可访问服务的权限信息生成所述服务调用方401对应的自解析令牌;
所述服务调用方401,用于根据所述自解析令牌向服务提供方403发送服务调用请求;
所述服务提供方403,用于确定本地是否存储有所述服务调用方的令牌特征值;在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;在验证通过的情况下,确定所述服务调用方401可访问的目标服务,并允许所述服务调用方401访问所述目标服务,以响应所述服务调用请求。
在本发明一个实施例中,服务调用方401用于根据自身的身份信息,向所述安全中心402发送令牌生成请求;
所述安全中心,用于响应于所述令牌生成请求,对所述身份信息进行验证;在验证通过的情况下,根据所述身份信息、预先存储的所述服务调用方401的访问权限列表以及自身的私钥,生成所述自解析令牌,并将所述自解析令牌发送给所述服务调用方401。
在本发明一个实施例中,所述服务调用方的身份信息包括应用名称和应用类型;所述安全中心402,用于计算所述访问权限列表的散列值,并生成与所述令牌生成请求对应的随机数;根据所述应用名称、所述应用类型、所述散列值和所述随机数计算第一令牌签名值;利用所述私钥对所述第一令牌签名值进行签名,以生成所述自解析令牌。
在本发明一个实施例中,所述安全中心402,用于确定失效时间和令牌版本信息;对所述失效时间、所述令牌版本信息、所述应用名称、所述应用类型、所述散列值和所述随机数进行摘要计算,得到所述第一令牌签名值。
在本发明一个实施例中,所述服务调用方基于SSL通信链路向所述安全中心发送所述令牌生成请求。
在本发明一个实施例中,所述安全中心基于SSL通信链路将所述自解析令牌发送给所述服务调用方。
在本发明一个实施例中,所述服务提供方403,用于确定所述自解析令牌的值是否与所述令牌特征值相同,在相同的情况下,确定所述自解析令牌验证通过。
在本发明一个实施例中,所述服务提供方403,用于在所述服务提供方本地不存在所述令牌特征值的情况下,从所述安全中心402获取所述服务调用方401的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数和所述安全中心的公钥;根据所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数计算第二令牌签名值;根据所述第二令牌签名值和所述公钥,对所述自解析令牌进行验证。
在本发明一个实施例中,服务提供方403还用于将所述自解析令牌的值存储在本地,作为所述服务调用方的令牌特征值。
在本发明一个实施例中,所述服务提供方403用于将自身提供的服务进行散列计算,并根据散列计算结果以及所述服务调用方401的访问权限列表,确定所述服务调用方401可访问的目标服务。
根据本发明实施例的一种服务调用***可以看出,服务调用方在向服务提供方发送调用请求时携带安全中心预先生成的自解析令牌。服务提供方在接收到调用请求后可以根据本地存储的令牌特征值对自解析令牌进行验证,在验证通过的情况下确定服务调用方可访问的目标服务,并允许服务调用方访问目标服务,从而响应服务调用请求。由此,通过上述验证自解析令牌的方式,服务提供方无需每次接收到调用请求之后均访问安全中心以使得安全中心对本次调用请求进行验证,从而减少对安全中心服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
图5示出了可以应用本发明实施例的一种服务调用方法或一种服务调用***的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503发起的服务请求提供支持的后台管理服务器。后台管理服务器可以对接收到的服务请求等数据进行分析等处理,并将处理结果(例如可访问的目标服务)反馈给终端设备。
需要说明的是,本发明实施例所提供的服务调用方法一般由服务器505执行,相应地,服务调用***一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用服务调用方根据自解析令牌向服务提供方发送服务调用请求;所述自解析令牌是安全中心根据所述服务调用方的身份信息和可访问服务的权限信息生成的;
利用所述服务提供方确定本地是否存储有所述服务调用方的令牌特征值;
在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;
在验证通过的情况下,所述服务提供方确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
根据本发明实施例的技术方案,服务调用方在向服务提供方发送调用请求时携带安全中心预先生成的自解析令牌。服务提供方在接收到调用请求后可以根据本地存储的令牌特征值对自解析令牌进行验证,在验证通过的情况下确定服务调用方可访问的目标服务,并允许服务调用方访问目标服务,从而响应服务调用请求。由此,通过上述验证自解析令牌的方式,服务提供方无需每次接收到调用请求之后均访问安全中心以使得安全中心对本次调用请求进行验证,从而减少对安全中心服务器的频繁访问,降低了***资源的占用,进而提高了服务性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种服务调用方法,其特征在于,包括:
利用服务调用方根据自解析令牌向服务提供方发送服务调用请求;所述自解析令牌是安全中心根据所述服务调用方的身份信息和可访问服务的权限信息生成的;
利用所述服务提供方确定本地是否存储有所述服务调用方的令牌特征值;
在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;
在验证通过的情况下,所述服务提供方确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
2.根据权利要求1所述的方法,其特征在于,还包括:
服务调用方根据自身的身份信息,向所述安全中心发送令牌生成请求;
所述安全中心响应于所述令牌生成请求,对所述身份信息进行验证;
在验证通过的情况下,所述安全中心根据所述身份信息、预先存储的所述服务调用方的访问权限列表以及自身的私钥,生成所述自解析令牌,并将所述自解析令牌发送给所述服务调用方。
3.根据权利要求2所述的方法,其特征在于,所述服务调用方的身份信息包括应用名称和应用类型;所述安全中心根据所述身份信息、预先存储的所述服务调用方的访问权限列表以及自身的私钥,生成所述自解析令牌,包括:
所述安全中心计算所述访问权限列表的散列值,并生成与所述令牌生成请求对应的随机数;
根据所述应用名称、所述应用类型、所述散列值和所述随机数计算第一令牌签名值;
利用所述私钥对所述第一令牌签名值进行签名,以生成所述自解析令牌。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述安全中心确定失效时间和令牌版本信息;
所述根据所述应用名称、所述应用类型、所述散列值和所述随机数计算第一令牌签名值,包括:
对所述失效时间、所述令牌版本信息、所述应用名称、所述应用类型、所述散列值和所述随机数进行摘要计算,得到所述第一令牌签名值。
5.根据权利要求2所述的方法,其特征在于,
所述服务调用方基于SSL通信链路向所述安全中心发送所述令牌生成请求;
和/或,
所述安全中心基于SSL通信链路将所述自解析令牌发送给所述服务调用方。
6.根据权利要求1所述的方法,其特征在于,所述根据所述令牌特征值对所述自解析令牌进行验证,包括:
确定所述自解析令牌的值是否与所述令牌特征值相同,在相同的情况下,确定所述自解析令牌验证通过。
7.根据权利要求4所述的方法,其特征在于,在所述服务提供方本地不存在所述令牌特征值的情况下,还包括:
所述服务提供方从所述安全中心获取所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数和所述安全中心的公钥;
根据所述服务调用方的应用名称和应用类型、以及所述失效时间、所述令牌版本信息、所述散列值、所述随机数计算第二令牌签名值;
根据所述第二令牌签名值和所述公钥,对所述自解析令牌进行验证。
8.根据权利要求7所述的方法,其特征在于,在根据所述第二令牌签名值和所述公钥确定所述自解析令牌验证通过之后,还包括:
将所述自解析令牌的值存储在本地,作为所述服务调用方的令牌特征值。
9.根据权利要求2所述的方法,其特征在于,所述服务提供方确定所述服务调用方可访问的目标服务,包括:
所述服务提供方将自身提供的服务进行散列计算,并根据散列计算结果以及所述服务调用方的访问权限列表,确定所述服务调用方可访问的目标服务。
10.一种服务调用***,其特征在于,包括:服务调用方、安全中心和服务提供方;其中,
所述安全中心,用于根据所述服务调用方的身份信息和可访问服务的权限信息生成所述服务调用方对应的自解析令牌;
所述服务调用方,用于根据所述自解析令牌向服务提供方发送服务调用请求;
所述服务提供方,用于确定本地是否存储有所述服务调用方的令牌特征值;在存在所述令牌特征值的情况下,根据所述令牌特征值对所述自解析令牌进行验证,以对所述服务调用方的身份和可访问服务权限进行验证;在验证通过的情况下,确定所述服务调用方可访问的目标服务,并允许所述服务调用方访问所述目标服务,以响应所述服务调用请求。
11.一种服务调用的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111684.1A CN115828309B (zh) | 2023-02-09 | 2023-02-09 | 一种服务调用方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111684.1A CN115828309B (zh) | 2023-02-09 | 2023-02-09 | 一种服务调用方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115828309A true CN115828309A (zh) | 2023-03-21 |
CN115828309B CN115828309B (zh) | 2023-11-07 |
Family
ID=85521290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111684.1A Active CN115828309B (zh) | 2023-02-09 | 2023-02-09 | 一种服务调用方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828309B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150172283A1 (en) * | 2013-12-12 | 2015-06-18 | Orange | Method of Authentication by Token |
CN105577691A (zh) * | 2016-02-03 | 2016-05-11 | 飞天诚信科技股份有限公司 | 一种安全访问方法和服务器 |
CN106664294A (zh) * | 2014-06-20 | 2017-05-10 | 标致·雪铁龙汽车公司 | 借助于令牌的认证方法和*** |
CN107395648A (zh) * | 2017-09-06 | 2017-11-24 | 深圳峰创智诚科技有限公司 | 权限控制方法及服务端 |
CN108243188A (zh) * | 2017-12-29 | 2018-07-03 | 中链科技有限公司 | 一种接口访问、接口调用和接口验证处理方法及装置 |
CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息***数据接口认证方法 |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
CN110958119A (zh) * | 2019-10-25 | 2020-04-03 | 泰康保险集团股份有限公司 | 身份验证方法和装置 |
US20200259652A1 (en) * | 2019-02-08 | 2020-08-13 | Microsoft Technology Licensing, Llc | System and method for hardening security between web services using protected forwarded access tokens |
US20210250361A1 (en) * | 2020-02-07 | 2021-08-12 | Microsoft Technology Licensing, Llc | Authentication and authorization across microservices |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
-
2023
- 2023-02-09 CN CN202310111684.1A patent/CN115828309B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150172283A1 (en) * | 2013-12-12 | 2015-06-18 | Orange | Method of Authentication by Token |
CN106664294A (zh) * | 2014-06-20 | 2017-05-10 | 标致·雪铁龙汽车公司 | 借助于令牌的认证方法和*** |
CN105577691A (zh) * | 2016-02-03 | 2016-05-11 | 飞天诚信科技股份有限公司 | 一种安全访问方法和服务器 |
CN107395648A (zh) * | 2017-09-06 | 2017-11-24 | 深圳峰创智诚科技有限公司 | 权限控制方法及服务端 |
CN108243188A (zh) * | 2017-12-29 | 2018-07-03 | 中链科技有限公司 | 一种接口访问、接口调用和接口验证处理方法及装置 |
CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息***数据接口认证方法 |
US20200259652A1 (en) * | 2019-02-08 | 2020-08-13 | Microsoft Technology Licensing, Llc | System and method for hardening security between web services using protected forwarded access tokens |
CN110086822A (zh) * | 2019-05-07 | 2019-08-02 | 北京智芯微电子科技有限公司 | 面向微服务架构的统一身份认证策略的实现方法及*** |
CN110958119A (zh) * | 2019-10-25 | 2020-04-03 | 泰康保险集团股份有限公司 | 身份验证方法和装置 |
US20210250361A1 (en) * | 2020-02-07 | 2021-08-12 | Microsoft Technology Licensing, Llc | Authentication and authorization across microservices |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115828309B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11956371B2 (en) | Recursive token binding for cascaded service calls | |
CN111213339B (zh) | 带有客户端密钥的认证令牌 | |
WO2021136290A1 (zh) | 一种身份认证方法、装置及相关设备 | |
CN113347206B (zh) | 一种网络访问方法和装置 | |
CN110958119A (zh) | 身份验证方法和装置 | |
CN112039826B (zh) | 应用于小程序端的登录方法和装置,电子设备,可读介质 | |
CN108923925B (zh) | 应用于区块链的数据存储方法和装置 | |
CN110247917B (zh) | 用于认证身份的方法和装置 | |
CN111784887A (zh) | 一种用户访问的授权放行方法、装置以及*** | |
CN111369236A (zh) | 一种应用于区块链的数据管理方法和装置 | |
EP4350556A1 (en) | Information verification method and apparatus | |
CN113783829A (zh) | 跨平台实现设备接入的方法和装置 | |
CN114049122A (zh) | 一种业务处理方法和*** | |
CN112966286B (zh) | 用户登录的方法、***、设备和计算机可读介质 | |
CN113055186B (zh) | 一种跨***的业务处理方法、装置及*** | |
CN115828309B (zh) | 一种服务调用方法及*** | |
CN111917554B (zh) | 一种数字证书验证的方法和装置 | |
CN110166226B (zh) | 一种生成秘钥的方法和装置 | |
CN114157414B (zh) | 一种关于数字货币的身份凭证生成方法、验证方法及*** | |
CN113626873B (zh) | 鉴权方法、装置、电子设备和计算机可读介质 | |
CN110611656B (zh) | 一种基于主身份多重映射的身份管理方法、装置及*** | |
CN113132115B (zh) | 一种证书切换方法、装置和*** | |
CN113381982B (zh) | 注册方法、装置、电子设备和存储介质 | |
US11977620B2 (en) | Attestation of application identity for inter-app communications | |
CN114826616B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |