Как получить событие на моем сервере, когда (пользователь -> Обновить, удалить) из Keycloak?

Я использую сервер keycloak для авторизации. Я создаю своего пользователя в своей базе данных и в keycloak. Теперь мне нужно удалить пользователя из моей базы данных, когда пользователь удаляется в keycloak. Мой сервер написан на Java. Как я могу получить событие от keycloak на свой сервер, когда пользователь удаляется или обновляется в keycloak?

Звучит как задача для протокола SCIM, который не реализован в банкомате Keycloak — смотрите/смотрите/голосуйте Issues.redhat.com/browse/KEYCLOAK-2537

Jan Garaj 21.12.2020 15:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
1
1 778
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, вам лучше использовать функцию Keycloak User Storage SPI:

Вы можете использовать SPI пользовательского хранилища для записи расширений в Keycloak для подключаться к внешним базам данных пользователей и хранилищам учетных данных. встроенный Поддержка LDAP и ActiveDirectory является реализацией этого SPI в действие. По умолчанию Keycloak использует свою локальную базу данных для создания, обновление, поиск пользователей и проверка учетных данных. Хотя часто, организации имеют существующие внешние проприетарные базы данных пользователей, которые они не могут перейти на модель данных Keycloak. Для тех ситуаций, разработчики приложений могут писать реализации User Storage SPI для соединения внешнего пользовательского хранилища и внутреннего пользовательского объекта модель, которую Keycloak использует для входа пользователей и управления ими.

Таким образом, вам не нужно иметь какой-либо механизм обратного вызова, который срабатывает всякий раз, когда пользователь удаляется, обновляется или что-то еще. Вы просто настраиваете свою БД как внешнюю пользовательскую БД, которая будет использоваться Keycloak. Более того, вы можете настроить его так, чтобы всякий раз, когда пользователь добавляется, удаляется или обновляется, он немедленно отражался в вашей БД. Этот подход легче реализовать, он чище, удобнее в сопровождении и лучше с точки зрения производительности и памяти.

Я согласен с @dreamcrash. Нет API, которое вытолкнет вас из keycloak на какое-то событие, пока я вижу официальный API keycloak.org/docs-api/12.0/rest-api

zhrist 21.12.2020 13:34
Ответ принят как подходящий

пожалуйста, проверьте этот пример KecyloakEventExample Я надеюсь, что это будет полезно

Другие вопросы по теме