Я использую Keycloak для аутентификации в веб-приложении и хотел бы использовать правила Loopback ACL для управления доступом к моим методам API. Авторизация на основе токена JWT, который Keycloak генерирует для моего веб-пользователя.
Токен JWT Keycloak, генерируемый для веб-пользователя, имеет роли для пользователя и в зависимости от роли, которая мне нужна для создания настраиваемой роли в Loopback, чтобы разрешить / запретить доступ веб-пользователю к моему Loopback API. Создайте файл role-resolver.js в папке server / boot для регистрации контекста, который не был успешным. Мне нужно несколько указаний о том, как получить доступ к токену JWT в обратной петле, извлечь роли и создать настраиваемое сопоставление ролей в Loopback для управления доступом API с помощью Loopback ACL правила на модели.
module.exports = function (app) {
var Role = app.models.Role;
Role.registerResolver («участник», функция (роль, контекст, cb) {
console.log('Context : '+ JSON.stringify(context));
return process.nextTick(() => cb(null, true));
});
};
Ожидается извлечение роли пользователя из токена JWT, полученного Loopback API как часть заголовка Authorization каждого запроса, и предоставление доступа пользователю на основе роли. Но я не могу сопоставить роль пользователя JWT с пользовательскими ролями Loopback.