微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态ABAC的好解决方案

如何解决动态ABAC的好解决方案

我正在寻找一些很好的解决方案,其中用户对资源的访问由多个可以频繁更改的属性决定。

对于像这样的规则

用户 X 必须具有属性 X.a ==(条件)和属性 X.b ==(另一个条件)

访问资源R,上面提到的a和b经常变化。

每个资源都有这个规则。

(就像只有具有 X.a ==(标准)和 X.b ==(另一个标准)的用户才能访问)

Q1) 用什么数据结构来表示这一点。

Q2) 实施策略 对于像

这样的用例
  • 列出用户可以访问的所有资源。 (查询?)
  • 在访问资源 r.X. 之前检查资格

使用示例场景详细说明上述内容

考虑一个用户可以订阅课程的应用。

  • 完成课程将提升他们的等级(比如 1 级到 100 级)。 不活动会导致等级下降到之前的等级。

  • 课程的发布者可以指定课程仅对级别 3 的用户可用。或者4级及以上,甚至只有3级和6级等等。

  • 如果根据发布商的设置不符合资格,用户即使在列表中也不应该在任何地方看到课程。

目前我可以考虑建立从课程到级别的多对多关系(考虑到级别是固定的)。 在为用户列出课程时,我通过过滤课程关联级别和用户当前级别来查询课程。

当有多个像这样的标准时,这取决于动态数据。 例如:用户有不同类型的级别[编程级别、营销级别、财务级别])。

并且每个课程都有类似的设置

  • 编程级别 5 和标记级别 3 的用户可以访问课程 a。
  • 财务级别 4 或营销级别 3 的用户可以访问课程 b。

当编程级别 5 和营销级别 3 的用户应该看到包含课程 a 和 b 的列表时。

营销级别为 3 的用户应该只看到课程 b 的列表。

Q1 和 Q2) 就这种实现而言,最佳解决方案是什么

数据结构

查询所有符合条件的实体

检查一个实体的资格

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。