【问题标题】:RBAC system with two parameters具有两个参数的 RBAC 系统
【发布时间】:2014-02-02 08:36:32
【问题描述】:

我正在寻找具有两个参数的 RBAC 系统的示例或最佳实践。而不是简单地让一个用户与一个角色相关联,而该角色与一组权限相关联;用户可以与“特定项目”的角色相关联,然后用户可以仅对该项目(或用户为其拥有该角色的其他项目)拥有该角色的权限。用户可以在一个项目中具有特定角色,而在另一个项目中具有不同角色;授予角色的权限对于每个项目都是一致的;用户对项目的权限取决于用户在项目中的角色。

(如果有任何不同,我会尝试限制页面访问,其中页面内容是通过 URL 查询参数开发的,该参数通过 GET 语句设置项目 ID。)

ABAC 看起来很有希望,但我很难理解它。我的理解是,用户的属性决定了用户是否具有角色(和/或权限)。在我的情况下,我似乎可能将项目视为“用户”,并将我的用户视为项目的属性(如果我的用户担任该项目的角色,则为 true,否则为 false)

【问题讨论】:

    标签: access-control rbac abac role-based-access-control


    【解决方案1】:

    如果您想坚持 RBAC 标准,那么您将不得不为不同的项目使用不同的角色。例如,如果在项目“P1”和“P2”中使用角色“admin”,您可以创建一个角色“P1:admin”和另一个角色“P2:admin”。

    ABAC 确实是另一种可能性。但是,如果我对您的理解正确,那么说“用户的属性决定用户是否具有角色(和/或权限)”是不正确的。 ABAC 中只有属性(在角色属性的意义上),它提供了比 RBAC 更大的灵活性。在请求中,您可以有一个代表项目的属性(“P1”或“P2”),以及另一个代表该特定项目角色的属性(“admin”)。例如,正确指定的策略将能够识别出您将“admin”角色作为“P1”项目的一部分。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 2011-04-19
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2022-12-18
    相关资源
    最近更新 更多