Я реализовал пользовательский SPI Keycloak UserStorageProvider (следующий пункт 11 официального документа: https://www.keycloak.org/docs/latest/server_development/index.html#_user-storage-spi), который выполняет следующее:
- Аутентификация пользователей (ранее не существовавших в локальном хранилище) по
внешний сервис аутентификации.
- Сохраните пользователя (успешно прошедшего проверку подлинности с использованием нашего пользовательского сервиса) в
Местный магазин Keycloak.
- После того, как пользователи были импортированы в локальный магазин Keycloak (после пользователей
успешно вошли в систему), администраторы могут сопоставить роли
этим пользователям для авторизации ресурсов из консоли администратора keycloak.
Проблема, с которой я сталкиваюсь, заключается в следующем: шаги 1 и 2 работают отлично. А что касается шага 3, я могу успешно войти в систему с пользователем, который был сохранен в локальном хранилище брелока (после его обнаружения на внешнем UserProvider), НО (в этом и заключается суть проблемы); как только я добавляю какую-либо роль этому импортированному пользователю, я больше не могу войти в эту учетную запись, и журналы показывают, что мой пользовательский UserStorageProvider больше не используется с этого момента при входе в систему для этого пользователя. Каким-то образом присоединение роли к этому пользователю делает его невидимым для моего пользовательского UserStorageProvider (даже если я снова удаляю роль (и)).
В лучшем случае, которого я пытаюсь достичь, я смогу "войти в систему" с пользователем (сохраненным локально после аутентификации из внешнего SPI), даже после назначения ему ролей.
Любая обратная связь будет принята с благодарностью !!
Заранее спасибо за ваши предложения.