一种API调用的管理方法、设备及系统与流程

文档序号:14879721发布日期:2018-07-07 09:23阅读:304来源:国知局

本发明涉及互联网技术领域,具体涉及一种api调用的管理方法、设备及系统。



背景技术:

随着智能手机产业的快速发展,应用(app)几乎应用到每个手机,比如,淘宝app和支付宝app等在众多的手机中通常都有应用。app在使用过程中经常会调用应用程序编程接口(applicationprogramminginterface,api),通过api提供的业务处理能力来支持app提供各种便捷的服务,这样app在为用户提供便捷服务的同时,病毒、窃取用户信息等问题也随之而来。目前有些api的开放状态是允许很多app抓取用户个人信息和通讯录等信息,甚至可调用通话和发送短信能力,这实际上侵犯了用户的个人信息权,非该app使用者的个人信息也会被暴露。

另外,当前用户使用app时直接或间接处于开放状态的api,这些处于开放状态的api暴露在公网环境下,导致与之连接的手机客户端之间的通讯可能被监听,从而会导致用户信息被恶意攻击或泄密。

当前用户使用app时可以随意对api进行调用,api对app又不做任何防护的现状,必然会导致重大的安全信息隐患。因此,需要寻求解决管理api的措施。



技术实现要素:

为解决现有技术中用户使用app时可以随意调用api,有重大信息安全隐患的问题,本发明实施例提供一种api调用的管理方法、设备及系统,可以对调用api的用户权限进行鉴权,只允许鉴权通过的用户调用api,提高了api调用的安全性。本发明实施例还提供了相应的设备及系统。

本发明第一方面提供一种api调用的管理方法,所述管理方法应用于应用程序编程接口api管理系统,所述api管理系统包括api管理平台和api网关,所述管理方法包括:

所述api网关接收用户设备发送的对目标api的调用请求,所述调用请求中携带调用令牌和平台帐号,所述调用令牌为订阅目标应用时所获取的对所述目标api的访问权限信息,所述平台帐号为在所述api管理平台上与注册所述目标应用的主帐号关联的帐号;

所述api网关通过所述api管理平台对所述调用令牌和所述平台帐号进行鉴权;

当鉴权通过后,所述api网关调用与所述目标api对应的业务逻辑接口,所述业务逻辑接口用于所述用户设备访问所述目标应用。

本发明第二方面提供一种api调用的管理方法,所述管理方法应用于应用程序编程接口api管理系统,所述api管理系统包括api管理平台和api网关,所述管理方法包括:

所述api管理平台接收用户设备发送的对目标应用的平台注册请求,所述平台注册请求中携带注册所述目标应用的主帐号;

所述api管理平台根据所述主帐号分配对应的平台帐号;

所述api管理平台接收用户设备发送的对所述目标应用中目标api的订阅请求,所述订阅请求中携带所述平台帐号;

所述api管理平台根据所述订阅请求分配调用令牌,并记录所述平台帐号与所述调用令牌的对应关系,所述调用令牌为对所述目标api的访问权限信息;

其中,所述平台帐号和所述调用令牌用于所述api网关对所述用户设备发送的对目标api的调用请求进行鉴权。

本发明第三方面提供一种api网关,所述api网关应用于api管理系统,所述api管理系统还包括api管理平台,所述api网关包括:

接收单元,用于接收用户设备发送的对目标api的调用请求,所述调用请求中携带调用令牌和平台帐号,所述调用令牌为订阅目标应用时所获取的对所述目标api的访问权限信息,所述平台帐号为在所述api管理平台上与注册所述目标应用的主帐号关联的帐号;

鉴权单元,用于通过所述api管理平台对所述接收单元接收的所述调用令牌和所述平台帐号进行鉴权;

调用单元,用于当所述鉴权单元鉴权通过后,调用与所述目标api对应的业务逻辑接口,所述业务逻辑接口用于所述用户设备访问所述目标应用。

本发明第四方面提供一种api管理平台,所述api管理平台应用于api管理系统,所述api管理系统还包括api网关,所述api管理平台包括:

接收单元,用于接收用户设备发送的对目标应用的平台注册请求,所述平台注册请求中携带注册所述目标应用的主帐号;

分配单元,用于根据所述接收单元接收的主帐号分配对应的平台帐号;

所述接收单元,还用于接收用户设备发送的对所述目标应用中目标api的订阅请求,所述订阅请求中携带所述平台帐号;

所述分配单元,用于根据所述接收单元接收的所述订阅请求分配调用令牌;

记录单元,用于记录所述分配单元分配的平台帐号与所述调用令牌的对应关系,所述调用令牌为对所述目标api的访问权限信息;其中,所述平台帐号和所述调用令牌用于所述api网关对所述用户设备发送的对目标api的调用请求进行鉴权。

本发明第五方面提供一种api管理系统,包括api管理平台和api网关;

所述api网关为上述第三方面所述的api网关;

所述api管理平台上述第四方面所述的api管理平台。

与现有技术中用户使用app时可以随意调用api接口,存在重大的安全隐患相比,本发明实施例采用api网关先对用户对目标api的访问权限做鉴权,在鉴权通过后才能调用真实的业务逻辑接口,只允许鉴权通过的用户调用api,提高了api调用的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中api管理系统的一实施例示意图;

图2是本发明实施例中api管理平台中的数据管理的一实施例示意图;

图3是本发明实施例中对发布数据进行管理的一实施例示意图;

图4是本发明实施例中对订阅数据进行管理的一实施例示意图;

图5是本发明实施例中本发明实施例中api调用的管理方法的一实施例示意图;

图6是本发明实施例中api调用的管理方法的另一实施例示意图;

图7是本发明实施例中对api的监测过程示意图;

图8是本发明实施例中api管理系统的分层结构示意图;

图9是本发明实施例中api调用的管理方法的另一实施例示意图;

图10是本发明实施例中api调用的管理方法的另一实施例示意图;

图11是本发明实施例中api调用的管理方法的另一实施例示意图;

图12是本发明实施例中api调用的管理方法的另一实施例示意图;

图13是本发明实施例中api网关的一实施例示意图;

图14是本发明实施例中api网关的另一实施例示意图;

图15是本发明实施例中api网关的另一实施例示意图;

图16是本发明实施例中api管理平台的一实施例示意图;

图17是本发明实施例中api管理平台的另一实施例示意图;

图18是本发明实施例中api管理平台的另一实施例示意图;

图19是本发明实施例中api管理平台的另一实施例示意图;

图20是本发明实施例中api管理平台的另一实施例示意图。

具体实施方式

本发明实施例提供一种api调用的管理方法、设备及系统,可以对调用api的用户权限进行鉴权,只允许鉴权通过的用户调用api,提高了api调用的安全性。本发明实施例还提供了相应的设备及系统。以下分别进行详细说明。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

api是一组定义、程序及协议的集合,通过api实现计算机软件之间的相互通信。api的一个主要功能是提供通用功能集。程序员通过调用api函数对应用程序进行开发,可以减轻编程任务。api同时也是一种中间件,为各种不同平台提供数据共享。

图1为本发明api管理系统的一实施例示意图。

如图1所示,本发明提供的api管理系统的一实施例包括api管理平台10、api网关20、业务逻辑接口设备30和网络40,api管理平台10、api网关20、业务逻辑接口设备30通过网络40通信连接。api管理平台10中包括api发布设备101、api订阅设备102、管理控制设备103和数据库104,api订阅设备102相当于api商店,也相当于令牌中心,在用户订阅目标api时会向用户提供该目标api的调用令牌。

api商店中的令牌可以是由用户在注册平台帐号时自动生成,每个平台帐号对应有一个有使用期限的令牌,当令牌使用期限到期,用户可以续延所述令牌的使用期限。

本发明实施例中的用户设备可以是手机、pad和智能手表等智能终端,也可以是个人计算机(personalcomputer,pc)。

如图1所示,api发布者通过自己的用户设备50制作api,然后发布到api管理平台10的api发布设备101,api发布设备101会将自身所发布的api信息都存储到数据库104中。

api发布设备101还会将该api配置到api订阅设备102,也就是配置到api商店,api订阅者可以通过自己的用户设备60在api商店中查询并订阅api。

用户要想在api管理平台10上订阅api,需要通过用户设备60在api管理平台10上完成注册过程。对于使用目标app来说,用户通常会针对目标app先注册帐号,针对目标app注册的帐号在本发明实施例中称为主帐号,但注册主帐号后要想使用该api管理平台10,还需要在该api管理平台10上注册平台帐号,通过主帐号注册平台帐号的过程可以是用户通过用户设备60向api管理平台10上的管理控制设备103发送对目标应用的平台注册请求,所述平台注册请求中携带注册所述目标应用的主帐号。管理控制设备103根据所述主帐号分配对应的平台帐号,并将该主帐号与平台帐号之间的对应关系保存到数据库104中。

用户设备60获取平台帐号后就可以在api商店中查询api、订阅api,以及对api进行评价等,用户通过用户设备60对api的操作信息也会存储到数据库104中。用户设备60向api订阅设备102发送订阅请求后,api订阅设备102会根据所述订阅请求分配调用令牌,并记录所述平台帐号与所述调用令牌的对应关系,所述调用令牌为对所述目标api的访问权限信息。平台帐号与调用令牌的对应关系也会存储到数据库104中。

用户要通过用户设备60上的app调用目标api时,api网关20接收用户设备60发送的对目标api的调用请求,所述调用请求中携带调用令牌和平台帐号,所述调用令牌为订阅目标应用时所获取的对所述目标api的访问权限信息,所述平台帐号为在所述api管理平台上与注册所述目标应用的主帐号关联的帐号;所述api网关20通过所述api管理平台对所述调用令牌和所述平台帐号进行鉴权;当鉴权通过后,所述api网关20从业务逻辑接口设备30调用与所述目标api对应的业务逻辑接口,所述业务逻辑接口用于所述用户设备访问所述目标应用。

与现有技术中用户使用app时可以随意调用api接口,存在重大的安全隐患相比,本发明实施例采用api网关先对用户对目标api的访问权限做鉴权,在鉴权通过后才能调用真实的业务逻辑接口,只允许鉴权通过的用户调用api,提高了api调用的安全性。

在图1所示的api管理平台中包括api发布设备101、api订阅设备102、管理控制设备103,其中,平台管理者可以通过用户设备70对管理控制设备103以及数据库104中与管理控制设备103相关的数据进行管理。

图2为对api管理平台中的数据进行管理的一实施例示意图。

如图2所示平台管理者在用户设备70上进行操作,通过管理控制设备103对api管理平台10中的帐号,角色,权限进行统一管理,包括帐号增加、删除、修改和查找等维护,api管理平台10中的角色指的是api发布者、api订阅者等角色,可以对api管理平台10中的角色进行增加、删除、修改和查找等操作,还可以对用户的权限进行分配等操作。

图3为对api管理平台中的发布数据进行管理的一实施例示意图。

如图3所示,api发布者在用户设备50上进行操作,通过api发布设备101在api管理平台10中发布api,并且还可以通过api发布设备101查询已发布api,以及对已发布的api进行修改和删除等操作。

图4为对api管理平台中的订阅数据进行管理的一实施例示意图。

如图4所示,在调用api之前,需要先以订阅者的平台帐号订阅api。订阅之后可调用、评价api。

订阅者登录api订阅设备102,也就是api商店后,可以查询api,查看api信息。用户订阅api后,方可对api进行调用,用户还可根据对api的使用情况对其进行评价。

图5为本发明实施例中api调用的管理方法的一实施例示意图。

如图5所示,api订阅者通过用户设备60从api订阅设备102获取令牌token,api订阅设备102也可以称为令牌中心。获取token的方式可以是用户设备60向api订阅设备102发送api订阅请求,api订阅设备102根据该订阅请求向用户设备60返回访问目标api的token。

用户设备60从令牌中心获得token,当api订阅者通过操作app调用目标api时,用户设备60向api网关20发送调用请求,该调用请求中携带token和订阅者的平台帐号,api网关20收到调用请求后会到令牌中心进行认证,认证通过后再调用业务逻辑接口设备30中与该目标api对应的真实的业务逻辑接口。其中api订阅者可在api商店管理自己的令牌,如令牌下发,令牌更换等。

图6为本发明实施例中api调用的管理方法的另一实施例示意图。

如图6所示,api接口在api发布设备101上发布后,需要api网关20面向用户发布,供用户设备调用api接口。

针对api网关发布api接口以及对api调用的管理过程可以为:

s1、api发布者通过api发布设备101发布api。

s2、api网关上可以部署api发布服务组件,api发布者通过api发布设备101发布api时,可以调用该api发布服务组件,向api网关发送业务逻辑接口的地址、端口号和接口名称,参数类型、参数名称等配置信息。

s3、api网关上还可以部署mule-standalone容器,该mule-standalone容器可以用于存放api网关上所发布的api的文件。api网关接收到api发布请求后会根据发布者帐号判断mule-standalone容器内是否有跟该发布者帐号同名的文件夹,如果不存在则以发布者帐号作为名称创建文件夹,并向其中写入例如mule-config.xml格式的配置文件。

s4、api网关可以以api网关的ip为地址,为发布者分配独立的端口号,按照规定格式生成api接口地址,与api关联的业务逻辑接口信息在mule-config.xml文件中进行关联,mule-standalone会自动热部署该文件。部署完成后则实现api的发布。

s5、用户设备可以调用api网关发布的api。

s6、api网关根据mule-config.xml文件中配置的api接口地址与业务逻辑接口的对应关系自动匹配到目标业务逻辑接口,从而实现了地址转换,确定真实的业务逻辑接口返回给用户设备。

因此,基于s2-s5的描述,本发明实施例中所述api网关接收用户设备发送的对目标api的调用请求之前,所述管理方法还可以包括:

所述api网关接收所述api管理平台发布的所述目标api的配置信息;

所述api网关根据所述配置信息,建立所述目标api与对应的业务逻辑接口之间的对应关系,并面向用户发布所述目标api。

基于上述s6,本发明实施例中所述api网关调用与所述目标api对应的业务逻辑接口,可以包括:

所述api网关根据预先配置的api与业务逻辑接口的对应关系,确定与所述目标api对应的业务逻辑接口;

所述api网关调用与所述目标api对应的业务逻辑接口。

以上描述的对api的管理包括了对api的发布、api的订阅,以及对api的安全防护的管理过程,除了上述管理过程,本发明实施例中的管理过程还可以包括对api进行监测,本发明实施例中对api的监测过程可以参阅图7进行理解。

如图7所示,api管理平台10中还包括api监测设备。

m1、api发布者在api发布设备查询api调用频率。

m2、api发布设备通过api监测设备查询api调用频率。

m3、api监测设备查询api调用频率。

m4、api监测设备返回api调用频率的查询结果。

m5、api发布设备用图表展现api调用频率。

m6、api发布者查询api响应时间。

m7、api发布设备通过api监测设备查询api响应时间。

m8、api监测设备查询api响应时间。

m9、api监测设备返回api响应时间。

m10、api发布设备用图表展现api响应时间。

本发明实施例中,对api进行监测,可以将api调用频率的查询结果和api响应时间的查询结果用图表的形式展现给api发布者,供api发布者对api进行优化。

基于m1至m10的描述,本发明实施例中所述api管理平台接收所述api发布设备发送的对所述目标api的管理指令,其中该管理指令可以是调用频率的查询指令,api查询时间的响应指令等。所述api管理平台根据所述管理指令,管理所述目标api,即可以是基于调用频率的查询指令查询api的调用频率,基于api查询时间的响应指令查询api的响应时间。

以上是从api管理系统的硬件架构上对本发明实施例的api调用的管理方法的描述,若从分层的角度对api管理系统进行划分,可以参阅图8进行理解。

如图8所示,从分层角度划分,api管理系统可以包括api管理层和api组件层,api管理层包括帐号管理、权限管理、角色管理、api管理、api订阅和api监测分析。api组件层包括管理组件、发布组件、密钥组件(keymanager),该密钥组件也可以称为令牌管理组件,api网关、监测分析组件和数据库。api管理层可以对用户的帐号、权限以及角色进行管理,并管理api的发布、订阅以及对已发布的api进行监测分析。api组件层用于辅助api管理层,对api的调用等进行管理。只有通过api鉴权,才能调用到目标业务逻辑接口提供侧提供的业务逻辑接口。

如图8所示,目标业务逻辑接口提供侧提供的业务逻辑接口有多个,api网关可以根据api与业务逻辑接口的对应关系,确定与目标api对应的业务逻辑接口,并进行调用。

其中,业务逻辑接口可以是4a平台提供的,4a平台是包括认证、帐号、授权和审计的统一安全管理平台。api网关在对api的调用请求进行鉴权时可以依靠密钥管理器,如图9所示,本发明实施例提供的api调用的管理方法的另一实施例包括:

图9中的掌上运维为调用api的用户设备。api发布者在api管理平台上发布api,api管理平台将api发布者发布的api配置到api商店,后台管理员对api管理平台进行管理。在掌上运维调用api时,先调用api网关上发布的目标api,api网关可以通过密钥管理器对调用请求中的调用令牌进行鉴权,当鉴权通过后,调用4a平台所提供的真实业务接口,密钥管理器是用于生成和管理令牌密钥的底层容器。

本发明实施例提供的api调用的管理方法的网络拓扑结构还可以通过图10来表示。如图10所示,关于api发布、api订阅和后台管理者对api平台的管理可以参阅前面实施例部分的描述,本处不再重复赘述。接口订阅者通过接入网接入到api网关,api网关可以通过数据库(oracle主)或者(oracle备)中所存储的鉴权信息,例如:令牌信息等对调用请求中的调用令牌进行鉴权,当鉴权通过后,调用4a平台所提供的真实业务接口。oracle主正常时oracle备处于备用状态,oracle主出现异常时才会启动oracle备。

从app业务的角度来描述,本发明实施例提供的api调用的管理方法的另一实施例还可以通过图11来描述,如图11所示,用户设备通过网络接入网上运维网关,掌上运维网关的作用是用于确认用户的app主帐户是否在4a平台有注册,如果在4a平台有注册,掌上运维网关才会向api网关转发调用请求,并在调用请求中封装该主帐号对应的平台帐号和调用令牌,api网关对平台帐号和调用令牌进行鉴权,通过鉴权后,会调用对应目标api的业务逻辑接口,并通过掌上运维网关和网络返回给用户设备。

本发明实施例中用户设备在api管理平台注册平台帐号之前还可以接入4a系统,并得到4a系统的票据不属于本申请,在本申请中对此不作具体展开描述。

本发明实施例中除了对平台帐号和调用令牌进行鉴权的安全手段之外,还可以包含但不限于以下防护手段:

1、防sql注入:

对本发明实施例所提供的系统中所有可接受外部参数的地方进行逐一识别,以过滤危险字符。如在全局函数中定义“禁止字符串列表”,该表中列出所要过滤出的sql攻击代码可能包含的字符串。

2、防止跨站脚本攻击:

本发明实施例所提供的系统中的所有输入域采用服务器端白名单技术。如果需要特殊字符,应该转换为更安全的形式。如适用于各种语言的html转码,除此之外,对于可疑字符串也要进行强化检查和转化,并进一步执行以下操作:

(1)对各页面的输入参数进行强化检查;

(2)对原来只在客户端判断的参数,在服务器端进一步强化检查;

(3)最终提供了全局的转码和过滤的函数。

3、来源请求验证:

在本发明实施例所提供的系统中检查httpreferer头部信息,对不符合系统要求的来源请求一律禁止访问。

4、文件上传过滤:

对本发明实施例中的文件格式进行严格黑名单过滤验证,包括但不限于以下格式的文件sh、bat、sql、zip、rar、tar、tar.gz、7z绝对禁止上传,特有业务(如批量导入)功能则以白名单方式进行过滤烟嘴,仅允许xls或xlsx格式文件的上传。

5、静态密码防暴力破解:

设置时间及次数阀值,单位时间内同一帐号连续登录失败次数超过阀值既锁定该帐号。

6、验证码防暴力破解:验证码一次一密,无论成功失败,验证后既清除。

7、防止越权访问:

在系统页面中加入token,并在后台鉴权token来防止越权访问。

8、其他防护手段:

根据实际业务进行上下文逻辑上的防护,如修改密码功能中不允许绕过原密码验证功能而直接请求修改密码功能等。

对于外网的恶意渗透探测、ddos攻击等,通过部署ids、ips、蜜罐以及antiddos等系统来捕获,记录相关的行为,并且通过与防火墙进行联动对来源地址请求进行实时阻断。

对于网络层,除系统对外服务端口外,关闭其他端口及服务以防止利用操作系统层面的漏洞进行攻击。

图12是本发明实施例中api调用的管理方法的另一实施例示意图。

如图12所示,本发明实施例提供的api调用的管理方法的另一实施例包括:

201、api管理平台接收用户设备发送的对目标应用的平台注册请求,所述平台注册请求中携带注册所述目标应用的主帐号。

202、api管理平台根据所述主帐号分配对应的平台帐号。

203、api管理平台返回平台帐号。

204、api管理平台接收用户设备发送的对所述目标应用中目标api的订阅请求,所述订阅请求中携带所述平台帐号。

205、api管理平台根据所述订阅请求分配调用令牌,并记录所述平台帐号与所述调用令牌的对应关系,所述调用令牌为对所述目标api的访问权限信息。

206、api管理平台返回调用令牌。

207、所述api网关接收用户设备发送的对目标api的调用请求,所述调用请求中携带调用令牌和平台帐号。

所述调用令牌为订阅目标应用时所获取的对所述目标api的访问权限信息,所述平台帐号为在所述api管理平台上与注册所述目标应用的主帐号关联的帐号。

在用户设备和api网关之间还可以有其他设备,例如:掌上运维网关,用户设备发送的api调用请求中可以只携带主帐号,由掌上运维网关根据主帐号确定对应的平台帐号和调用令牌,并将平台帐号和调用令牌封装到api调用请求中。

208、所述api网关通过所述api管理平台对所述调用令牌和所述平台帐号进行鉴权。

209、当鉴权通过后,所述api网关调用与所述目标api对应的业务逻辑接口。

210、所述api网关向用户设备返回调用的业务逻辑接口,所述业务逻辑接口用于所述用户设备访问所述目标应用。

与现有技术中用户使用app时可以随意调用api接口,存在重大的安全隐患相比,本发明实施例采用api网关先对用户对目标api的访问权限做鉴权,在鉴权通过后才能调用真实的业务逻辑接口,只允许鉴权通过的用户调用api,提高了api调用的安全性。

从api网关的角度来看:

可选地,所述api网关通过所述api管理平台对所述调用令牌和所述平台帐号进行鉴权,可以包括:

所述api网关向所述api管理平台发送所述平台帐号和所述调用令牌,以使所述api管理平台在数据库中查找与所述平台帐号对应的令牌,当查找到的令牌与所述调用令牌相同时,再确定所述调用令牌是否过期;

当所述api管理平台确定出所述调用令牌未过期,所述api网关接收所述api管理平台发送的查找结果;

所述api网关根据所述查找结果确定所述调用令牌和所述平台帐号通过鉴权。

可选地,所述api网关调用与所述目标api对应的业务逻辑接口,可以包括:

所述api网关根据预先配置的api与业务逻辑接口的对应关系,确定与所述目标api对应的业务逻辑接口;

所述api网关调用与所述目标api对应的业务逻辑接口。

可选地,所述api网关接收用户设备发送的对目标api的调用请求之前,所述管理方法还可以包括:

所述api网关接收所述api管理平台发布的所述目标api的配置信息;

所述api网关根据所述配置信息,建立所述目标api与对应的业务逻辑接口之间的对应关系,并面向用户发布所述目标api。

从api管理平台的角度来看,

可选地,所述方法还包括:

所述api管理平台接收所述api网关发送鉴权请求,所述鉴权请求中携带所述平台帐号和所述调用令牌;

所述api管理平台从数据库中查找与所述平台帐号对应的令牌;

当查找到的令牌与所述调用令牌相同时,所述api管理平台确定所述调用令牌是否过期;

当确定出所述调用令牌未过期,则所述向所述api网关发送查找结果,所述查找结果用于指示所述调用令牌和所述平台帐号通过鉴权。

可选地,所述api管理平台接收用户设备发送的对所述目标应用中目标api的订阅请求之前,所述方法还包括:

所述api管理平台接收api发布设备发送的目标api的配置信息,所述配置信息用于在发送给所述api网关后,所述api网关建立所述目标api与对应的业务逻辑接口之间的对应关系;

所述api管理平台将所述目标api配置到所述api管理平台中的api订阅设备,所述api订阅设备中的api供用户订阅。

可选地,所述方法还包括:

所述api管理平台接收所述api发布设备发送的对所述目标api的管理指令;

所述api管理平台根据所述管理指令,管理所述目标api。

可选地,所述方法还包括:

所述api管理平台接收所述用户设备发送的对所述目标api的操作指令;

所述api管理平台根据所述操作指令,针对所述目标api执行相应的操作。

本发明实施例所描述的api调用的管理方法可以参阅上述图1至图11部分的相关描述进行理解,本处不再重复赘述。

参阅图13,本发明实施例提供的api网关80应用于api管理系统,所述api管理系统还包括api管理平台,所述api网关80包括:

接收单元801,用于接收用户设备发送的对目标api的调用请求,所述调用请求中携带调用令牌和平台帐号,所述调用令牌为订阅目标应用时所获取的对所述目标api的访问权限信息,所述平台帐号为在所述api管理平台上与注册所述目标应用的主帐号关联的帐号;

鉴权单元802,用于通过所述api管理平台对所述接收单元801接收的所述调用令牌和所述平台帐号进行鉴权;

调用单元803,用于当所述鉴权单元802鉴权通过后,调用与所述目标api对应的业务逻辑接口,所述业务逻辑接口用于所述用户设备访问所述目标应用。

与现有技术中用户使用app时可以随意调用api接口,存在重大的安全隐患相比,本发明实施例采用api网关先对用户对目标api的访问权限做鉴权,在鉴权通过后才能调用真实的业务逻辑接口,只允许鉴权通过的用户调用api,提高了api调用的安全性。

可选地,参阅图14,所述api网关还包括发送单元804,

所述发送单元804,用于向所述api管理平台发送所述平台帐号和所述调用令牌,以使所述api管理平台在数据库中查找与所述平台帐号对应的令牌,当查找到的令牌与所述调用令牌相同时,再确定所述调用令牌是否过期;

所述接收单元801,用于当所述api管理平台确定出所述调用令牌未过期,接收所述api管理平台发送的查找结果;

所述鉴权单元802,用于根据所述接收单元801接收的所述查找结果确定所述调用令牌和所述平台帐号通过鉴权。

可选地,所述调用单元803,具体用于根据预先配置的api与业务逻辑接口的对应关系,确定与所述目标api对应的业务逻辑接口,调用与所述目标api对应的业务逻辑接口。

可选地,参阅图15,本发明实施例提供的api网关80还包括建立单元805,

所述接收单元801,还用于接收所述api管理平台发布的所述目标api的配置信息;

所述建立单元805,用于根据所述接收单元801接收的所述配置信息,建立所述目标api与对应的业务逻辑接口之间的对应关系,并面向用户发布所述目标api。

以上是从api网关的功能模块的角度进行的描述,实际上,上述接收单元801和发送单元804可以通过api网关上的i/o接口来实现,鉴权单元802、调用单元803以及建立单元805都可以通过处理器来实现。

参阅图16,本发明实施例提供一种应用程序编程接口api管理平台,所述api管理平台应用于api管理系统,所述api管理系统还包括api网关,所述api管理平台90包括:

接收单元901,用于接收用户设备发送的对目标应用的平台注册请求,所述平台注册请求中携带注册所述目标应用的主帐号;

分配单元902,用于根据所述接收单元901接收的主帐号分配对应的平台帐号;

所述接收单元901,还用于接收用户设备发送的对所述目标应用中目标api的订阅请求,所述订阅请求中携带所述平台帐号;

所述分配单元902,用于根据所述接收单元901接收的所述订阅请求分配调用令牌;

记录单元903,用于记录所述分配单元902分配的平台帐号与所述调用令牌的对应关系,所述调用令牌为对所述目标api的访问权限信息;其中,所述平台帐号和所述调用令牌用于所述api网关对所述用户设备发送的对目标api的调用请求进行鉴权。

与现有技术中用户使用app时可以随意调用api接口,存在重大的安全隐患相比,本发明实施例通过api管理平台使api网关先对用户对目标api的访问权限做鉴权,在鉴权通过后才能调用真实的业务逻辑接口,只允许鉴权通过的用户调用api,提高了api调用的安全性。

可选地,参阅图17,所述api管理平台90还包括查找单元904、确定单元905和发送单元906,

所述接收单元901,还用于接收所述api网关发送鉴权请求,所述鉴权请求中携带所述平台帐号和所述调用令牌;

所述查找单元904,用于从数据库中查找与所述接收单元901接收的所述平台帐号对应的令牌;

所述确定单元905,用于当所述查找单元904查找到的令牌与所述调用令牌相同时,确定所述调用令牌是否过期;

所述发送单元906,用于当所述确定单元905确定出所述调用令牌未过期,则所述向所述api网关发送查找结果,所述查找结果用于指示所述调用令牌和所述平台帐号通过鉴权。

可选地,参阅图18,所述api管理平台90还包括配置单元907,

所述接收单元901,还用于接收api发布设备发送的目标api的配置信息,所述配置信息用于在发送给所述api网关后,所述api网关建立所述目标api与对应的业务逻辑接口之间的对应关系;

所述配置单元907,用于将所述目标api配置到所述api管理平台中的api订阅设备,所述api订阅设备中的api供用户订阅。

可选地,参阅图19,所述api管理平台90还包括管理单元908,

所述接收单元901,还用于接收所述api发布设备发送的对所述目标api的管理指令;

所述管理单元908,用于根据所述接收单元901接收的所述管理指令,管理所述目标api。

可选地,参阅图20,所述api管理平台90还包括操作执行单元909,

所述接收单元901,还用于接收所述用户设备发送的对所述目标api的操作指令;

所述操作执行单元909,用于根据所述接收单元接收的所述操作指令,针对所述目标api执行相应的操作。

以上api管理平台可能是由多个设备来实现的,也可能是通过一个大的集成设备来实现api发布设备、api订阅设备和管理控制设备的功能的,无论api管理平台的具体实现形式如何,针对每个设备都可以由相应的软件或者硬件来实现,如:接收单元901和发送单元906都可以通过相应设备上的i/o接口来实现,分配单元902、记录单元903、查找单元904、确定单元905、配置单元907、管理单元908和操作执行单元909都可以有相应设备上的处理器来实现。

以上图13至图20对api网关和api管理平台的描述,可以参阅图1至图11部分的相应描述进行理解,本处不再重复赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上对本发明实施例所提供的api调用的管理方法、设备以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1