定义自定义授权策略的最佳方法

时间:2014-02-14 17:26:47

标签: authorization mongodb

我正在使用MongoDB开发一个项目,我有一个场景,我可以根据他们的角色限制数据对用户的可见性,例如,如果我有一个表单文档:

{
   "testme1":"fooo",
  "testme2":"foobar"
}

具有角色"admin"的用户可以看到"testme1""testme2",而"guest"只能看到"testme2"

动态定义这些授权规则的最佳方法是什么,以便我的包装器API只应按照规则获取数据。我的做法是为用户提供一个Web“UI”来定义规则,并根据他的声明在我的服务器中保留一个“XML”文件。如果有人有更好的想法或者他们是否采用数据库级方法来做这件事,请告诉我

2 个答案:

答案 0 :(得分:2)

对于授权,您最好使用基于XACML 3.0策略的属性级访问控制。

XACML

答案 1 :(得分:0)

在信息安全方面,有一个名为“行级安全性”的概念。这意味着不同的用户以不同的方式查看同一个数据库,某些行被省略或模糊(以某种方式仍允许进行统计分析)。

您最好的选择可能是获取JSON文件并将其转换为数据库记录。基本上解析您的JSON文件并将它们插入到数据库表中。然后在表上实现行级安全性,并编写存储过程。

存储过程将请求指定的特定用户的记录,然后将结果转换为JSON脚本(或者您可以在应用程序中进行转换)。