Как настроить контроль доступа для микросервисов
Я использую 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();
}
});
надеюсь, это будет полезно.