security - ABAC 返回序列化权限
问题描述
我们如何使用 ABAC 获得可能的操作(权限)?我需要对前端说这个按钮应该被隐藏,因为这个动作对于这种特殊情况是有限的,而对于另一种情况则不是。
目前我正在考虑的只有混合 RBAC/ABAC 模型,但它仍然没有涵盖所有情况,因为我们可能有未经身份验证的访问权限,RBAC 不会涵盖这些权限,因此 ABAC 应该涵盖这些权限。
问题是 ABAC 是否可以为该用户收集当前对象的所有允许操作?
解决方案
是的,您可以根据用户的属性限制 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 软件,请在评论中告诉我,我可以为您提供进一步的指导。
谢谢,迈克尔
推荐阅读
- azure - 有什么办法可以缓存 git 源文件?
- css - 如何在不丢失父级高度的情况下在 div 中居中项目?
- javascript - 使用 javascript 将类样式添加到 CKEditor 文本
- c++ - 解释未解决的外部 C++
- python - 如何旋转 seaborn 热图?
- reactjs - React 中的 onMouseEnter 事件有问题
- javascript - 当我保存存储的数据时,只有一个数据是另一个数据变为空。使用foreach怎么样?
- php - PHP用CSS类回显HTML导致错误?
- html - 带有填充的 Tailwind CSS 导航悬停下拉菜单
- python - 如何使用 nopython 模式从 numba 调用 math.factorial?