技术领域:
本发明涉及安全防护技术领域,特别是涉及一种基于令牌的用户权限管理方法。
背景技术:
:
随着网络的快速发展,用户的不断增加,如果系统没有一个统一的用户管理,就会出现随着用户的持续增加,很可能会导致系统崩溃、某些用户的恶意访问导致系统资源占用造成资源的浪费、黑客攻击系统等一系列问题。针对以上问题,就需要一个统一的用户权限管理,限制某些不法用户的恶意访问占用资源问题。在对http形式的api发请求时,由于restfulapi不保存状态,无法依赖cookie及session来保存用户信息,大部分情况不是通过用户名和密码做验证,而是通过一个令牌,即token做验证。但是通常token中保存用户基本信息,如果使用token令牌并且被恶意捕获到,就可能会被伪造进行冒充。另外系统获取用户基本信息后需要通过数据库查询的方式获取用户对应的资源访问权限,大量用户访问或者被恶意访问会造成数据库的访问压力,严重时造成系统崩溃。
技术实现要素:
:
本发明所要解决的技术问题是:克服现有技术的不足,提供一种通过在令牌中保存用户角色信息以及用户序列号,并根据用户信息与资源的映射关系,达到用户对访问资源的权限管理功能目的的基于令牌的用户权限管理方法。
本发明的技术方案是:一种基于令牌的用户权限管理方法,其步骤是:步骤一、根据用户序列号、用户角色信息和用户信息生成令牌;
步骤二、在系统的配置文件中对不同角色用户能够访问的资源进行管理;
步骤三、用户访问资源时首先对其携带的令牌进行验证,令牌验证通过后,软件系统解析令牌中携带的用户角色信息以及用户序列号;
步骤四、系统将令牌中的用户角色、欲访问的资源与配置文件对应的资源进行匹配;
步骤五、匹配成功后,用户通过令牌中携带的用户序列号查询数据库访问指定的资源。
进一步的,所述令牌的生成步骤是:生成随机字符串作为密钥;将令牌中将要包含的所述用户序列号和用户角色信息及所述密钥拼装成第一字符串,并且通过对所述第一字符串进行加密得到令牌签名;以及将用户信息和所述令牌签名按照可拆解的模式拼装成第二字符串作为所述令牌。
进一步的,所述资源根据用户角色的不同进行归类,并建立所述令牌与归类后资源的映射关系,根据所述映射关系赋予用户使用不同资源的权限。
进一步的,获取各类资源之间的不同特征值,根据特征值与所述令牌中用户角色的映射关系,赋予所述用户使用不同资源的权限。
进一步的,所述令牌的验证方法为:对令牌进行拆解,以得到其中包含的用户信息和第一令牌签名;将拆解出的用户信息和存储的密钥拼装成字符串,并且通过对所述字符串进行加密得到第二令牌签名;以及将所述第一令牌签名和所述第二令牌签名进行比较,并且基于比较结果进行令牌验证。
进一步的,根据获取的用户角色通过与特征值的映射关系,建立匹配关系。
本发明的有益效果是:
1、本发明通过在令牌中保存用户角色信息以及用户序列号,并根据用户信息与资源的映射关系,通过在令牌中添加用户角色信息可有效对用户权限进行管理,同时减轻数据库的访问压力,在令牌中添加加扰信息可有效增强令牌的安全性能,达到用户对访问资源的权限管理功能目的。
2、本发明用在各种用户权限管理与资源分配的应用中,实现过程简单、有效、保密性强,可有效防止恶意攻击以及用户对资源的越界访问。
说明书附图:
图1是用户令牌生成流程框图。
图2是令牌信息提取流程框图。
具体实施方式:
实施例:
基于令牌的用户权限管理方法,步骤一、根据用户序列号、用户角色信息和用户信息生成令牌;步骤二、在系统的配置文件中对不同角色用户能够访问的资源进行管理;步骤三、用户访问资源时首先对其携带的令牌进行验证,令牌验证通过后,软件系统解析令牌中携带的用户角色信息以及用户序列号;步骤四、系统将令牌中的用户角色、欲访问的资源与配置文件对应的资源进行匹配;步骤五、匹配成功后,用户通过令牌中携带的用户序列号查询数据库访问指定的资源;本发明通过在令牌中保存用户角色信息以及用户序列号,并根据用户信息与资源的映射关系,通过在令牌中添加用户角色信息可有效对用户权限进行管理,同时减轻数据库的访问压力,在令牌中添加加扰信息可有效增强令牌的安全性能,达到用户对访问资源的权限管理功能目的。
下面结合附图和实施例对本申请进行详细描述。
步骤一、根据用户序列号、用户角色信息和用户信息生成令牌;
步骤二、在系统的配置文件中对不同角色用户能够访问的资源进行管理;
步骤三、用户访问资源时首先对其携带的令牌进行验证,令牌验证通过后,软件系统解析令牌中携带的用户角色信息以及用户序列号;
步骤四、系统将令牌中的用户角色、欲访问的资源与配置文件对应的资源进行匹配;
步骤五、匹配成功后,用户通过令牌中携带的用户序列号查询数据库访问指定的资源。
所述令牌的生成步骤是:生成随机字符串作为密钥;将令牌中将要包含的所述用户序列号和用户角色信息及所述密钥拼装成第一字符串,并且通过对所述第一字符串进行加密得到令牌签名;以及将用户信息和所述令牌签名按照可拆解的模式拼装成第二字符串作为所述令牌。
所述资源根据用户角色的不同进行归类,并建立所述令牌与归类后资源的映射关系,根据所述映射关系赋予用户使用不同资源的权限。
获取各类资源之间的不同特征值,根据特征值与所述令牌中用户角色的映射关系,赋予所述用户使用不同资源的权限。
所述令牌的验证方法为:对令牌进行拆解,以得到其中包含的用户信息和第一令牌签名;将拆解出的用户信息和存储的密钥拼装成字符串,并且通过对所述字符串进行加密得到第二令牌签名;以及将所述第一令牌签名和所述第二令牌签名进行比较,并且基于比较结果进行令牌验证。
根据获取的用户角色通过与特征值的映射关系,建立匹配关系。
使用时,生成过程中将用户的序列号以及用户角色信息保存到令牌中,为防止令牌被恶意破解,可以在令牌中对用户信息进行一定的加扰。在系统的配置文件中对不同角色用户能够访问的资源进行管理。用户访问资源时需要携带合法令牌,令牌验证通过后,软件系统解析令牌中携带的用户角色信息以及用户序列号。系统将令牌中的用户角色、欲访问的资源与配置文件对应的资源进行匹配。匹配成功后,用户通过令牌中携带的序列号查询数据库访问指定的资源。通过在令牌中添加用户角色信息可有效对用户权限进行管理,同时减轻数据库的访问压力,在令牌中添加加扰信息可有效增强令牌的安全性能。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
1.一种基于令牌的用户权限管理方法,其步骤是:步骤一、根据用户序列号、用户角色信息和用户信息生成令牌;
步骤二、在系统的配置文件中对不同角色用户能够访问的资源进行管理;
步骤三、用户访问资源时首先对其携带的令牌进行验证,令牌验证通过后,软件系统解析令牌中携带的用户角色信息以及用户序列号;
步骤四、系统将令牌中的用户角色、欲访问的资源与配置文件对应的资源进行匹配;
步骤五、匹配成功后,用户通过令牌中携带的用户序列号查询数据库访问指定的资源。
2.根据权利要求1所述的基于令牌的用户权限管理方法,其特征是:所述令牌的生成步骤是:生成随机字符串作为密钥;将令牌中将要包含的所述用户序列号和用户角色信息及所述密钥拼装成第一字符串,并且通过对所述第一字符串进行加密得到令牌签名;以及将用户信息和所述令牌签名按照可拆解的模式拼装成第二字符串作为所述令牌。
3.根据权利要求1所述的基于令牌的用户权限管理方法,其特征是:所述资源根据用户角色的不同进行归类,并建立所述令牌与归类后资源的映射关系,根据所述映射关系赋予用户使用不同资源的权限。
4.根据权利要求3所述的基于令牌的用户权限管理方法,其特征是:获取各类资源之间的不同特征值,根据特征值与所述令牌中用户角色的映射关系,赋予所述用户使用不同资源的权限。
5.根据权利要求1所述的基于令牌的用户权限管理方法,其特征是:所述令牌的验证方法为:对令牌进行拆解,以得到其中包含的用户信息和第一令牌签名;将拆解出的用户信息和存储的密钥拼装成字符串,并且通过对所述字符串进行加密得到第二令牌签名;以及将所述第一令牌签名和所述第二令牌签名进行比较,并且基于比较结果进行令牌验证。
6.根据权利要求1所述的基于令牌的用户权限管理方法,其特征是:根据获取的用户角色通过与特征值的映射关系,建立匹配关系。
技术总结