【问题标题】:How to set the access control for microservices如何设置微服务的访问控制
【发布时间】:2018-03-01 11:55:38
【问题描述】:

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

不幸的是,我不知道如何为每个人设置访问控制。

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

非常感谢,

【问题讨论】:

    标签: javascript rest microservices loopbackjs 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();
        }
    
      });
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-10-08
      • 1970-01-01
      • 2017-03-02
      • 2018-04-14
      • 1970-01-01
      • 2019-10-22
      • 2010-09-10
      • 1970-01-01
      相关资源
      最近更新 更多