Как настроить контроль доступа для микросервисов

Я использую 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();
    }

  });

надеюсь, это будет полезно.

Другие вопросы по тегам