我正在用MongoDB开发一个项目,我有一个方案,以便可以根据用户的角色来限制数据对用户的可见性,例如,如果我有以下格式的文档:
{
"testme1":"fooo",
"testme2":"foobar"
}
角色为“ admin”的用户可以同时看到“ testme1”和“ testme2”,而“ guest”只能看到“ testme2”。动态定义这些授权规则的最佳方法是什么,以便我的包装器api应该仅根据规则获取数据。我的做法是为用户提供一个Web“ UI”以定义规则,并根据其声明在我的服务器中保留一个“ XML”文件。请让我知道某人是否有更好的主意,或者他们是否有某种数据库级别的方法来做到这一点
存在一个授权标准,可用于定义授权策略。该标准称为XACML,可扩展访问控制标记语言。它实现了一个称为基于属性的访问控制(ABAC)的授权模型。您可以在这里阅读这两个主题:
XACML用以下概念定义了一个体系结构:
在典型的流程中,PEP保护您的数据/服务/ API。PEP将向PDP发送授权请求:
PDP将求助于PIP以检索缺少的属性(例如,用户的角色和权限)以及资源属性(例如,数据的敏感性,白名单或黑名单)...基于新信息,PDP可以做出以下决定:许可或拒绝。允许或阻止访问。
使用XACML,授权策略的丰富性不受限制。我在Axiomatics公司工作,该公司实施XACML,我们的解决方案用于制造,医疗保健,银行业务,以动态方式保护对敏感数据的访问(例如,经理可以编辑其拥有的文档)。
XACML启用集中管理的外部授权。它还启用了我喜欢的任何深度授权,这意味着您可以将XACML应用于Web API,业务逻辑,演示UI和数据库。
高温超导
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句