一种调用restapi的方法、系统及客户端的制作方法

文档序号:6535607阅读:217来源:国知局
一种调用rest api的方法、系统及客户端的制作方法
【专利摘要】本发明公开了一种调用REST?API的方法、系统及客户端,其中,该方法包括:通过RBAC认证授权系统对请求调用REST?API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值;根据请求调用所述REST?API所需的参数、所述REST?API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;将所述密钥携带在调用所述RESTAPI的请求中,发送至应用服务器以调用所述REST?API。本发明通过RBAC认证授权系统限制非法用户调用REST?API,对通过授权的用户的调用请求进行加密,保证了调用REST?API的安全性,防止在调用REST?APT时受到攻击。
【专利说明】—种调用REST API的方法、系统及客户端
【技术领域】
[0001]本发明涉及计算机网络领域,具体涉及一种调用REST (Representational StateTransfer,表述性状态转移)API (Application Program Interface,应用程序接口)的方法、系统及客户端。
【背景技术】
[0002]REST (Representational State Transfer,表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST的流行使得越来越多的框架开始支持REST,为构建下一代高性能、高可伸缩性、简单性、可移植性、可靠性的Web程序提供了一个架构风格上的准则。
[0003]在Web应用程序开发过程中,随着安全成为了 SOA (Service-OrientedArchitecture,面向服务的体系结构)实现的主要宗旨之一,以及REST迅速成为流行的SOA实现方案之一,REST安全成为了亟待解决的问题。由于REST是基于HTTP的,而REST服务有跟标准的Web应用一样的容易受攻击的倾向,并且REST没有预定义的安全方法,必须依靠开发人员定义自己的安全方法来维护资源调用。

【发明内容】

[0004]本发明需要解决的技术问题是提供一种调用REST API的方法、系统及客户端,保证调用REST API的安全性,防止在调用REST APT时受到攻击。
[0005]为了解决上述技术问题,本发明提供了一种调用REST API的方法,应用于客户端,包括:
[0006]客户端通过基于角色的访问控制RBAC认证授权系统对请求调用表述性状态转移应用程序接口 REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值;
[0007]根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;
[0008]将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述REST API。
[0009]进一步地,所述根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥,包括:
[0010]按照预定的格式将请求调用所述REST API所需的参数依次拼接,在拼接好的字符串末尾加上所述REST API应用的私钥,然后加上所述授权Key值,最后将这段字符串进行md5加密,生成最终的密钥。
[0011]进一步地,所述方法还包括:
[0012]在调用所述REST API成功后,收到所述应用服务器返回的调用数据。
[0013]进一步地,所述方法还包括:[0014]如果收到所述应用服务器返回的API调用失败的结果,则所述客户端提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
[0015]为了解决上述技术问题,本发明还提供了一种客户端,包括:
[0016]认证模块,用于通过基于角色的访问控制RBAC认证授权系统对请求调用表述性状态转移应用程序编程接口 REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并将所述授权Key值发送至加密模块;
[0017]加密模块,用于根据请求调用所述RESTAPI所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;
[0018]发送模块,用于将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述REST API。
[0019]进一步地,所述加密模块,用于根据请求调用所述REST API所需的参数、所述RESTAPI应用的私钥以及所述授权Key值按照预定的格式生成一个密钥,包括:
[0020]按照预定的格式将请求调用所述REST API所需的参数依次拼接,在拼接好的字符串末尾加上所述REST API应用的私钥,然后加上所述授权Key值,最后将这段字符串进行md5加密,生成最终的密钥。
[0021]进一步地,所述客户端还包括:
[0022]接收模块,用于在调用所述REST API成功后,接收所述应用服务器返回的调用数据。
[0023]进一步地,所述客户端还包括:异常处理模块;其中:
[0024]接收模块,还用于接收所述应用服务器返回的API调用失败的结果;并将所述API调用失败的结果通知给所述异常处理模块;
[0025]所述异常处理模块,用于提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
[0026]为了解决上述技术问题,本发明还提供了一种REST API的系统,包括:基于角色的访问控制RBAC认证授权系统、应用服务器以及如上所述的客户端,其中:
[0027]所述客户端,用于向基于角色的访问控制RBAC认证授权系统发送对用户权限认证的请求,通过所述RBAC认证授权系统对请求调用表述性状态转移应用程序编程接口REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述API ;
[0028]所述RBAC认证授权系统,用于在收到所述客户端对用户权限认证的请求后,对所述用户进行权限认证,并在通过认证后,向所述客户端返回授权Key值;
[0029]所述应用服务器,用于接收所述客户端发送的调用所述REST API的请求,并在调用成功后向所述客户端返回调用数据。
[0030]与现有技术相比,本发明提供的调用REST API的方法、客户端及系统,通过基于角色的访问控制RBAC认证授权系统限制非法用户调用REST API,对通过授权的用户的调用请求进行加密操作,从而保证了调用REST API的安全性,防止在调用REST APT时受到攻击。【专利附图】

【附图说明】
[0031]图1是实施例中调用RESTAPI的系统结构图;
[0032]图2是实施例中客户端的结构图;
[0033]图3是实施例中调用RESTAPI的方法流程图。
【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0035]实施例:
[0036]如图1所示,本实施例提供了调用REST API的系统,包括:RBAC (Role-BasedAccess Control,基于角色的访问控制)认证授权系统、应用服务器以及用于REST API的客户端,其中:
[0037]所述客户端,用于向RBAC认证授权系统发送对用户权限认证的请求,通过所述RBAC认证授权系统对请求调用REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并根据请求调用所述API所需的参数、所述API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;将所述密钥携带在表述性状态转移API调用请求中,发送至应用服务器以调用所述API ;
[0038]所述RBAC认证授权系统,用于在收到所述客户端对用户权限认证的请求后,对所述用户进行权限认证,并在通过认证后,向所述客户端返回授权Key值;
[0039]一个用户拥有若干角色,一个角色拥有若干权限,RBAC通过角色与权限的关联,验证该用户(角色)是否对指定的资源有指定的操作权限。
[0040]所述应用服务器,用于接收所述客户端发送的表述性状态转移API调用请求,并在调用成功后向所述客户端返回调用数据。
[0041]其中,如图2所示,所述客户端包括:认证模块、加密模块和发送模块,其中:
[0042]认证模块,用于通过基于角色的访问控制RBAC认证授权系统对请求调用RESTAPI的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并将所述授权Key值发送至加密模块;
[0043]加密模块,用于根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;
[0044]对于不同的REST API,在调用时需要不同的参数,从请求内容里获取所要传递的参数,以删除一条数据的API为例,参数就包括这条数据的唯一标识,删除执行者的用户标识,执行删除的时间等。
[0045]作为一种优选的方式,REST API应用的私钥就是指调用的REST API名称,预订的私钥是服务器端规定好的。
[0046]其中,所述加密模块,用于根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥,具体包括:
[0047]按照预定的格式将所述请求调用所述RESTAPI所需的参数依次拼接,在拼接好的字符串末尾追加上REST API应用的私钥,然后加上所述授权Key值,最后将这段字符串进行md5加密,生成最终的密钥。
[0048]发送模块,用于将所述密钥携带在调用RESTAPI的请求中,发送至应用服务器以调用所述REST API。
[0049]此外,所述客户端还包括:接收模块,用于在调用所述API成功后,接收所述应用服务器返回的调用数据。
[0050]此外,所述客户端还包括:异常处理模块;其中:
[0051]接收模块,还用于接收所述应用服务器返回的API调用失败的结果;并将所述API调用失败的结果通知给所述异常处理模块;
[0052]所述异常处理模块,用于提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
[0053]如图3所示,本实施例提供了一种调用RESTAPI的方法,包括以下步骤:
[0054]SlOl:客户端通过RBAC认证授权系统对请求调用REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值;
[0055]S102:根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;
[0056]其中,例如,首先得到用户调用REST API请求需要的参数“keylialuel”、“ key2=value2”、“ key3=value3” ;
[0057]将上述格式化好的参数以字典序升序排列后,拼接在一起,即“keyl=valuelkey2=Value2key3=Value3”;在拼接好的字符串末尾追加上RESTAPI应用的私钥;最后在末尾加上授权成功后得到的key值;然后将这段字符串进行md5加密即得到最终的密钥。
[0058]S103:将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述 REST API。
[0059]其中,客户端通过HTTP协议发送调用REST API的请求,使用HTTP的标准方法与服务器端通信。
[0060]S104:在调用所述REST API成功后,收到所述应用服务器返回的调用数据。
[0061]此外,在步骤S103之后,还包括:
[0062]如果收到所述应用服务器返回的API调用失败的结果,则所述客户端提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
[0063]从上述实施例可以看出,相对于现有技术,上述实施例中提供的调用REST API的方法、客户端及系统,通过RBAC认证授权系统限制非法用户调用REST API,对通过授权的用户的调用请求进行加密操作,从而保证了调用REST API的安全性,防止在调用REST APT时受到攻击。
[0064]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0065]以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的
【发明内容】
,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种调用REST API的方法,应用于客户端,包括: 客户端通过基于角色的访问控制RBAC认证授权系统对请求调用表述性状态转移应用程序接口 REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值; 根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥; 将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述RESTAPI。
2.如权利要求1所述的方法,其特征在于: 所述根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥,包括: 按照预定的格式将请求调用所述REST API所需的参数依次拼接,在拼接好的字符串末尾加上所述REST API应用的私钥,然后加上所述授权Key值,最后将这段字符串进行md5加密,生成最终的密钥。
3.如权利要求1所述的方法,其特征在于:所述方法还包括: 在调用所述REST API成 功后,收到所述应用服务器返回的调用数据。
4.如权利要求3所述的方法,其特征在于:所述方法还包括: 如果收到所述应用服务器返回的API调用失败的结果,则所述客户端提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
5.一种客户端,包括: 认证模块,用于通过基于角色的访问控制RBAC认证授权系统对请求调用表述性状态转移应用程序编程接口 REST API的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并将所述授权Key值发送至加密模块; 加密模块,用于根据请求调用所述RESTAPI所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥; 发送模块,用于将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述REST API。
6.如权利要求5所述的客户端,其特征在于: 所述加密模块,用于根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥,包括: 按照预定的格式将请求调用所述REST API所需的参数依次拼接,在拼接好的字符串末尾加上所述REST API应用的私钥,然后加上所述授权Key值,最后将这段字符串进行md5加密,生成最终的密钥。
7.如权利要求5所述的客户端,其特征在于:所述客户端还包括: 接收模块,用于在调用所述REST API成功后,接收所述应用服务器返回的调用数据。
8.如权利要求7所述的客户端,其特征在于:所述客户端还包括:异常处理模块;其中: 接收模块,还用于接收所述应用服务器返回的API调用失败的结果;并将所述API调用失败的结果通知给所述异常处理模块;所述异常处理模块,用于提示用户本次API调用失败的原因,等待用户的指示,并根据用户的指示,执行相应的操作。
9.一种REST API的系统,包括:基于角色的访问控制RBAC认证授权系统、应用服务器以及如权利要求5~8所述的客户端,其中: 所述客户端,用于向基于角色的访问控制RBAC认证授权系统发送对用户权限认证的请求,通过所述RBAC认证授权系统对请求调用表述性状态转移应用程序编程接口 RESTAPI的用户进行权限认证,在通过认证后,收到所述RBAC认证授权系统返回的授权Key值,并根据请求调用所述REST API所需的参数、所述REST API应用的私钥以及所述授权Key值按照预定的格式生成一个密钥;将所述密钥携带在调用所述REST API的请求中,发送至应用服务器以调用所述API ; 所述RBAC认证授权系统,用于在收到所述客户端对用户权限认证的请求后,对所述用户进行权限认证,并在通过认证后,向所述客户端返回授权Key值;所述应用服务器,用于接收所述客户端发送的调用所述REST API的请求,并在调用成功后向所述客户端返回调用数据。
【文档编号】G06F9/445GK103699824SQ201410014556
【公开日】2014年4月2日 申请日期:2014年1月13日 优先权日:2014年1月13日
【发明者】王帅, 张培训 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1