一种公用基础模块的调用方法和装置制造方法及图纸

技术编号:26606427 阅读:25 留言:0更新日期:2020-12-04 21:30
本发明专利技术公开了一种公用基础模块的调用方法和装置,方法包括:由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求。本发明专利技术能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。

【技术实现步骤摘要】
一种公用基础模块的调用方法和装置
本专利技术涉及公用基础模块领域,更具体地,特别是指一种公用基础模块的调用方法和装置。
技术介绍
共用基础模块(CBB)是指那些可以在不同产品、系统之间共用的组件、模块、技术、及相关设计成果。在项目研发过程中,通过重用CBB,可以减少重复开发,节约开发资源和成本、缩短开发周期和上市时间,提高产品质量。CBB的实施对安全性和易用性提出了很高的要求,否则辛苦研发的CBB会给人造成不好用的印象,从而导致无法在企业中推行起来。其中对安全性和易用性影响较大的一个因素就是调用CBB接口时的身份认证和接口鉴权问题,目前常用的CBB接口认证方式是采用传统的基于令牌(Token)的方式,主要分为两步:第一步是发送用户名和密码进行身份认证并获取认证Token;第二步是携带Token访问业务接口。在这种认证鉴权的方式中,用户不能直接访问某个资源接口,必须首先访问登录接口获取Token,然后才能携带着Token访问资源接口,降低了CBB的易用性。另外Token的有效期不好设置,时间太长容易造成重放攻击的风险,时间太短则需要频繁的进行登录认证,严重影响用户体验。针对现有技术中CBB运转依赖Token并且容易受到重放攻击的问题,目前尚无有效的解决方案。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种公用基础模块的调用方法和装置,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。基于上述目的,本专利技术实施例的第一方面提供了一种公用基础模块的调用方法,包括执行以下步骤:由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。在一些实施方式中,接口调用端的指令环境为Java、JavaScript、或Python;获取请求时间戳包括以下之一:在Java环境中使用time获取请求时间戳、在JavaScript环境中使用Date().getTime()获取请求时间戳、和在Python环境中使用time.time()获取请求时间戳。在一些实施方式中,还包括:接口调用端在获取请求时间戳之前,先访问公用基础模块的密钥管理中心以获得由密钥管理中心为接口调用端生成的用户标识和私钥,其中每个接口调用端、分发给接口调用端的用户标识、和分发给接口调用端的私钥均一一对应。在一些实施方式中,密钥管理中心成对地生成和发放用户标识和私钥,并且私钥的加密和解密均使用SM2国密算法。在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。在一些实施方式中,还包括:公用基础模块在基于接口访问权限而处理业务请求之后,还将处理结果反馈到接口调用端。本专利技术实施例的第二方面提供了一种公用基础模块的调用装置,包括:公用基础模块;公用基础模块的接口调用端;处理器;和存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。本专利技术具有以下有益技术效果:本专利技术实施例提供的公用基础模块的调用方法和装置,通过由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求的技术方案,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例本文档来自技高网...

【技术保护点】
1.一种公用基础模块的调用方法,其特征在于,包括执行以下步骤:/n由公用基础模块的接口调用端获取请求时间戳,并使用所述接口调用端的私钥对所述请求时间戳签名以获得加密串;/n由所述接口调用端发送包括请求参数的业务请求,其中所述请求参数包括封装好的所述接口调用端的用户标识、所述请求时间戳、和所述加密串;/n由所述公用基础模块接收所述业务请求,并从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证;/n由所述公用基础模块响应于通过所述身份认证而以非令牌形式来确定所述接口调用端的接口访问权限,并基于所述接口访问权限而在所述公用基础模块中处理所述业务请求,其中所述身份认证和所述接口访问权限均保留在所述公用基础模块之内。/n

【技术特征摘要】
1.一种公用基础模块的调用方法,其特征在于,包括执行以下步骤:
由公用基础模块的接口调用端获取请求时间戳,并使用所述接口调用端的私钥对所述请求时间戳签名以获得加密串;
由所述接口调用端发送包括请求参数的业务请求,其中所述请求参数包括封装好的所述接口调用端的用户标识、所述请求时间戳、和所述加密串;
由所述公用基础模块接收所述业务请求,并从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证;
由所述公用基础模块响应于通过所述身份认证而以非令牌形式来确定所述接口调用端的接口访问权限,并基于所述接口访问权限而在所述公用基础模块中处理所述业务请求,其中所述身份认证和所述接口访问权限均保留在所述公用基础模块之内。


2.根据权利要求1所述的方法,其特征在于,所述接口调用端的指令环境为Java、JavaScript、或Python;
获取所述请求时间戳包括以下之一:在Java环境中使用time获取所述请求时间戳、在JavaScript环境中使用Date().getTime()获取所述请求时间戳、和在Python环境中使用time.time()获取所述请求时间戳。


3.根据权利要求1所述的方法,其特征在于,还包括:所述接口调用端在获取所述请求时间戳之前,先访问所述公用基础模块的密钥管理中心以获得由所述密钥管理中心为所述接口调用端生成的所述用户标识和所述私钥,其中每个所述接口调用端、分发给所述接口调用端的所述用户标识、和分发给所述接口调用端的所述私钥均一一对应。


4.根据权利要求3所述的方法,其特征在于,所述密钥管理中心成对地生成和发放所述用户标识和所述私钥,并且所述私钥的加密和解密均使用SM2国密算法。


5.根据权利要求1所述的方法,其特征在于,由公用基础模块从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证包括:
获取当前时间戳,并确定所述当前时间戳和所述请求参数中的所述请求时间戳之差值;
响应于所述差值大于预设的过期时间间隔而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据所述请求参数中的所述用户标识从所述密钥库中获取与所述用户标识相对应的公钥;
基于所述公钥反签名所述请求参数中的所述加密串以获得解密时间戳,并比较所述请求时间戳和所述解密时间戳;
响应于所述请求时间戳和所述解密时间戳不一致而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述业务请求未在上述步骤中被认定为是重放攻击而通过所述身份认证。


6.根据权利要求1所述的方法,其特征在于,由所述公用基础模块响应于通...

【专利技术属性】
技术研发人员:刘凯徐峥
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1