Keycloak добавляет дополнительные претензии из базы данных / внешнего источника

Я не мог предугадать, как я могу добавить дополнительные утверждения из базы данных моего приложения. Учитывая мое ограниченное понимание, я вижу два пути:

  1. После успешной аутентификации keycloak каким-то образом извлекает дополнительные заявки из базы данных приложения. Например, это база данных приложения postgres.
  2. Попросите приложение обновить jwt дополнительными утверждениями, используя общий ключ.

Я хотел бы получить обратную связь по обоим путям. Я считаю, что первый вариант может быть безопаснее. Однако я не уверен, с чего начать этот путь реализации.


person Sam Texas    schedule 12.04.2017    source источник


Ответы (1)


Отвечая на свой вопрос здесь. Я отправил этот вопрос в список рассылки пользователей Keycloak здесь (http://lists.jboss.org/pipermail/keycloak-user/2017-April/010315.html) и получил разумный ответ.

Это вставлено из полученного мной ответа.

Я использую первый вариант. Я делаю это с помощью средства отображения протоколов, что является удобным местом для этого, потому что там токен уже построен с помощью keycloak, но еще не подписан. Это процедура:

  1. Пользователь входит в систему

  2. Вызывается мой пользовательский сопоставитель протоколов, в котором я перезаписываю метод transformAccessToken

  3. Здесь я вхожу в систему на клиенте, в котором установлен преобразователь протоколов, в keycloak в качестве службы. Здесь не забудьте использовать другой идентификатор клиента вместо того, для которого вы строите преобразователь протокола, иначе вы введете бесконечную рекурсию.

  4. Я получаю токен доступа в преобразователе протокола и вызываю конечную точку отдыха своего приложения, чтобы получить дополнительные утверждения, которые защищены.

  5. Получите информацию, возвращаемую конечной точкой, и добавьте ее в качестве дополнительных утверждений

person Sam Texas    schedule 21.04.2017
comment
Вы должны принять свой собственный ответ. Они делают вид, что интернет-точки действительно имеют значение. - person Thomas Lann; 16.08.2019
comment
FYI transformAccessToken - это метод в OIDCAccessTokenMapper - person Peter V. Mørch; 24.10.2020