一种认证方法、服务器及认证系统与流程

文档序号:14737279发布日期:2018-06-19 20:45阅读:169来源:国知局
一种认证方法、服务器及认证系统与流程

本发明涉及计算机技术领域,特别涉及一种认证方法、服务器及认证系统。



背景技术:

在网络应用中,系统中API(Application Programming Interface,应用程序编程接口)的安全性随着系统规模的扩大而越发显得重要。

现有技术中,一般仅从单一角度进行验证,例如,仅进行签名校验,或者,仅进行令牌校验。

但是,现有方法安全性较低。



技术实现要素:

本发明实施例提供了一种认证方法、服务器及认证系统,能够提高API调用的安全性。

第一方面,本发明实施例提供了一种认证方法,应用于服务器端,包括:

接收目标应用端发送的应用程序编程接口API登录请求,其中,所述API登录请求中包括:当前用户名、当前用户密码、当前时间戳和当前签名;

判断所述当前签名是否有效,如果是,

根据所述当前用户名和所述当前用户密码,判断当前用户是否为合法用户,如果是,根据所述当前用户名、所述当前用户密码和所述当前时间戳,生成访问令牌,并将所述访问令牌反馈给所述目标应用端;

接收所述目标应用端发送的携带目标访问令牌的API访问请求;

判断所述目标访问令牌是否有效,如果是,响应所述API访问请求。

优选地,

所述API登录请求中进一步包括:当前应用ID和随机数;

所述判断所述当前签名是否有效,包括:

根据预先存储的应用ID与应用密钥的对应关系,确定所述当前应用ID对应的当前应用密钥;

将所述当前应用密钥、所述当前时间戳和所述随机数进行字典序排序;

按照排序结果,将所述当前应用密钥、所述当前时间戳和所述随机数拼接成字符串;

对所述字符串进行加密,生成目标签名;

判断所述目标签名是否与所述当前签名相同,如果是,判断当前时刻与所述当前时间戳的时间差是否在预设的第一时间范围内。

优选地,

所述根据所述当前用户名、所述当前用户密码和所述当前时间戳,生成访问令牌,包括:

将所述当前用户名、所述当前用户密码和所述当前时间戳封装到预设字典中;

对所述字典进行加密,生成访问令牌。

优选地,

所述判断所述目标访问令牌是否有效,包括:

对所述目标访问令牌进行解密,生成目标用户名、目标用户密码和目标时间戳;

根据所述目标用户名和所述目标用户密码,判断目标用户是否为合法用户,如果是,

判断所述目标时间戳与当前时刻的时间差是否在预设的第二时间范围内。

第二方面,本发明实施例提供了一种服务器,包括:

接收单元,用于接收目标应用端发送的应用程序编程接口API登录请求,其中,所述API登录请求中包括:当前用户名、当前用户密码、当前时间戳和当前签名;

第一判断单元,用于判断所述接收单元接收的所述当前签名是否有效,如果是,触发第二判断单元;

所述第二判断单元,用于根据所述接收单元接收的所述当前用户名和所述当前用户密码,判断当前用户是否为合法用户,如果是,触发生成单元;

所述生成单元,用于根据所述接收单元接收的所述当前用户名、所述当前用户密码和所述当前时间戳,生成访问令牌,并将所述访问令牌反馈给所述目标应用端;

第三判断单元,用于接收所述目标应用端发送的携带目标访问令牌的API访问请求;判断所述目标访问令牌是否有效,如果是,响应所述API访问请求。

优选地,

所述API登录请求中进一步包括:当前应用ID和随机数;

第一判断单元,用于根据预先存储的应用ID与应用密钥的对应关系,确定所述当前应用ID对应的当前应用密钥;将所述当前应用密钥、所述当前时间戳和所述随机数进行字典序排序;按照排序结果,将所述当前应用密钥、所述当前时间戳和所述随机数拼接成字符串;对所述字符串进行加密,生成目标签名;判断所述目标签名是否与所述当前签名相同,如果是,判断当前时刻与所述当前时间戳的时间差是否在预设的第一时间范围内。

优选地,

所述生成单元,用于将所述当前用户名、所述当前用户密码和所述当前时间戳封装到预设字典中;对所述字典进行加密,生成访问令牌。

优选地,

所述第三判断单元,用于对所述目标访问令牌进行解密,生成目标用户名、目标用户密码和目标时间戳;根据所述目标用户名和所述目标用户密码,判断目标用户是否为合法用户,如果是,判断所述目标时间戳与当前时刻的时间差是否在预设的第二时间范围内。

第三方面,本发明实施例提供了一种认证系统,包括:上述任一实施例所述的服务器和至少一个应用端。

本发明实施例提供了一种认证方法、服务器及认证系统,其中,该方法应用于服务器端,当接收到API登录请求时,首先对当前签名的有效性进行验证,当验证通过时,对当前用户的合法性进行验证,当为合法用户时,向当前用户反馈访问令牌,当前用户可以在该访问令牌有效期内,携带该访问令牌访问API。该方法采用多次校验机制,先后从签名校验及令牌校验等多角度进行校验,能够提高API的安全性。

附图说明

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

图1是本发明一个实施例提供的一种认证方法的流程图;

图2是本发明一个实施例提供的一种服务器的结构示意图;

图3是本发明一个实施例提供的一种认证系统的结构示意图;

图4是本发明另一个实施例提供的一种认证方法的流程图。

具体实施方式

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

如图1所示,本发明实施例提供了一种认证方法,应用于服务器端,该方法可以包括以下步骤:

步骤101:接收目标应用端发送的应用程序编程接口API登录请求,其中,API登录请求中包括:当前用户名、当前用户密码、当前时间戳和当前签名;

步骤102:判断当前签名是否有效,如果是,执行步骤103;

步骤103:根据当前用户名和当前用户密码,判断当前用户是否为合法用户,如果是,执行步骤104;

步骤104:根据当前用户名、当前用户密码和当前时间戳,生成访问令牌,并将访问令牌反馈给目标应用端;

步骤105:接收目标应用端发送的携带目标访问令牌的API访问请求;

步骤106:判断目标访问令牌是否有效,如果是,执行步骤107;

步骤107:响应API访问请求。

该方法应用于服务器端,当接收到API登录请求时,首先对当前签名的有效性进行验证,当验证通过时,对当前用户的合法性进行验证,当为合法用户时,向当前用户反馈访问令牌,当前用户可以在该访问令牌有效期内,携带该访问令牌访问API。该方法采用多次校验机制,先后从签名校验及令牌校验等多角度进行校验,能够提高API的安全性。

在本发明的一个实施例中,API登录请求中进一步包括:当前应用ID和随机数;

判断当前签名是否有效,包括:

根据预先存储的应用ID与应用密钥的对应关系,确定当前应用ID对应的当前应用密钥;

将当前应用密钥、当前时间戳和随机数进行字典序排序;

按照排序结果,将当前应用密钥、当前时间戳和随机数拼接成字符串;

对字符串进行加密,生成目标签名;

判断目标签名是否与当前签名相同,如果是,判断当前时刻与当前时间戳的时间差是否在预设的第一时间范围内。

其中,加密方法包括安全哈希算法、RSA公钥加密算法等。在应用端,需要使用签名的方式来提交数据,获取签名的方式与服务端相同,即服务器通过相同的逻辑生成目标签名,并与应用端携带的当前签名进行对比,只有目标签名与当前签名相同,且当前时刻与当前时间戳的时间差在第一时间范围内,目标签名才有效。

在本发明的一个实施例中,根据当前用户名、当前用户密码和当前时间戳,生成访问令牌,包括:

将当前用户名、当前用户密码和当前时间戳封装到预设字典中;

对字典进行加密,生成访问令牌。

其中,对字典加密为可逆化加密,密文为访问令牌。

在本发明的一个实施例中,判断目标访问令牌是否有效,包括:

对目标访问令牌进行解密,生成目标用户名、目标用户密码和目标时间戳;

根据目标用户名和目标用户密码,判断目标用户是否为合法用户,如果是,

判断目标时间戳与当前时刻的时间差是否在预设的第二时间范围内。

第二时间范围为有效期限,当目标时间戳与当前时刻的时间差大于第二时间范围,说明目标访问令牌失效。若目标访问令牌失效,则需要重新进行验证以获取有效的访问令牌。在本实施例中,若用户在有效时间内,改过用户密码,再携带访问令牌进行访问就不被许可,该方法极大增强了认证的严谨性。

如图2所示,本发明实施例提供了一种服务器,包括:

接收单元201,用于接收目标应用端发送的应用程序编程接口API登录请求,其中,API登录请求中包括:当前用户名、当前用户密码、当前时间戳和当前签名;

第一判断单元202,用于判断接收单元201接收的当前签名是否有效,如果是,触发第二判断单元203;

第二判断单元203,用于根据接收单元201接收的当前用户名和当前用户密码,判断当前用户是否为合法用户,如果是,触发生成单元204;

生成单元204,用于根据接收单元201接收的当前用户名、当前用户密码和当前时间戳,生成访问令牌,并将访问令牌反馈给目标应用端;

第三判断单元205,用于接收目标应用端发送的携带目标访问令牌的API访问请求;判断目标访问令牌是否有效,如果是,响应API访问请求。

在本发明的一个实施例中,API登录请求中进一步包括:当前应用ID和随机数;

第一判断单元202,用于根据预先存储的应用ID与应用密钥的对应关系,确定当前应用ID对应的当前应用密钥;将当前应用密钥、当前时间戳和随机数进行字典序排序;按照排序结果,将当前应用密钥、当前时间戳和随机数拼接成字符串;对字符串进行加密,生成目标签名;判断目标签名是否与当前签名相同,如果是,判断当前时刻与当前时间戳的时间差是否在预设的第一时间范围内。

在本发明的一个实施例中,生成单元204,用于将当前用户名、当前用户密码和当前时间戳封装到预设字典中;对字典进行加密,生成访问令牌。

在本发明的一个实施例中,第三判断单元205,用于对目标访问令牌进行解密,生成目标用户名、目标用户密码和目标时间戳;根据目标用户名和目标用户密码,判断目标用户是否为合法用户,如果是,判断目标时间戳与当前时刻的时间差是否在预设的第二时间范围内。

如图3所示,本发明实施例提供了一种认证系统,包括:上述任一实施例的服务器301和至少一个应用端302。

如图4所示,本发明实施例以服务器与应用端组成的认证系统为例,对认证方法进行详细地说明,该方法包括:

步骤401:服务器接收目标应用端发送的应用程序编程接口API登录请求,其中,API登录请求中包括:当前用户名、当前用户密码、当前时间戳和当前签名。

步骤402:服务器根据预先存储的应用ID与应用密钥的对应关系,确定当前应用ID对应的当前应用密钥。

步骤403:服务器将当前应用密钥、当前时间戳和随机数进行字典序排序,按照排序结果,将当前应用密钥、当前时间戳和随机数拼接成字符串,对字符串进行加密,生成目标签名。

步骤404:服务器判断目标签名是否与当前签名相同,如果是,执行步骤405。

步骤405:服务器判断当前时刻与当前时间戳的时间差是否在预设的第一时间范围内,如果是,执行步骤406;

步骤406:服务器根据当前用户名和当前用户密码,判断当前用户是否为合法用户,如果是,执行步骤407;

步骤407:服务器将当前用户名、当前用户密码和当前时间戳封装到预设字典中,对字典进行加密,生成访问令牌,并将访问令牌反馈给目标应用端;

步骤408:目标应用端向服务器发送携带目标访问令牌的API访问请求。

步骤409:服务器接收携带目标访问令牌的API访问请求,对目标访问令牌进行解密,生成目标用户名、目标用户密码和目标时间戳。

步骤410:服务器根据目标用户名和目标用户密码,判断目标用户是否为合法用户,如果是,执行步骤411。

步骤411:服务器判断目标时间戳与当前时刻的时间差是否在预设的第二时间范围内,如果是,执行步骤412。

步骤412:响应API访问请求。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。

综上,本发明各个实施例至少具有如下效果:

1、在本发明实施例中,当接收到API登录请求时,首先对当前签名的有效性进行验证,当验证通过时,对当前用户的合法性进行验证,当为合法用户时,向当前用户反馈访问令牌,当前用户可以在该访问令牌有效期内,携带该访问令牌访问API。该方法采用多次校验机制,先后从签名校验及令牌校验等多角度进行校验,能够提高API的安全性。

2、在本发明实施例中,用户若要调取接口就必须经过两层校验后获取访问令牌,大大提高了接口的安全性,有效地加强了第三方暴力破解的难度。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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