我们有一个中型业务应用程序,我们大量使用 Spring Security 角色和权限 ( RBAC ),并大量使用来打开和关闭某些实例的角色以及隐藏在标签内SpEL@PreAuthorize
中的规则。
我认为我们实际实施的(不知道是ABAC)。XACML看起来非常复杂和臃肿,所以我不热衷于这里的答案:
有没有人在没有XACML的情况下完成了轻量级ABAC实现?我希望这将使我们像域对象那样分离关注点,并且我们的授权策略将与之分离。@PreAuthorize(WRITE)
从我所读到的ABAC的基本原理非常简单。如果当前 Principal 对给定的 Subject 具有该权限,则您有一个 Action(非常类似于 Permission)和一个解决机制。
我知道AccessDecisionVoter
哪个是大致正确的界面,但我不认为它是为了对权限进行投票。然而,使用类似的实例来实施我们的授权策略似乎非常有吸引力。
对不起,漫无边际的问题!基本上我对ABAC很感兴趣,但想避免自制啤酒,但担心当我们需要塞斯纳时XACML是大型喷气式飞机。