我正在使用Loopback作为REST API,并且我正在尝试配置更细粒度的权限,而不仅仅是将用户分配给应用程序范围的组。这样的事情就是我对客户方的想法:
USER:Bob 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"
}
],
然后将角色与RoleMapping匹配,但这似乎是错误和繁琐的。有关最佳方法的任何建议都是适用的, 感谢
答案 0 :(得分:0)
由于管理员可以为单个模型切换单个用户的权限,因此您需要一个数据库表来存储用户的权限。然后,您可以创建一个动态角色来检查正确的权限:http://loopback.io/doc/en/lb3/Defining-and-using-roles.html#dynamic-roles