我正在使用MongoDB开发一个项目,我有一个场景,我可以根据他们的角色限制数据对用户的可见性,例如,如果我有一个表单文档:
{
"testme1":"fooo",
"testme2":"foobar"
}
具有角色"admin"
的用户可以看到"testme1"
和"testme2"
,而"guest"
只能看到"testme2"
。
动态定义这些授权规则的最佳方法是什么,以便我的包装器API只应按照规则获取数据。我的做法是为用户提供一个Web“UI”来定义规则,并根据他的声明在我的服务器中保留一个“XML”文件。如果有人有更好的想法或者他们是否采用数据库级方法来做这件事,请告诉我
答案 0 :(得分:2)
对于授权,您最好使用基于XACML 3.0策略的属性级访问控制。
答案 1 :(得分:0)
在信息安全方面,有一个名为“行级安全性”的概念。这意味着不同的用户以不同的方式查看同一个数据库,某些行被省略或模糊(以某种方式仍允许进行统计分析)。
您最好的选择可能是获取JSON文件并将其转换为数据库记录。基本上解析您的JSON文件并将它们插入到数据库表中。然后在表上实现行级安全性,并编写存储过程。
存储过程将请求指定的特定用户的记录,然后将结果转换为JSON脚本(或者您可以在应用程序中进行转换)。