基于属性的访问控制:“搜索”操作的资源是什么

时间:2018-05-12 07:14:11

标签: xacml abac

我想实现一个基于属性的访问控制系统。 当我想要执行“读取”或“更新”操作时,我已经知道此操作可能影响的资源,并且无论是否允许操作都可以返回该资源。 但是,我不知道如何处理“搜索”动作,是搜索结果的资源。如果是这种情况,我如何检查用户是否可以执行操作而不事先进行实际搜索?

1 个答案:

答案 0 :(得分:0)

您可以选择如何建模。操作是操作类别的单独属性。 XACML标准甚至为您提供了一个名为urn:oasis:names:tc:xacml:1.0:action:action-id的标准属性,您可以使用该属性。

当我对策略进行建模时,我会创建一个名为objectType仿真属性,其值可能是我想控制访问权限的不同类型的项目。

  • 医疗记录
  • 财务交易
  • 文件...

然后我将操作应用于这些对象类型。例如,我会有一个政策声明

  

医生可以查看与他们有关系的病人的病历。

至于搜索,您必须考虑搜索的含义:您可以控制对搜索的访问权限。例如,基本用户无法搜索。高级用户可以搜索。这是功能访问控制的一个例子,即控制对功能(搜索)的访问。

您可以将其限制为特定的对象类型,例如

  

医生可以搜索医疗记录

搜索结果可能只包含允许医生查看的内容。这意味着您事实上已经触发了2次授权检查:查看能力和搜索能力。

我希望这会有所帮助。