Интеграция Loopback3 Keycloak - PullRequest
0 голосов
/ 26 марта 2019

Я использую 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.

...