一种基于属性访问控制策略的访问控制方法

文档序号:9251003阅读:856来源:国知局
一种基于属性访问控制策略的访问控制方法
【技术领域】
[0001] 本发明属于网络技术领域,具体涉及到一种基于属性访问控制策略的访问控制方 法。
【背景技术】
[0002] 本发明的背景是在物联网搜索环境中,当用户搜索第三方数据时,为了保护用户 的隐私,物联网搜索引擎不能告诉第三方用户信息,因而第三方将数据库数据以及其基于 角色的访问控制策略提交给物联网搜索引擎,由物联网搜索引擎判断用户对资源的访问权 限并返回响应给用户。第三方的访问控制各式各样,然而物联网中常用的访问控制为基于 属性的访问控制,若第三方能够在将访问控制策略和数据提交给物联网搜索引擎之前,将 该访问控制策略转化为基于属性的访问控制,那么将大大提高物联网搜索引擎的效率,也 能够避免物联网无法识别该访问控制而无法做出判断的缺陷。因此我们拟提出一种方案, 来解决第三方基于角色的访问控制转化为基于属性的XACML的问题。
[0003] 在物联网搜索引擎中,当用户检索到第三方机制的数据时,第三方往往将其数据 与权限发送给物联网搜索引擎,物联网搜索引擎再根据其数据及访问控制策略来判定返回 给用户的资源。物联网搜索引擎中常用的是基于属性的访问控制,因此需要将非基于属性 的访问控制转化为基于属性的访问控制。在以往数据库的研宄上,很多集中于数据库数据 的转化:将数据库数据通过发布函数转化为XML或者XML使用映射函数转化为数据库数据。 但对于数据库中访问控制的转化,暂时没有统一能自动执行转换的工具来实现转换,以往 常常通过人工手动去执行转换,这种方法费时且效率低,在转化的时候更可能因为人为的 疏忽,造成了新旧权限不一致。

【发明内容】

[0004] 本发明的目的在于解决访问控制策略的转换问题,提供一种转换机制,在物联网 搜索引擎中,在不改变原基于角色的访问控制的前提下,通过输入,能够自动的将第三方的 基于角色访问控制转换为XACML,对搜索请求快速的做出响应,大大提高了物联网搜索引擎 的效率。
[0005] 本发明的技术方案为:
[0006] -种基于属性访问控制策略的访问控制方法,其步骤为:
[0007] 1)提取数据库中用户-角色表和角色_权限表的属性信息,生成用户-角色-授 权的访问控制关系哈希表;
[0008] 2)根据访问控制关系哈希表生成访问控制策略:对访问控制关系哈希表进行迭 代遍历,获得每一个键值对,即每个用户及其权限属性集合;然后根据用户的权限属性生成 该用户的访问控制策略规则;
[0009] 3)物联网搜索引擎对于收到的每一访问请求,根据所述访问控制策略规则对该访 问请求进行判断,确定是否允许访问。
[0010] 进一步的,生成所述访问控制关系哈希表的方法为:首先创建一空哈希表,将每一 用户作为该哈希表的一主键;然后针对每一用户,根据用户-角色关系表获得该用户对应 的角色,再依据每个角色解析角色-权限关系表,得到每一角色对应的数据对象及其权限; 然后将该数据对象及其权限添加到该用户的权限属性集合中,然后将该用户和其对应的权 限属性集合作为一个键值对添加到哈希表中,生成所述访问控制关系哈希表。
[0011] 进一步的,如果一个用户具有多个角色,则分别根据每个角色解析角色-权限关 系表,得到每一角色对应的数据对象以及其权限。
[0012] 进一步的,如果一角色继承其他角色,则通过该角色所继承的角色来获得该角色 对应的数据对象以及其权限。
[0013] 进一步的,如果一角色存在约束条件,则将该约束条件作为该角色的一单独属性 保存于对应访问控制策略规则中。
[0014] 进一步的,所述访问控制策略规则为:subject,role,resource,action,effect, condition ;其中,subject为主键,role为角色属性,resource为资源属性,action为操作 属性,effect为权限属性,condition为条件属性。
[0015] 进一步的,对生成的访问控制策略规则进行最小化处理,其方法为:将访问控制策 略规则两两之间进行检查,如果两访问控制策略规则中只有一项属性不同,则将这两条访 问控制策略规则进行合并,如果都相同则删除其中一条。
[0016] 进一步的,将访问控制策略规则两两之间按照用户_>角色_>资源_>操作四项属 性顺序进行检查,如果两访问控制策略规则中只有一项属性不同,则将这两条访问控制策 略规则进行合并,如果都相同则删除其中一条。
[0017] 进一步的,将两条访问控制策略规则进行合并的方法为:将待合并的两访问控制 策略规则中同一属性项对应的两不同属性值写入到该属性项中,其他相同属性项的属性值 保持不变。
[0018] 进一步的,所述物联网搜索引擎根据访问控制策略规则对该访问请求进行判断, 确定是否允许访问的方法为:所述物联网搜索引擎将该访问请求生成一XACML访问控制请 求;然后将该XACML访问控制请求与策略库中的所述访问控制策略规则进行匹配,如果有 匹配结果则允许该访问请求,否则拒绝该访问请求。
[0019] 与现有技术相比,本发明的积极效果为:
[0020] 1、以往的访问控制策略转化往往需要人工手动的进行,而且错误率高。本发明所 提供的模型,能够自动的将角色访问控制策略转化为XACML访问控制策略,不需要手动的 对策略进行操作。
[0021] 2、在转化完成后对XACML策略进行了策略最小化。将一个用户对应的多个角色中 重复的权限进行了合并删除,在获取角色对应的可访问资源的时候也对其进行了合并,最 小化XACML访问控制策略,避免生成的XACML访问控制策略规则膨胀而导致效率变低。
[0022] 3、本发明在转化为XACML访问控制策略规则之后,每个访问用户依然保持了其在 原来的访问控制系统中对应的角色以及相应的权限。同时在原数据库中的访问控制系统也 未改变。
[0023] 4、本发明设计的思路,根据实际需要亦可以适当扩展和轻微改变。增加实际需要 的扩展或变换为其它访问控制策略的转化,本发明大大提高了物联网搜索引擎的效率。
【附图说明】
[0024] 图1为基于角色的访问控制模型图;
[0025] 图2为本发明流程图;
[0026] 图3为程序整体模型图;
[0027] 图4为基于属性的XACML决策流程图。
【具体实施方式】
[0028] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0029] 本方案拟在物联网搜索引擎和第三方之间实现一个访问控制转化机制,将第三方 的基于角色的访问控制转化成物联网常用的基于属性的XACML访问控制。这样物联网搜 索引擎能够依据该XACML访问控制和第三方提交的数据库数据,对搜索请求快速的做出响 应。
[0030] 完整的基于角色的访问控制模型如图1所示,其中UA代表用户与角色的映射关 系,PA代表角色与权限的映射关系,会话S为用户实时访问数据库数据时所生成的。一般 来说(如sqlserver)在每种基于角色的访问控制的数据库系统中都会存在两张表,一个 是用户-角色映射表,记录用户与角色之间的映射关系,一个是角色_权限映射表,记录每 个数据对象的权限分配情况(如sqlserver中的sysmembers和syspermissions两个系 统表)。本方案中我们拟转化的为数据库中的用户_角色-授权的访问控制关系,即提取数 据库中对应的用户-角色表和角色-权限表的属性,然后将这些属性对应生成XACML策略 规则。如图2所示,该方案具体实现如下:
[0031] (1)生成哈希表(算法1)。
[0032]
[0033] 首先创建一个空哈希表(第1行代码),将每一个用户作为哈希表的一个主键,并 为每一个主键创建一个对应的值,该值为一个空的集合(第3行代码)。然后针对每一个用 户,对用户-角色关系表进行解析,获得该用户对应的角色,该角色可能是一个也可能是多 个(第4行代码)。再依据每个角色解析角色-权限关系表,得到每一个角色对应的数据 对象以及其权限,需要注意的是,在解析一个角色对应的权限时,该角色可能继承另一个角 色,因此需要对此进行判定,如未继承其他角色,则直接获取权限(第18-28行代码),如若 是继承其他角色,则继续通过对应的角色来获得权限(第5-17行代码)。在判定角色的继 承关系后,还需要判定是否存在约束条件(第11-13, 22-24行代码),如有,则将该约束条件 作为规则的一个单独的属性保存于该规则中(无则为0)。最后将这些属性添加到该用户 的权限属性集合中(第14-15,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1