基于权限的集合过滤

时间:2015-01-08 16:50:43

标签: authorization access-control xacml xacml3 abac

让我们说有像文件这样的资源。谁,何时,哪里可以访问单个文件不是问题。 假设存在类似于目录的资源,该目录具有其自己的属性并且包含其他文件,目录和/或一些其他项。现在有一个用户可以访问某个目录但是没有访问某些文件或子代码的访问权限(甚至可以查看名称/标题)。

如果策略决策与业务逻辑分离,如何过滤目录以仅包含用户可以访问的文件。我应该单独检查每个文件吗?

如果是,那么如果目录包含10M文件,并且用户只能访问几个文件,那么如何识别这些文件?

1 个答案:

答案 0 :(得分:1)

首先,你必须决定资源是什么:它是文件夹,文件?抽象意义上的文件(意思是文件夹和文件)?当且仅当您可以查看其祖先时,您是否可以查看文件?换句话说,有一个层次结构。

抛开这些问题,在对大量数据进行访问控制时,您可以采取两种方法:

  1. 使用Multiple Decision Profile为多个项目创建授权请求。多决策配置文件(MDP)请求看起来像 Alice可以查看文件A和B以及C和...... Z 吗? PDP将以原始问题中的项目作出尽可能多的决策。 MDP适用于数千或更少的项目。
  2. 如果您的商品数量非常多或商品数量不详,您可以运行reverse process called reverse query(ARQ),而不是询问是/否问题,而是提出开放式问题问题,例如告诉我Alice可以查看的文件。 PDP将使用过滤器表达式进行响应,例如如果docStatus == draft AND docDept = Sales ,则允许。然后,您可以让PEP将过滤器转换为适当的过滤器,例如:文件过滤器。