CN115617471A - 一种业务调用的方法、装置、存储介质及电子设备 - Google Patents

一种业务调用的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN115617471A
CN115617471A CN202211098320.6A CN202211098320A CN115617471A CN 115617471 A CN115617471 A CN 115617471A CN 202211098320 A CN202211098320 A CN 202211098320A CN 115617471 A CN115617471 A CN 115617471A
Authority
CN
China
Prior art keywords
application
program
tangent
verification
authentication
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
CN202211098320.6A
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202211098320.6A priority Critical patent/CN115617471A/zh
Publication of CN115617471A publication Critical patent/CN115617471A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

在本说明书提供的业务调用方法中,在业务执行前,管控平台可确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;确定业务名单中各第二应用在调用第一应用时所需的鉴权参数和第一应用所需的验证参数;通过预先部署的切面底座,将第二切面程序注入各第二应用对应的代码中,并为第二切面程序配置鉴权参数,使第二应用调用第一应用时,基于第二切面程序与鉴权参数生成鉴权信息,发送携带鉴权信息的调用请求至第一应用;同时,将第一切面程序注入第一应用对应的代码中,并为第一切面程序配置验证参数,使第一应用接收第二应用发送的调用请求时,基于第一切面程序与验证参数生成验证信息,根据验证信息对鉴权信息进行验证。

Description

一种业务调用的方法、装置、存储介质及电子设备
技术领域
本说明书涉及互联网技术领域,尤其涉及一种业务调用的方法、装置、存储介质及电子设备。
背景技术
如今,互联网的高速发展为用户带来了海量的线上业务。随着业务数量不断增加,业务内容不断扩展,为了使用户能够更加方便、快捷地使用各业务,各业务之间通常能够互相调用。换句话说,一个业务在执行期间可以调用其它业务中提供的服务,来帮助用户更好、更快地完成当前的业务。
但是,在业务调用的过程中可能会存在用户隐私数据泄露的情况,如何避免业务调用时存在的安全隐患是一个亟待解决的问题,对此本说明书提供一种业务调用的方法。
发明内容
本说明书提供一种业务调用方法及业务调用装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种业务调用方法,所述方法应用于管控平台,所述方法包括:
确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;
确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数;
通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用;
通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
可选地,所述管控平台中存储有包含所述各第二应用和所述第一应用中切点的切点列表;
将第二切面程序注入所述业务名单中的各第二应用对应的代码中,具体包括:
在所述切点列表中,确定各第二应用的切点;
将第二切面程序从所述各第二应用的切点处注入所述各第二应用对应的代码中;
将第一切面程序注入所述第一应用对应的代码中,具体包括:
在所述切点列表中,确定所述第一应用的切点;
将所述第一切面程序从所述第一应用的切点处注入所述第一应用对应的代码中。
可选地,确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及该第一应用所需的验证参数,具体包括:
确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的第二签名内容、第二签名方式,以及所述第一应用所需的第一签名内容、第一签名方式。
本说明书提供了一种业务调用方法,所述方法应用于第二应用,所述方法包括:
通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数;
当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用;
将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
可选地,所述鉴权参数至少包括第二签名内容和第二签名方式;
根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,具体包括:
根据所述第二签名内容,采用所述第二签名方式,对所述业务数据进行签名,得到鉴权信息。
本说明书提供了一种业务调用方法,所述方法应用于第一应用,所述方法包括:
通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数;
接收第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的;
执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息;
通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
可选地,所述验证参数至少包括第一签名内容和第一签名方式;
执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息,具体包括:
确定所述鉴权信息中包含的业务数据;
根据所述第一签名内容,采用所述第一签名方式,对所述业务数据进行签名,得到验证信息。
可选地,通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用,具体包括:
判断所述鉴权信息与所述验证信息是否匹配;
若是,则响应所述第二应用的调用;
若否,则向所述第二应用发送验证失败提示。
可选地,所述验证参数与所述鉴权参数相同;
判断所述鉴权信息与所述验证信息是否匹配,具体包括:
判断所述鉴权信息与所述验证信息是否相同;
若相同,则所述鉴权信息与所述验证信息匹配;
否则,所述鉴权信息与所述验证信息不匹配。
本说明书提供了一种业务调用装置,包括:
业务名单生成模块,确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;
参数确定模块,确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数;
第二注入模块,通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用;
第一注入模块,通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
本说明书提供了一种业务调用装置,包括:
鉴权配置模块,通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数;
鉴权信息生成模块,当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用;
调用请求发送模块,将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
本说明书提供了一种业务调用装置,包括:
验证配置模块,通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数;
调用请求接收模块,接收第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的;
验证信息生成模块,执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息;
验证模块,通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述业务调用方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述业务调用方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的业务调用方法中,在业务执行前,管控平台可确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;确定业务名单中各第二应用在调用第一应用时所需的鉴权参数和第一应用所需的验证参数;通过预先部署的切面底座,将第二切面程序注入各第二应用对应的代码中,并为第二切面程序配置鉴权参数,使第二应用调用第一应用时,基于第二切面程序与鉴权参数生成鉴权信息,发送携带鉴权信息的调用请求至第一应用;同时,将第一切面程序注入第一应用对应的代码中,并为第一切面程序配置验证参数,使第一应用接收第二应用发送的调用请求时,基于第一切面程序与验证参数生成验证信息,根据验证信息对鉴权信息进行验证。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种应用于管控平台流程示意图;
图2为本说明书提供的一种实现本说明书提供的业务调用方法的具体过程示意图;
图3为本说明书中提供的一种应用于第二应用的业务调用方法的流程示意图;
图4为本说明书中提供的一种应用于第一应用的业务调用方法的流程示意图;
图5为本说明书提供的一种业务调用装置的示意图;
图6为本说明书提供的一种业务调用装置的示意图;
图7为本说明书提供的一种业务调用装置的示意图;
图8为本说明书提供的一种对应于图1、图3、图4的电子设备示意图。
具体实施方式
目前,用户每天都会大量使用各种线上业务,每种线上业务都能够为用户提供不同的功能,很多时候,将不同业务提供的功能相互搭配进行使用,往往能够为用户带来更好的体验。基于此,用户在使用各业务时,经常会存在各业务之间互相调用的现象。然而,并不是所有的调用都是有益的。在实际使用的过程中,经常会存在一些以窃取数据或破坏其它业务为目的的恶意业务出现,对用户使用的正常业务通过调用的形式进行攻击。
传统的调用模式为,各业务之间可以无任何障碍的直接互相调用,举例来说,当业务A需要调用业务B中的功能时,只要业务A向业务B发送相应的请求,业务B在接收到请求后就会直接同意调用。这种在调用的过程中不存在任何的身份认证,无论对方是谁都会直接接受调用的方式,必然会引来许多恶意业务的攻击。
为了解决上述问题,本说明书在此提供一种基于安全切面的能够在调用时进行鉴权的业务调用方法。
其中,上文所说的安全切面是指通过采用面向切面编程(Aspect-orientedProgramming,AOP)的方式,在不修改业务应用程序的情况下,在业务应用程序的运行逻辑中动态的添加或修改用于实现安全切面业务的切面程序的方法。使得在实现安全切面业务的同时,使实现安全切面业务的程序与业务应用程序解耦,从而避免高耦合导致的开发迭代问题。
这里说的切面程序,即基于业务运行逻辑来实现安全切面业务的增强程序。可通过采用面向切面编程的方式,将切面程序注入至业务应用程序的相应切点处,该切面程序在执行业务应用程序的过程中被触发执行,实现所需的安全切面业务功能。
而业务应用程序在执行业务时,业务应用程序通常通过方法之间的调用进行业务执行。因此,可将业务应用程序中的任意方法作为切面程序的切入点,即上述所说的切点,并将切面程序注入对应切点。使得业务应用程序在执行至切点,即调用该切点对应的业务应用程序的方法时,执行在该切点注入的切面程序。
通常,负责将切面程序注入至切点的过程的代码存在较高的可复用性,因此,通常将实现这一过程的程序抽象为一个服务模块,即切面底座。切面底座可从提供安全切面业务的第三方获取需要部署的切面程序以及获取业务应用程序中的切点,在应用容器启动后被环境并在业务应用程序的切点处注入对应的切面程序。
业务应用程序可以是业务平台的服务器中提供业务服务的业务应用程序。其中,业务服务可以是业务平台的服务器向用户提供的业务服务,如,查询业务、支付业务等。业务服务还可以是业务平台的某服务器向其他服务器提供的业务服务,如,结算业务等。
当然了,由上述描述可知,为了使安全切面业务的程序与业务应用程序解耦,本说明书通过采用面向切面编程的方式使得安全切面业务的程序与业务应用程序在业务执行时相互交织,但又互相平行可各自独立维护。因此,区别于业务应用程序的业务提供方,提供安全切面业务的第三方可通过管控平台管理安全切面业务所涉及的内容,例如,安全切面业务管控策略的配置、切面程序的版本迭代、切面程序的部署规则配置等等。当然,提供安全切面业务的可以是第三方,也可以是业务提供方。
管控平台在管理安全切面业务所涉及的内容时,可通过配置文件记录各种配置信息,例如各种策略的配置、切面程序的部署规则配置等。使得切面底座可根据配置文件完成对切面程序的部署,或者管控平台可根据配置文件实现安全切面业务。
在实际应用中,业务提供方通常设置有包括若干物理机或物理服务器的机房,通过物理机提供业务应用程序所需的物理资源。当然,一个业务应用程序可能无需整个物理机的所有物理资源,于是,一般还会通过虚拟化技术在一个物理机上运行多个虚拟主机(virtual hosting)。各个虚拟主机之间是互相独立的,各自享有物理机的部分物理资源。然后,可在虚拟主机中部署应用容器,并通过应用容器运行业务应用程序。应用容器通常包含分配给该应用容器的物理资源,如CPU、内存等,以及提供给该应用容器的运行环境,如操作系统(Operating System,OS)或其他运行环境数据,如,容器的序列(Serial Number,SN)号、分配的IP(Influential Property)、应用名、租户、环境变量等)。业务应用程序可部署在应用容器中以执行业务。
而在基于安全切面执行业务的场景中,业务提供方或者提供安全切面业务的第三方的服务器可提供管控平台,通过管控平台管理安全切面业务所涉及的内容,并将切面底座部署在应用容器中,通过切面底座将切面程序注入业务应用容器中的业务应用程序中,以为业务提供方的应用容器提供安全切面业务的支持。
于是,可预先在业务提供方的应用容器中部署切面底座。一般情况下,在启动应用容器时,可唤起提供给应用容器的操作系统,以及运行预先部署的切面底座,通过切面底座从管控平台中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。此外,切面底座也可在业务应用程序执行过程中,从管控平台中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。
当然,切面底座如何从管控平台中得到部署切面程序所需的信息,可根据需要设置。例如,可以是根据配置文件主动从管控平台中拉取所需的信息,或者管控平台可主动下发使切面底座接收所需的信息。
将切面程序注入业务应用程序的切点后,业务应用程序在执行过程中,即可触发该切面程序从而实现相应的安全切面业务功能。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
在本说明书中,业务可以指平台或系统提供的服务,也可以指终端上的应用。两个业务之间互相调用,可以是同一平台或同一系统提供的,位于两个不同端上的服务之间的相互调用,也可以是同一端上的不同服务或不同应用之间的相互调用。实际上,无论是同一端内部的两个业务的相互调用,还是不同端上的两个业务的相互调用,其核心的方法与逻辑都是相似的,只存在执行主体上的差异。为了方便表述,在本说明书中以应用形式的业务之间进行相互调用为例,对本说明书提供的业务调用方法进行说明。可以想到的,根据本说明书中的方法,也可以相应地实现分别处于两个不同的终端的业务之间的相互调用。
在本说明书中,用于业务调用方法的执行主体,可以指终端、服务器等设备上的应用,为了便于描述,本说明书将分别以发送调用请求的第二应用、被调用的第一应用、用于配置管理的管控平台是执行主体为例,对本说明书提供的业务调用方法进行说明。在本说明书提供的实施例中,管控平台、第二应用、第一应用处于同一终端上。可以想到的,当管控平台、第二应用、第一应用分别位于不同终端上时,仍可采用根据本说明书中提供的方法实现业务调用。
值得一提的是,本说明书接下来提供的三种个业务调用方法,实际上为同一方法在三种不同执行主体下的执行流程,本说明书对其中任一业务调用方法的描述,在其它两个业务调用方法中也同样适用。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种应用于管控平台的业务调用方法的流程示意图,包括以下步骤:
S100:确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单。
本说明书提供的业务调用方法的具体流程如图2所示,图2展示了第二应用、第一应用以及管控平台之间的交互过程。
在本说明书提供的业务调用方法中,第一应用为被调用的业务,第二应用为调用第一应用的业务;管控平台是提供业务的终端内的独立的一个非业务的应用,用于帮助原本不存在鉴权功能的各业务实现调用时的鉴权。值得一提的是,本说明书所提供的业务调用方法中,管控平台执行的所有操作,均是在管理阶段,也就是业务应用未运行前实现的。通常,管控平台中可包含切面程序、业务名单、切点列表、管控配置。
其中,切面程序可以是用于实现鉴权功能的程序,通常情况下,可通过对传输的数据进行签名的方式来实现鉴权。因此,切面程序实际上可以是一段用于实现签名功能的代码,切面程序也可称为增强代码。在准备阶段,也就是业务应用未运行时,管控平台可以预先将切面程序注入到业务中,也就是将增强代码插入到业务原本的代码之中,从而使原本不存在鉴权功能的业务能够实现鉴权。
在本说明书提供的业务调用方法中,会预先为每个可能被调用的第一应用生成一个业务名单,业务名单中存储了对于该第一应用,所有可以信任的业务。在准备阶段,管控平台只会向业务名单中的业务注入切面程序。当业务名单中任一个业务调用第一应用时,便会相应地触发切面程序进行鉴权。而当一个业务名单之外的不可信业务希望调用第一应用时,由于不可信业务中并不存在切面程序,也就无法实现鉴权功能。也就是说,只有业务名单内的业务可以调用第一应用。业务名单内的业务可以由用户自由更改,即用户可以自行选择信任的业务。
为了便于表达,在未做其他说明的情况下,本说明书提供的业务调用方法中提到的第二应用均为第一应用的业务名单内的业务。
在管理阶段,管控平台可确定出每个与第一应用存在调用关系的第二应用,也就是可能会调用第一应用的第二应用,并将确定出的与第一应用存在调用关系的第二应用作为第一应用的业务名单中的业务。
S102:确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数。
在管控平台的管控配置中存存储了执行切面程序时需要的全部参数。具体来说,管控平台向业务中注入的切面程序,既包含了其调用其他业务时需要进行的签名功能,也包含了其被其他业务调用时需要进行的签名功能。但实际上,切面程序只包含了这些实现这些功能的逻辑,也就是代码框架,而具体的采用什么样的数据进行签名,或是采用何种方式进行签名,以及该执行调用还是被调用的签名,切面程序中并不包含这些参数,而这些参数均被保存在管控配置中。在向各业务注入切面程序的同时,管控平台会根据被调用的第一应用,来判断在调用该第一应用时,该采用什么样的签名内容,以及适合的鉴权方式,并将这些参数分别配置给两个业务。
具体的,管控平台在确定鉴权参数和验证参数时,可确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的第二签名内容、第二签名方式,以及所述第一应用所需的第一签名内容、第一签名方式。而根据第一应用来确定参数,可以指根据第一应用在被调用时出现安全问题的可能性的大小,来判断在调用第一应用进行鉴权时应采用什么样的鉴权。如果第一应用在被调用时出现安全问题的可能性较小,那么就可以采用较为简单的签名内容与签名方式进行鉴权;反之,如果第一应用在被调用时出现安全问题的可能性较大,那么就可以采用较为复杂,但安全系数相对较高的签名内容与签名方式进行鉴权。
与现实中的签名行为相似,对一个指定数据进行签名,实际上就是在指定数据前或指定数据后额外添加一段额外的数据,这段额外的数据用于向其他端表征生成此指定数据的端的身份。而这一段额外的数据,就是本说明书中提到的签名内容。签名方式可至少包括对称方式和非对称方式,属于本领域较为常见的手段,本说明书在此不再进行赘述。
额外的,鉴权参数和验证参数中除了包括签名内容、签名方式外,还可包括其它参数,例如逻辑开关、分支切换变量等。其中,逻辑开关用于控制是否需要进行鉴权,当管控平台判断第二应用请求调用的目标功能被调用的第一应用较为安全或较为简单,风险非常低时,可通过逻辑开关的参数跳过鉴权步骤,即跳过整个切面程序的执行,以加快业务调用的效率。具体的,可在当逻辑开关的参数值为“1”时,执行切面程序;当逻辑开关的参数值为“0”时,跳过切面程序。
分支切换变量用于控制第二应用当前应执行切面程序中的哪个分支。正如步骤S102中提到的,切面程序中,既包括了调用其它业务时应执行的鉴权功能,又包括了被其他业务调用时执行的鉴权功能。换句话说,在不包含任何参数的情况下,第二切面程序和第一切面程序可以是完全相同的。而在一次业务调用中,一个业务只能作为调用或被调用中的一个角色。通过分支切换变量,可控制业务执行且切面程序中调用其他业务的分支还是被其他业务调用的分支。具体的,可在当分支切换变量的参数值为“1”时,执行调用其它业务的分支;当分支切换变量的参数值为“0”时,执行被其他业务调用的分支。在本说明书提供的实施例中,发起调用的第二应用的鉴权参数中的分支切换变量的参数值应为“1”,第一应用的验证参数的分支切换变量的参数值应为“0”。
在各业务未开始运行时,也就是在准备与管理阶段,管控平台可预先确定出第二应用需要的鉴权参数和第一应用需要的验证参数。当然,本说明书实施例中的第二应用均是在第一应用的业务名单之内的业务。
S104:通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用。
在确定出鉴权参数和验证参数后,管控平台就可以向第二应用和第一应用的代码中注入切面程序,并配置相应的参数。在向第二应用和第一应用中注入切面程序时,需要注意不能够破坏其原本的功能。实际上,切面程序就是一端增强代码,而注入切面程序的过程实际上就是向业务原本的代码中插入增强代码的过程。为了不影响业务原本的代码实现的功能,并且使插入后的增强代码能够实现鉴权的功能,需要在业务的代码中寻找合适的位置,作为切点,将切面程序从切点注入业务中。为切面程序配置参数,实际上就是将参数填入切面程序中,使切面程序能够根据参数执行相应的功能。
在管控平台切点列表中预先存储了所有第二应用和第一应用的切点。其中,每个业务的切点可以是人工预先设置的,也可以是通过模型预先确定的,本说明书对此不做具体限制。
由此,管控平台中还可存储有包含所述各第二应用和所述第一应用中切点的切点列表;在向第二应用注入第二切面程序时,可在所述切点列表中,确定各第二应用的切点;将第二切面程序从所述各第二应用的切点处注入所述各第二应用对应的代码中。
在向第二应用注入了第二切面程序,并配置了相应的鉴权参数后,当第二应用调用第一应用时,就可以基于第二切面程序和鉴权参数来生成鉴权信息,并将鉴权信息携带在调用请求中,发送至第一应用。
S106:通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
相似的,在向第一应用注入第一切面程序时,也可在所述切点列表中,确定所述第一应用的切点;将所述第一切面程序从所述第一应用的切点处注入所述第一应用对应的代码中。
在将第一切面程序注入到第一应用,并将验证参数配置到第一切面程序后,第一应用在接收到第二应用发送的调用请求时,就可以基于第一切面程序和验证参数生成验证信息,并采用验证信息对鉴权信息进行验证。
在采用本说明书提供的业务调用方法时,可通过切面注入的方式实现业务调用过程中的鉴权功能,有效防止了被恶意业务攻击的可能。同时,在为各业务添加鉴权功能时,既不会对各业务原本的功能造成影响,又不会影响业务的正常上线使用,实现对各业务的透明鉴权,进一步保证了用户的体验。
更优的,在本说明书提供的业务调用方法中,除上述第二应用、第一应用、管控平台之外,还可额外存在一个数据采集模块,用于采集业务调用过程中第二应用和第一应用产生的各种数据,例如时间戳、上下文参数、调试数据等。简单来说,就是实时的监控各业务在什么时间、做了什么、产生了什么数据。当鉴权过程中出现问题时,可根据数据采集端中采集到的数据去分析以及解决问题;即使没有产生任何问题,也可在线下根据数据采集端采集到的数据对鉴权的性能进行评估,以便于在后续进行优化与调整。
图3为本说明书中提供的一种应用于第二应用的业务调用方法的流程示意图,包括以下步骤:
S200:通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数。
在本说明书中,管控平台是不同于业务应用,单独存在的一个应用。管控平台的结构可如图2中的管控平台所示,管控平台中包含了切面程序、业务名单、切点列表、管控配置。在本说明书提供的应用于管控平台的方法中,已经对管控平台中各结构的功能与作用给出的详细的解释,在此不再进行重复。
在管理阶段,各业务未运行之前,可通过预先部署的切面底座,将管控平台发送的第二切面程序从第二应用的切点处注入第二应用,并将管控平台发送的鉴权参数配置到第二应用中的第二切面程序中。
S202:当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用。
在此步骤中,当第二应用需要调用其它业务中的功能时,首先可生成携带业务数据的调用请求。其中,生成的调用请求用于请求调用第一应用,调用请求中的业务数据用于使第一应用在响应调用时根据业务数据执行相应的功能。
在确定调用请求后,可执行预先注入的第二切面程序来实现鉴权功能。在生成鉴权信息时,可根据预先注入第二切面程序中的鉴权参数和业务数据,执行第二切面程序。具体的,所述鉴权参数至少包括第二签名内容和第二签名方式;根据所述第二签名内容,采用所述第二签名方式,对所述业务数据进行签名,得到鉴权信息。
与现实中的签名行为相似,对一个指定数据进行签名,实际上就是在指定数据前或指定数据后额外添加一段额外的数据,这段额外的数据用于向其他业务表征生成此指定数据的业务的身份。而这一段额外的数据,就是本说明书中提到的签名内容。签名方式可至少包括对称方式和非对称方式,属于本领域较为常见的手段,本说明书在此不再进行赘述。
正如步骤S102中提到的,参数中可以包含签名内容、签名方式等参数。由此,在步骤S200中,注入第二应用的鉴权参数可至少包括第二签名内容和第二签名方式。此时,第二应用可根据第二签名内容,采用第二签名方式,对业务数据进行签名,得到鉴权信息。
S204:将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
在实际调用过程中,无关是否需要鉴权,第二应用会生成一个携带业务数据的调用请求,其中,业务数据是用于请求第一应用向第二应用提供服务的数据。在不进行鉴权时,按原本的调用流程,第二应用会直接将包含业务数据的调用请求发送给第一应用。而在本说明书提供的业务调用方法中,第二应用会通过第二切面程序对业务数据进行签名,得到鉴权信息,并将带有签名的业务数据作为鉴权信息,携带在调用请求中发送给第一应用。
同样的,第一应用中也存在预先注入的第一切面程序和验证参数。当第一应用接收到第二应用发送的调用请求时,就可执行第一切面程序,根据验证参数来生成验证信息,采用验证信息对接收到的调用请求中包含的鉴权信息进行验证,并根据验证结果决定是否响应第二应用的调用。
图4为本说明书中提供的一种应用于第一应用的业务调用方法的流程示意图,包括以下步骤:
S300:通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数。
在本说明书提供的业务调用方法中,第一应用是被调用的业务。同样的,在管理阶段,各业务未开始运行之前,可通过预先部署的切面底座将管控平台发送的第一切面程序从第一应用的切点注入到第一应用中,并将管控平台发送的验证参数配置到第一切面程序中。
S302:接收所述第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的。
对于第一应用来说,在业务调用的过程中,会接收到第二应用发送的携带鉴权信息的调用请求。第二应用中生成鉴权信息的鉴权信息同样也是通过预先注入第二应用中的第二切面程序生成的,在步骤S202中对此已进行详细阐述,本说明书在此不再进行重复。
S304:执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息。
在接收到调用请求后,第一应用可执行预先注入的第一切面程序,根据调用请求中携带的鉴权信息和预先配置给第一切面程序的验证参数,生成验证信息。
与第二应用生成鉴权信息时相似,第一应用也会根据验证参数,通过执行第一切面程序来生成验证信息。具体的,验证参数至少包括第一签名内容和第一签名方式。而与第二应用中生成鉴权信息不同的是,第一应用在生成验证信息时,还要额外依靠第二应用的鉴权信息。具体的,可确定所述鉴权信息中包含的业务数据;根据所述第一签名内容,采用所述第一签名方式,对所述业务数据进行签名,得到验证信息。
在步骤S106提到,无关是否需要鉴权,第二应用在执行业务调用的过程中,总是会生成一个用于请求第一应用执行功能的业务数据。在需要鉴权时,第二应用会对业务数据进行签名后,作为鉴权信息携带在调用请求中发送给第一应用。此时,第一应用可从鉴权信息中提取出业务数据,并根据第一签名内容,采用第一签名方式重新对业务数据进行签名,得到验证信息。
S306:通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
在生成验证信息后,可采用验证信息对鉴权信息进行验证,并根据验证结果去决定是否响应第二应用的调用。
具体的,第一应用可判断第二应用发送的鉴权信息与第一应用生成的验证信息是否匹配;若是,则响应所述第二应用的调用;若否,则向所述第二应用发送验证失败提示。其中,响应第二应用的调用,可以是第一应用根据业务数据执行相应的功能,并将执行的结果返回给第二应用。通常情况下,第一应用在进行判断时,会根据鉴权配置中签名方式的不同而采用不同的逻辑进行判断。
具体的,当第二应用和第一应用采用非对称签名的方式进行鉴权时,第二应用中生成的鉴权信息与第一应用中生成的验证信息是不同的,但二者具有对应关系,互相匹配。在这种情况下,管控平台生成的鉴权参数和验证参数也不相同,但互相匹配。
另一种情况,当第二应用和第一应用采用对称签名的方式进行鉴权时,第二应用中生成的鉴权信息与第一应用中生成的验证信息可以相同。此时,所述验证参数与所述鉴权参数相同。在第一应用判断鉴权信息与验证信息是否匹配时,可直接判断所述鉴权信息与所述验证信息是否相同;若相同,则所述鉴权信息与所述验证信息匹配;否则,所述鉴权信息与所述验证信息不匹配。
管控平台的管控配置中,存储了切面程序中可能用到的所有参数,包括但不限于签名内容、签名方式、逻辑开关、分支切换变量等。其中,每个参数的作用在本说明书提供的应用于管控平台的业务调用方法中已给出具体解释,在此不再进行重复。实际上,鉴权参数和验证参数是根据被调用的第一应用产生安全隐患的可能性的大小来决定的的。在实际应用中,每个业务可实现功能均不相同,其中有些业务的功能非常简单,且不触及核心数据,这类功能即使被自由调用,也不会对业务和系统造成太大影响。因此,对于这一类的第一应用,可考虑采用比较简单的签名内容与签名方式进行鉴权。而有些功能比较复杂,且涉及到的核心数据较多,一般不希望其它业务来调用这部分功能。因此,对于这一类第一应用,可考虑采用比较复杂的签名内容与签名方式进行鉴权。
在鉴权时,比起较为复杂的鉴权方式,简单的鉴权方式的安全度与可靠度肯定是要低一些的,但相对的,鉴权的速度也会更快,为各业务带来的压力会更小。举例来说,与对称方式的鉴权相比,非对称方式的鉴权安全度会更高,而运行的速度也会更慢。因此,在实际应用中,往往不会固定只采用一种方式进行鉴权,而是会根据被调用的业务,选择相应的方式进行鉴权。而具体调用哪些业务可以采用简单的鉴权方式,调用哪些业务需要采用复杂的鉴权方式,可由用户或系统的管理人员自行规定。
更进一步的,当第一应用中在被调用的过程中完全不存在任何安全隐患时,可如步骤S102中给出的方式,通过设置逻辑开关来跳过鉴权过程。
以上为本说明书的一个或多个实施业务调用的方法,基于同样的思路,本说明书还提供了相应的业务调用装置,如图5、图6、图7所示。
图5为本说明书提供的一种业务调用装置的示意图,包括:
业务名单生成模块400,确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;
参数确定模块402,确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数;
第二注入模块404,通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用;
第一注入模块406,通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
可选地,所述管控平台中存储有包含所述各第二应用和所述第一应用中切点的切点列表;
所述第二注入模块404,具体用于在所述切点列表中,确定各第二应用的切点;将第二切面程序从所述各第二应用的切点处注入所述各第二应用对应的代码中;
所述第一注入模块406,具体用于在所述切点列表中,确定所述第一应用的切点;将所述第一切面程序从所述第一应用的切点处注入所述第一应用对应的代码中。
可选地,所述参数确定模块402,具体用于确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的第二签名内容、第二签名方式,以及所述第一应用所需的第一签名内容、第一签名方式。
图6为本说明书提供的一种业务调用装置的示意图,包括:
鉴权配置模块500,通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数;
鉴权信息生成模块502,当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用;
调用请求发送模块504,将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
可选地,所述鉴权参数至少包括第二签名内容和第二签名方式;
所述鉴权信息生成模块502,具体用于根据所述第二签名内容,采用所述第二签名方式,对所述业务数据进行签名,得到鉴权信息。
图7为本说明书提供的一种业务调用装置的示意图,包括:
验证配置模块600,通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数;
调用请求接收模块602,接收第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的;
验证信息生成模块604,执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息;
验证模块606,通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
可选地,所述验证参数至少包括第一签名内容和第一签名方式;
所述验证信息生成模块604,具体用于确定所述鉴权信息中包含的业务数据;根据所述第一签名内容,采用所述第一签名方式,对所述业务数据进行签名,得到验证信息。
可选地,所述验证模块606,具体用于判断所述鉴权信息与所述验证信息是否匹配;若是,则响应所述第二应用的调用;若否,则向所述第二应用发送验证失败提示。
可选地,所述验证参数与所述鉴权参数相同;
所述验证模块606,具体用于判断所述鉴权信息与所述验证信息是否相同;若相同,则所述鉴权信息与所述验证信息匹配;否则,所述鉴权信息与所述验证信息不匹配。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种业务调用方法。
本说明书还提供了图8所示的一种对应于图1的电子设备的示意结构图。如图8所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的业务调用方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (14)

1.一种业务调用方法,所述方法应用于管控平台,所述方法包括:
确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;
确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数;
通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用;
通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
2.如权利要求1所述的方法,所述管控平台中存储有包含所述各第二应用和所述第一应用中切点的切点列表;
将第二切面程序注入所述业务名单中的各第二应用对应的代码中,具体包括:
在所述切点列表中,确定各第二应用的切点;
将第二切面程序从所述各第二应用的切点处注入所述各第二应用对应的代码中;
将第一切面程序注入所述第一应用对应的代码中,具体包括:
在所述切点列表中,确定所述第一应用的切点;
将所述第一切面程序从所述第一应用的切点处注入所述第一应用对应的代码中。
3.如权利要求1所述的方法,确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及该第一应用所需的验证参数,具体包括:
确定所述第一应用的业务名单中各第二应用在调用所述第一应用时所需的第二签名内容、第二签名方式,以及所述第一应用所需的第一签名内容、第一签名方式。
4.一种业务调用方法,所述方法应用于第二应用,所述方法包括:
通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数;
当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用;
将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
5.如权利要求4所述的方法,所述鉴权参数至少包括第二签名内容和第二签名方式;
根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,具体包括:
根据所述第二签名内容,采用所述第二签名方式,对所述业务数据进行签名,得到鉴权信息。
6.一种业务调用方法,所述方法应用于第一应用,所述方法包括:
通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数;
接收第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的;
执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息;
通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
7.如权利要求6所述的方法,所述验证参数至少包括第一签名内容和第一签名方式;
执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息,具体包括:
确定所述鉴权信息中包含的业务数据;
根据所述第一签名内容,采用所述第一签名方式,对所述业务数据进行签名,得到验证信息。
8.如权利要求6所述的方法,通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用,具体包括:
判断所述鉴权信息与所述验证信息是否匹配;
若是,则响应所述第二应用的调用;
若否,则向所述第二应用发送验证失败提示。
9.如权利要求8所述的方法,所述验证参数与所述鉴权参数相同;
判断所述鉴权信息与所述验证信息是否匹配,具体包括:
判断所述鉴权信息与所述验证信息是否相同;
若相同,则所述鉴权信息与所述验证信息匹配;
否则,所述鉴权信息与所述验证信息不匹配。
10.一种业务调用装置,包括:
业务名单生成模块,确定需要调用第一应用的各第二应用,生成包含所述各第二应用的业务名单;
参数确定模块,确定所述业务名单中各第二应用在调用所述第一应用时所需的鉴权参数,以及所述第一应用所需的验证参数;
第二注入模块,通过预先部署的切面底座,将第二切面程序注入所述业务名单中的各第二应用对应的代码中,以及为所述第二切面程序配置所述鉴权参数,使所述第二应用调用所述第一应用时,基于所述第二切面程序与所述鉴权参数生成鉴权信息,发送携带所述鉴权信息的调用请求至所述第一应用;
第一注入模块,通过预先部署的切面底座,将第一切面程序注入所述第一应用对应的代码中,以及为所述第一切面程序配置所述验证参数,使所述第一应用接收所述第二应用发送的所述调用请求时,基于所述第一切面程序与所述验证参数生成验证信息,根据所述验证信息对所述调用请求携带的所述鉴权信息进行验证。
11.一种业务调用装置,包括:
鉴权配置模块,通过预先部署的切面底座,将管控平台发送的第二切面程序注入所述第二应用的切点,以及为所述第二切面程序配置所述管控平台发送的鉴权参数;
鉴权信息生成模块,当确定携带业务数据的调用请求时,执行预先注入的所述第二切面程序,根据预先配置的所述鉴权参数和所述业务数据,生成鉴权信息,其中,所述调用请求用于请求调用第一应用;
调用请求发送模块,将所述鉴权信息携带在所述调用请求中发送给所述第一应用,使所述第一应用通过第一切面程序生成验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用;其中,所述验证信息是所述第一应用通过预先注入的第一切面程序以及预先为所述第一切面程序配置的验证参数生成的,所述第一切面程序是通过切面底座预先注入所述第一应用中的。
12.一种业务调用装置,包括:
验证配置模块,通过预先部署的切面底座,将管控平台发送的第一切面程序注入所述第一应用的切点,以及为所述第一切面程序配置所述管控平台发送的验证参数;
调用请求接收模块,接收第二应用发送的携带鉴权信息的调用请求,所述鉴权信息是所述第二应用通过预先注入的第二切面程序以及预先为所述第一切面程序配置的鉴权参数生成的,其中,所述调用请求用于请求调用所述第一应用,所述第二切面程序是通过切面底座预先注入所述第二应用中的;
验证信息生成模块,执行预先注入的所述第一切面程序,根据所述鉴权信息和预先配置的所述验证参数,生成验证信息;
验证模块,通过所述验证信息对所述鉴权信息进行验证,并根据验证结果确定是否响应所述第二应用的调用。
13.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~9任一项所述的方法。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~9任一项所述的方法。
CN202211098320.6A 2022-09-08 2022-09-08 一种业务调用的方法、装置、存储介质及电子设备 Pending CN115617471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211098320.6A CN115617471A (zh) 2022-09-08 2022-09-08 一种业务调用的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211098320.6A CN115617471A (zh) 2022-09-08 2022-09-08 一种业务调用的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN115617471A true CN115617471A (zh) 2023-01-17

Family

ID=84858676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211098320.6A Pending CN115617471A (zh) 2022-09-08 2022-09-08 一种业务调用的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115617471A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828195A (zh) * 2023-02-09 2023-03-21 支付宝(杭州)信息技术有限公司 一种水印嵌入方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828195A (zh) * 2023-02-09 2023-03-21 支付宝(杭州)信息技术有限公司 一种水印嵌入方法、装置、存储介质及电子设备
CN115828195B (zh) * 2023-02-09 2023-05-16 支付宝(杭州)信息技术有限公司 一种水印嵌入方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US10762193B2 (en) Dynamically generating and injecting trusted root certificates
EP3416333B1 (en) Seamless provision of secret token to cloud-based assets on demand
CN115378735B (zh) 一种数据处理方法、装置、存储介质及电子设备
JP2014521184A (ja) 信頼レベルのアクティブ化
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
KR102134491B1 (ko) 보호된 데이터 세트의 네트워크 기반 관리 기법
CN113544675A (zh) 安全执行客户机所有者环境控制符
CN115374481B (zh) 数据脱敏处理的方法、装置、存储介质及电子设备
CN115185605A (zh) 一种业务执行方法、装置、存储介质及电子设备
CN112204548B (zh) 应用特定客户端证书的自动生成
CN115185534A (zh) 一种数据脱敏方法、装置、可读存储介质以及电子设备
CN110390184B (zh) 用于在云中执行应用的方法、装置和计算机程序产品
CN109560933B (zh) 基于数字证书的认证方法及系统、存储介质、电子设备
CN106909409A (zh) 一种运行应用程序的apk插件的方法及装置
CN107835185B (zh) 一种基于ARM TrustZone的移动终端安全服务方法及装置
CN115617471A (zh) 一种业务调用的方法、装置、存储介质及电子设备
US11755721B2 (en) Trusted workload execution
CN115544585A (zh) 一种动态配置安全内存的方法、设备、装置及存储介质
CN115186269A (zh) 一种漏洞挖掘方法、装置、存储介质及电子设备
CN116340932A (zh) 具有隔离功能的应用程序包生成方法、管理方法及装置
CN114422358A (zh) Api网关配置更新方法及设备
CN115185847A (zh) 一种故障测试方法、装置、存储介质及电子设备
CN111353150B (zh) 一种可信启动方法、装置、电子设备及可读存储介质
US11520866B2 (en) Controlling processor instruction execution
JP2022058265A (ja) コンピュータ実装方法、コンピュータシステム、及びコンピュータプログラム(ユーザリクエスト処理のための隔離コンテナの提供)

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