Извлечение ролей из REST API в Keycloak - PullRequest
2 голосов
/ 18 марта 2019

В моей компании нам нужно извлечь роли вошедшего в систему пользователя из REST API, предоставляемого Keycloak. Мы просмотрели документацию Keycloak, но не можем найти ответы, которые ищем. Позвольте мне объяснить поток, который мы хотим реализовать: пользователь входит в систему клиента, определенного в Keycloak, и получает JWT, который хранится в веб-клиенте приложений. Пользователь не является администратором в Keycloak. Когда веб-клиент делает запрос на внутренний сервер, внутренний сервер запрашивает Keycloak для ролей пользователя. И это тот момент, когда у нас проблемы. Мы не можем определить правильный URL для REST API или какой токен добавить в заголовок аутентификации. Подводя итог: нам нужна помощь с URL-адресом, который необходим для запроса ролей пользователей и того, какой токен необходимо отправить для авторизации по API. Я знаю, что роли можно получить из JWT, но мы боимся, что со временем полезная нагрузка станет большой. Пользователь может иметь несколько ролей в разных отделах.

1 Ответ

0 голосов
/ 18 марта 2019

Роли должны быть в полезной нагрузке JWT, это должно быть настроено в службе keycloak. Поток должен быть примерно таким:

  1. Пользователь аутентифицируется внешним интерфейсом, а токен JWT, возвращаемый keycloak, сохраняется
  2. Внешний интерфейс попадает в конец, включая токен в заголовке запроса
  3. Серверная часть берет токен, проверяет его с помощью открытого ключа (открытый ключ предоставляется keycloak), если токен действителен, роли берутся из полезной нагрузки токена и выполняется процесс авторизации
...