每个用户都有一个或多个角色,每个角色都有一个或多个权限。到目前为止,我可以通过角色收集与用户关联的所有权限。
某些权限有一些限制。例如:
用户可以编辑属于其网站的所有帖子,但不能编辑其他帖子。
因此,许可"编辑帖子"应该有这个约束。
关于模型:如果约束与权限相关,我无法解析特定用户的哪些约束是活动的。
用户模型可以具有类似于" site"的属性,但不是属于一个站点的所有用户都应具有上述约束。其中一些应该能够编辑所有帖子。
确定哪个约束对特定用户有效的最佳方法是什么。我是否必须将其拆分为单独的权限并将约束集成到权限模型中,还是有更好的解决方案?我偶然发现了基于属性的访问控制,但我不确定是否应该切换到完全不同的访问
感谢任何帮助:)
答案 0 :(得分:1)
我将以下内容回复给之前的类似问题
您希望使用与其保护的应用程序类型不可知的解决方案。这就是可扩展访问控制标记语言XACML的目标。
XACML提供基于属性的,基于策略的访问控制(ABAC和PBAC)。这使您能够编写极具表现力的授权策略,并在单个存储库中集中管理它们。然后,中央授权引擎(称为策略决策点或PDP)将为您的不同应用程序提供决策。
您需要的最小属性集通常是关于用户(主题),资源和操作的属性。 XACML还允许您添加环境属性。这意味着您可以编写以下类型的策略:
医生可以查看他们被分配到的患者的医疗记录。
XACML的好处包括: - 贝尔提到的授权逻辑外部化的能力 - 无需经历开发/部署生命周期即可更新授权逻辑的能力 - 对许多不同的应用程序以相同的方式实现细粒度授权的能力 - 能够对授权逻辑进行可见性和审计
HTH