一种确定权限系统设置合理性的方法、装置与流程

文档序号:18144244发布日期:2019-07-10 11:27阅读:292来源:国知局
一种确定权限系统设置合理性的方法、装置与流程

本发明属于数据处理技术领域,具体涉及一种确定权限系统设置合理性的方法、装置。



背景技术:

权限系统使用用户-角色-操作权限的三层结构来控制权限分配情况。其中,操作权限是最具体的操作,用户是系统用户,角色是系统中的操作权限功能集合。

目前人们多着重于对权限系统的分配权限上的设计,很少关注于权限系统的设计是否合理。

现有的权限分配方法,可能存在很多问题,导致权限系统设置不合理。比如,有可能一个用户对应着两个到三个角色,这些角色中,可能都会访问到一种权限。也就是说一个用户通过角色1可以获取权限1,通过角色2也可以获取权限1,通过角色3仍然可以获取权限1。那么这样的一个权限分配系统是不安全的,在将来进行权限调整时,虽然禁止了用户获得此操作的一条途径,还可通过其他途径获得。建立系统时,应该尽量避免这种同一权限可以通过不同的途径获得等情况的发生。



技术实现要素:

本申请针对现有的权限分配方法,可能存在很多问题,导致权限系统设置不合理的问题,提供一种确定权限系统设置合理性的方法及装置。

本申请提供一种确定权限系统设置合理性的方法,包括:

基于用户数据,创建用户向量、角色向量和操作向量;

根据所述用户向量和所述角色向量创建用户-角色关联矩阵,并根据所述角色向量和所述操作向量创建角色-操作关联矩阵;

根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵,其中,所述用户-操作关联矩阵中的行表示用户,所述用户-操作关联矩阵中的列表示操作;

计算所述用户-操作关联矩阵的秩r;

根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性。

可选的,所述根据所述用户向量和所述角色向量创建用户-角色关联矩阵步骤,包括:

将所述用户向量与所述角色向量相乘,得到所述用户-角色关联矩阵;

所述根据所述角色向量和所述操作向量,创建角色-操作关联矩阵步骤,包括:

将所述角色向量与所述操作向量相乘,得到所述角色-操作关联矩阵。

可选的,所述根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵步骤,包括:

将所述用户-角色关联矩阵与所述角色-操作关联矩阵相乘,得到所述用户-操作关联矩阵。

可选的,所述用户-角色关联矩阵和所述角色-操作关联矩阵的元素包括0和/或1,所述用户-操作关联矩阵的元素包括以下其中之一或任意组合:0、1、大于1的整数;

所述计算所述用户-操作关联矩阵的秩r,包括:

判断所述用户-操作关联矩阵的元素是否包括大于1的整数,若是,则根据预设的第一算法计算所述用户-操作关联矩阵的秩r;否则,根据预设的第二算法计算所述用户-操作关联矩阵的秩r。

可选的,所述根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性步骤,包括:

若r=m,则确定所述权限系统设置合理;

若r<m,则确定所述权限系统设置不合理。

本申请还提供一种确定权限系统设置合理性的装置,包括:

第一创建模块,用于基于用户数据,创建用户向量、角色向量和操作向量;

第二创建模块,用于根据所述用户向量和所述角色向量创建用户-角色关联矩阵,并根据所述角色向量和所述操作向量创建角色-操作关联矩阵;

第一计算模块,用于根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵,其中,所述用户-操作关联矩阵中的行表示用户,所述用户-操作关联矩阵中的列表示操作;

第二计算模块,用于计算所述用户-操作关联矩阵的秩r;

确定模块,用于根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性。

可选的,所述第二创建模块,具体用于:

将所述用户向量与所述角色向量相乘,得到所述用户-角色关联矩阵;

将所述角色向量与所述操作向量相乘,得到所述角色-操作关联矩阵。

可选的,所述第一计算模块,具体用于:

将所述用户-角色关联矩阵与所述角色-操作关联矩阵相乘,得到所述用户-操作关联矩阵。

可选的,所述用户-角色关联矩阵和所述角色-操作关联矩阵的元素包括0和/或1,所述用户-操作关联矩阵的元素包括以下其中之一或任意组合:0、1、大于1的整数;

所述第二计算模块,包括:

判断子模块,用于判断所述用户-操作关联矩阵的元素是否包括大于1的整数;

第一计算子模块,用于若是,则根据预设的第一算法计算所述用户-操作关联矩阵的秩r;

第二计算子模块,用于若否,根据预设的第二算法计算所述

用户-操作关联矩阵的秩r。

可选的,所述确定模块,具体用于:

若r=m,则确定所述权限系统设置合理;

若r<m,则确定所述权限系统设置不合理。

本申请提供的一种确定权限系统设置合理性的方法,用向量的方式来分析研究权限系统的效率,将用户-角色-操作,设定为3个本体向量,并用矩阵的方式来计算这3个本体的关系。通过分析用户-操作的矩阵来分析权限系统的合理性,一个趋于满秩的系统是一个优化的权限系统。

附图说明

图1为本申请第一实施例提供的确定权限系统设置合理性的方法的流程图;

图2为本申请第一实施例提供的图1中步骤s4的流程图;

图3为本申请第一实施例提供的确定权限系统设置合理性的方法的用户角色操作关系的对应示意图;

图4为本申请第二实施例提供的一种确定权限系统设置合理性的装置的结构示意图;

图5为本申请第二实施例提供的一种确定权限系统设置合理性的装置的另一结构示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

本申请提供一种确定权限系统设置合理性的方法、装置。以下分别结合本申请提供的实施例的附图逐一进行详细说明。

本申请第一实施例提供的一种确定权限系统设置合理性的方法如下:

本申请实施例的执行主体是服务器,如图1所示,其示出了本申请实施例提供的一种确定权限系统设置合理性的方法的流程图,包括以下步骤。

步骤s1,基于用户数据,创建用户向量、角色向量和操作向量。

权限系统使用用户-角色-操作权限的三层结构来控制权限分配情况。其中,操作权限是最具体的操作,用户是系统用户,角色是系统中的操作权限功能集合。在一般意义下,这三层之间是多对多的映射关系。

用户定义为系统的使用者,角色是系统权限操作功能集,操作则是系统可以实现的所有功能。在基于角色的访问控制中,支持三个安全原则:最小权限原则、责任分离原则和数据抽象原则。角色是完成任务所需的最小权限集,相互独立互斥的角色来完成任务。所以用户与角色间的关系是多对多的关系。

角色是操作权限的集合,一个角色必然拥有多个权限,同一个权限也可以出现在不同的权限集合角色中。所以,角色和操作间依旧是多对多的关系。

权限管理几乎出现在任何系统里面,只要有用户和密码的系统。企业it管理员一般都能为系统定义角色,给用户分配角色,这就是最常见的基于角色访问控制。例如,给张三赋予"人力资源经理"角色,"人力资源经理"具有"查询员工"、"添加员工"、"修改员工"和"删除员工"权限。此时张三能够进入系统,则可以进行这些操作。

在该步骤中,使用向量来描述本体,使用矩阵来描述本体间的关系。创建用户、角色、操作3个本体向量,创建用户向量u=(user1user2…userm)t、角色向量r=(rol1rol2…roli)t和操作向量o=(oper1oper2…operj)t。需要说明的是,用户向量中的元素都为1,角色向量中的元素可以是变量,也可以都为1,操作向量中的元素为变量。变量的取值范围是1或0。

步骤s2,根据所述用户向量和所述角色向量创建用户-角色关联矩阵,并根据所述角色向量和所述操作向量创建角色-操作关联矩阵。

优选地,所述根据所述用户向量和所述角色向量创建用户-角色关联矩阵步骤,包括:将所述用户向量与所述角色向量相乘,得到所述用户-角色关联矩阵;所述根据所述角色向量和所述操作向量,创建角色-操作关联矩阵步骤,包括:将所述角色向量与所述操作向量相乘,得到所述角色-操作关联矩阵。

在该步骤中,因为用户、角色、操作间是多对多的关系,所以用矩阵来描述。根据用户向量和角色向量创建用户-角色关联矩阵u·rt,简记为ur。矩阵关联矩阵ur中的元素umn表示用户和角色的关联,用元素的值为0或1来记录,表示这个用户是否分配这个角色,1表示这个用户分配,0表示不分配。

具体的,如上述公式所示,将用户向量与角色向量相乘,得到用户-角色关联矩阵ur。此时,用户向量中的元素都为1,而角色向量中的元素是变量,即针对每一个用户对应每一个角色可能是不同的取值。例如,当用户user1分配rol1时,则user1对应的rol1等于1;当用户user1不分配rol1时,则user1对应的rol1等于0。

同理,将角色向量与操作向量相乘,得到角色-操作关联矩阵r·ot,简记为ro。矩阵关联矩阵ro中的元素表示角色和操作的关联,用元素的值为0或1来记录,表示这个角色是否分配这个操作,1表示这个角色分配,0表示不分配。角色向量中的元素都为1,而操作向量中的元素是变量,即针对每一个角色对应每一个操作可能是不同的取值。例如,当角色rol1分配oper1时,则rol1对应的oper1等于1;当角色rol1不分配oper1时,则rol1对应的oper1等于0。

通过向量和矩阵对用户、角色、操作这3个层次间的关系进行描述,可以直观的掌握用户在系统中所拥有的操作权限。再通过对结论矩阵的形态特征来详细分析用户、角色、操作3个层次在系统中的使用效率。

步骤s3,根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵,其中,所述用户-操作关联矩阵中的行表示用户,所述用户-操作关联矩阵中的列表示操作。

优选地,所述根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵步骤,包括:将所述用户-角色关联矩阵与所述角色-操作关联矩阵相乘,得到所述用户-操作关联矩阵。

在该步骤中,两个本体向量相乘是两个本体间的关联矩阵,那么本体间关联矩阵相乘则可以计算出任意两个本体间的关系。用户-操作关联矩阵可以用矩阵t=ur·ro表示,其中每个元素用tmj表示。这一矩阵清楚的表明了每一个用户所能执行的所有操作,为系统管理员检查用户权限分配的合理性提供了依据,增强了系统的可靠性。

具体的,因为关联矩阵ur和关联矩阵ro中的元素均为1或0,因为两个矩阵相乘是前一个矩阵的行与第二矩阵对应的列相乘得到对应的元素,所以矩阵t的元素tmj不都为1或0,会出现大于1的整数的情形。

关联矩阵t中的元素取值可用如下式子表示:如果关联矩阵t中某元素tmj为0,则说明用户m与操作j不存在关联,也就是说用户m没有操作j的访问权限。如果关联矩阵t中某元素tmj不为0,则说明用户m与操作j之间存在关联,也就是说用户m有操作j的访问权限。当tmj=1时,用户m仅有一条路径可以使用操作权限j,而当tmj=x时,用户m有x条路径可以使用操作权限j。

当x值过大时,也就是说用户m可以访问操作权限j的路径很多,如果关联矩阵t中存在大量的元素其值过大,那么这样的系统是不安全的。在将来进行操作权限调整时,虽然禁止了用户获得此操作的一条途径,还可通过其他途径获得。建立系统时,应该尽量避免这种同一权限可以通过不同的途径获得。

需要说明的是,用户-操作关联矩阵中的行表示用户,用户-操作关联矩阵中的列表示操作,不能颠倒。

需要说明的是,如果想更深一层的讨论权限关系,就要对关联矩阵t的形态特征进一步的分析。

一,关联矩阵t中存在某些行都为0,那么存在一些用户根本没有任何访问权限。如果关联矩阵t中存在某些列都为0,那么有一些设定的权限不会被该系统中的任何用户访问。这些权限可能暂时不会涉及,可以先冻结,等到需要时再被使用。

二,如果关联矩阵t中存在大量的行或者列的元素值都是>1的,则系统可能出现问题。如果关联矩阵t中存在大量这样的行或者列的话,通过矩阵计算,会使得计算出的结论矩阵中部分元素的值过大,也就是说两个本体间获得关联的途径较多,这样使得系统存在隐患。在将来进行调整时虽然禁止了某一条途径,但两个本体仍然存在其他途径获得关联。

例如,关联矩阵t中某一行的元素值都非0,那么该用户获得了系统中的所有权限,可能该用户是管理员级别的,拥有大量权限。但是若存在大量这样的用户,系统中太多用户拥有所有权限是极其不合理的,严重威胁系统安全。

例如,若关联矩阵t中某一列的元素值都非0,则该操作权限可以被所有用户访问,一种情况,可以理解为该操作是基础的操作,如对文章的查询与浏览,可以在系统中分配更多的资源,使得大量用户同时调用时,系统还可以正常运行。另一种情况,就是操作权限的分配出现问题,大量的用户被分配到相同的权限,使得权限不合理。优化系统的时候,应该使得角色分工更明确,用户分配的权限分散。

步骤s4,计算所述用户-操作关联矩阵的秩r。

优选地,如图2所示,其示出了本申请实施例提供的一种确定权限系统设置合理性的方法的流程图,所述用户-角色关联矩阵和所述角色-操作关联矩阵的元素包括0和/或1,所述用户-操作关联矩阵的元素包括以下其中之一或任意组合:0、1、大于1的整数;所述计算所述用户-操作关联矩阵的秩r,包括:

步骤s401,判断所述用户-操作关联矩阵的元素是否包括大于1的整数,若是,则执行步骤s402;若否,则执行步骤s403。

步骤s402,根据预设的第一算法计算所述用户-操作关联矩阵的秩r。

步骤s403,根据预设的第二算法计算所述用户-操作关联矩阵的秩r。

在该步骤中,关联矩阵t的不为零的子式的最大阶数称为矩阵t的秩,记作r。在求秩的过程中,对矩阵做初等行变换,用初等行变换把该矩阵化为行阶梯阵,这个行阶梯阵的非零行向量的个数就是该关联矩阵t的秩。

具体的,第一,如果用户-操作关联矩阵的元素不包括大于1的整数,即都为1或0。则根据预设的第一算法计算所述用户-操作关联矩阵的秩r,即对前一行乘以-1加到下一行中,使得第二行以下每一行的第一个元素化为0。

第二,如果用户-操作关联矩阵的元素包括大于1的整数,则根据预设的第二算法计算所述用户-操作关联矩阵的秩r,即通过换行或者乘以适当的数将第一行的第一个元素化为1,然后再用适当的数乘以第一行加到其他行上去,使其它行的第一个元素化为0。第二算法不限于此种方法,可以根据用户需要自行设定,此处不作限定。

在秩分析中不再局限于某用户或某操作的分析,而是对整个系统的分析,所以不需要再考虑顺序的问题。因此,对调行变换不影响矩阵性质。在对矩阵做倍乘行变换时,是为了去掉同一用户获得权限的重复次数。而倍加行变换则是去掉用户间获得相同权限的重复次数。当不能再化简的时候,用户间获得权限的情况不相关。

步骤s5,根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性。

优选地,所述根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性步骤,包括:若r=m,则确定所述权限系统设置合理;若r<m,则确定所述权限系统设置不合理。

在该步骤中,通过矩阵秩的概念,做出如下推论,当矩阵的行数为m,列数为n时,如果矩阵的秩r<m,则说明权限系统没有得到充分利用。

具体的,对映用户和操作的关联矩阵t,在对关联矩阵t做初等行变换的时候,就是化简用户获得相同权限的路径或方法。最后化简成的行阶梯阵,反映的是整个权限系统可以独立获得权限的不相关用户组。而关联矩阵t的秩表示的是可以独立获得某些权限的用户的个数,也就是说,这些用户获得的权限不会完全相同。所以,当一个矩阵满秩的时候,即r=m,所有用户独立不相关的获得权限,他们获得的权限不会完全相同,用户各谋其职,将就说明权限系统设置合理,是最理想的状态。当一个矩阵不满秩的时候,即r<m,则确定权限系统设置不合理。

例如,如图3所示。用户1和用户2都获得1、2、3操作权限,但是以不同的路径,并且路径唯一。

第一种情况,用户操作权限矩阵可以表示为:

对该矩阵求秩,初等行变换后的矩阵为:

该矩阵秩为1,虽然用户1和用户2获得权限的方法不同,但是他们获得了相同的权限,线性相关。初等行变换之后的矩阵不是满秩,说明不是一个设置合理的权限系统。

第二种情况,如果更改权限分配方法,给用户1分配角色1和角色2,更改后的关系为:

对该矩阵求秩,初等行变换后的矩阵为:

该矩阵满秩为2,虽然用户1和用户2还是有相同的权限1和2,但是区分这两个用户的是用户2还可以获得权限3,他们是不相关的。用户1和用户2都有权限,并且相互独立,权限不一致。一个趋于满秩的系统是一个优化的系统,这种情况下的权限系统是最理想的。

在大规模部署的权限系统中,存在一定量的空行或者空列,满行或者满列的情况是可以允许的,但是要尽量避免和优化,使得矩阵趋于满秩。

本申请提供的一种确定权限系统设置合理性的方法,用向量的方式来分析研究权限系统的效率,将用户-角色-操作,设定为3个本体向量,并用矩阵的方式来计算这3个本体的关系。通过分析用户-操作的矩阵来分析权限系统的合理性,一个趋于满秩的系统是一个优化的权限系统。

本申请第二实施例提供的一种确定权限系统设置合理性的装置如下:

在上述的实施例中,提供了一种确定权限系统设置合理性的方法,与之相对应的,本申请还提供了一种确定权限系统设置合理性的装置。

如图4所示,其示出了本申请实施例提供的一种确定权限系统设置合理性的装置的结构示意图,包括以下模块。

第一创建模块11,用于基于用户数据,创建用户向量、角色向量和操作向量;

第二创建模块12,用于根据所述用户向量和所述角色向量创建用户-角色关联矩阵,并根据所述角色向量和所述操作向量创建角色-操作关联矩阵;

第一计算模块13,用于根据所述用户-角色关联矩阵与所述角色-操作关联矩阵,计算用户-操作关联矩阵,其中,所述用户-操作关联矩阵中的行表示用户,所述用户-操作关联矩阵中的列表示操作;

第二计算模块14,用于计算所述用户-操作关联矩阵的秩r;

确定模块15,用于根据所述用户-操作关联矩阵的秩r和用户-操作关联矩阵的行数m,确定权限系统设置的合理性。

可选的,所述第二创建模块,具体用于:

将所述用户向量与所述角色向量相乘,得到所述用户-角色关联矩阵;

将所述角色向量与所述操作向量相乘,得到所述角色-操作关联矩阵。

可选的,所述第一计算模块,具体用于:

将所述用户-角色关联矩阵与所述角色-操作关联矩阵相乘,得到所述用户-操作关联矩阵。

可选的,如图5所示,其示出了本申请实施例提供的一种路由发现装置的结构示意图,所述用户-角色关联矩阵和所述角色-操作关联矩阵的元素包括0和/或1,所述用户-操作关联矩阵的元素包括以下其中之一或任意组合:0、1、大于1的整数;

所述第二计算模块,包括:

判断子模块,用于判断所述用户-操作关联矩阵的元素是否包括大于1的整数;

第一计算子模块,用于若是,则根据预设的第一算法计算所述用户-操作关联矩阵的秩r;

第二计算子模块,用于若否,根据预设的第二算法计算所述用户-操作关联矩阵的秩r。

可选的,所述确定模块,具体用于:

若r=m,则确定所述权限系统设置合理;

若r<m,则确定所述权限系统设置不合理。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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