2017-09-20 24 views
-1

我使用Loopback Framework创建多个服务,并使用api网关(tyk)来管理它们。如何设置微服务的访问控制

不幸的是我不明白如何为它们中的每一个设置访问控制。

我不希望用户访问不属于他的数据。

非常感谢,

回答

1

你可以很容易地使用两种方法来保护你的模型。

1.从model.json文件

模型里面model.json可以包括ACL对象。

"acls": [{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$authenticated", 
    "permission": "ALLOW" 
    }, { 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "DENY" 
    }] 

2.使用在model.js操作钩子文件 您可以使用操作挂钩操作的安全性。

例如

Template.observe('access', function (ctx, next) { 
    if(ctx.options.team){ 
     var teamId = ctx.options.team.teamId; 
    ctx.query.where= ctx.query.where || {or :[ {user_created : 0},{teamId : teamId}]} ; 
    next(); 
    } 

    }); 

希望这会有所帮助。