如何设置微服务的访问控制

时间:2017-09-20 12:11:05

标签: javascript rest microservices loopbackjs tyk

我使用Loopback Framework创建多个服务,并使用api网关(tyk)来管理它们。

不幸的是,我没有看到如何为每个人设置访问控制。

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

非常感谢,

1 个答案:

答案 0 :(得分: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();
    }

  });

希望这会有所帮助。