首页 > 解决方案 > ABAC 返回序列化权限

问题描述

我们如何使用 ABAC 获得可能的操作(权限)?我需要对前端说这个按钮应该被隐藏,因为这个动作对于这种特殊情况是有限的,而对于另一种情况则不是。

目前我正在考虑的只有混合 RBAC/ABAC 模型,但它仍然没有涵盖所有情况,因为我们可能有未经身份验证的访问权限,RBAC 不会涵盖这些权限,因此 ABAC 应该涵盖这些权限。

问题是 ABAC 是否可以为该用户收集当前对象的所有允许操作?

标签: securitypermissionsabac

解决方案


是的,您可以根据用户的属性限制 UI 元素。而如果用户的属性发生变化,比如用户被提升或降级,那么一旦逻辑实现,前端就会根据你的策略进行调整。

我在 Github 上有一个示例项目,演示了使用 Java + Spring Security 使用 ABAC 限制 UI 元素:https ://github.com/michaelcgood/spring-security-ui-demo

正如我所提到的,我为 Axiomatics 工作,这个项目被配置为与pdp.properties. 但是,此项目可以与其他软件一起使用为 ABAC 实现 XACML 并具有适当的属性设置。

如果您不使用 Java,那么该项目将不会对您有用。但是,它确实证明了您的要求 - 可以限制 UI 元素。

使用的前端框架是 Thymeleaf,一个对 HTML 友好的服务器端 Java 模板引擎。

通过应用资源 ID 来限制 UI 元素的代码如下: <div class="jumbotron" style="background-color: green" sec:authorize="XACMLDecisionUI('secretmessage')"> <p style="color:white" align="center">Message only available to senior admins (seniority == 2).</p> </div>

如果您确实使用 Axiomatics 软件,请在评论中告诉我,我可以为您提供进一步的指导。

谢谢,迈克尔


推荐阅读