【问题标题】:Fine grained permissions in LoopbackLoopback 中的细粒度权限
【发布时间】:2018-01-17 08:41:44
【问题描述】:

我将 Loopback 用于 REST API,并尝试配置更细粒度的权限,而不仅仅是将用户分配到应用范围的组。我对客户端的想法是这样的:

用户:鲍勃 ID:123

MODEL    |   READ | WRITE | EXECUTE
-----------------------------------
Projects |    Y   |   Y    |   N
Changes  |    N   |   N    |   N
Companies|    Y   |   Y    |   Y
ThingOne |    Y   |   N    |   N
ThingTwo |    Y   |   Y    |   N

管理员可以为单个用户切换单个模型的权限。

我尝试过的一个想法是为每个模型添加单独的 ACL 组,即模型Projects

"acls": [
{
  "accessType": "*",
  "principalType": "ROLE",
  "principalId": "$everyone",
  "permission": "DENY",
  "property": "find"
},
{
  "accessType": "READ",
  "principalType": "ROLE",
  "principalId": "projects-read-access",
  "permission": "ALLOW",
  "property": "find"
},
{
  "accessType": "WRITE",
  "principalType": "ROLE",
  "principalId": "projects-write-access",
  "permission": "ALLOW",
  "property": "find"
},
{
  "accessType": "EXECUTE",
  "principalType": "ROLE",
  "principalId": "projects-execute-access",
  "permission": "ALLOW",
  "property": "find"
}
],

然后将 Roles 与 RoleMapping 匹配,但这似乎是错误和麻烦的。任何有关解决此问题的最佳方法的建议都值得赞赏, 谢谢

【问题讨论】:

    标签: express loopbackjs


    【解决方案1】:

    因为管理员可以为单个模型切换单个用户的权限,所以您需要一个数据库表来存储用户的权限。然后,您可以创建一个动态角色来检查正确的权限:http://loopback.io/doc/en/lb3/Defining-and-using-roles.html#dynamic-roles

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2018-01-16
      • 2012-08-06
      • 2011-09-24
      • 2023-03-25
      相关资源
      最近更新 更多