Что означает «Сессия не имеет требуемого клиента»? - PullRequest
0 голосов
/ 12 февраля 2019

У меня вопрос по поводу Keycloak 4.8.3.

Я использую адаптер безопасности Spring для защиты нашего веб-приложения с помощью Keycloak и включенной функции входа в систему: запомнить меня.

Пользователь входит в систему из браузера и перенаправляет обратно в веб-приложение.

Затем наше веб-приложение вызывает внутреннюю точку REST-API, защищенную Keycloak, с помощью KeycloakRestTemplate, поскольку нам также необходимо авторизовать эти вызовы.используя того же пользователя веб-приложения.

Дело в том, что я хочу использовать токен авторизации для другого метода службы REST-API.

Через некоторое время вызов REST-APIпроисходит сбой со следующим сообщением об ошибке:

ERROR RefreshableKeycloakSecurityContext Refresh token failure status: 400 {"error":"invalid_grant","error_description":"Session doesn't have required client"}

, а файл журнала keycloak содержит следующее предупреждение:

17:25:51,929 WARN  [org.keycloak.events] (default task-1) type=REFRESH_TOKEN_ERROR, realmId=EHotel, clientId=IBE, userId=f:8db533c4-9733-48d4-8b30-28a50954b7ad:khaendel, ipAddress=192.168.1.76, error=invalid_token, grant_type=refresh_token, refresh_token_type=Refresh, refresh_token_id=9fba841f-54bb-4c81-8f7b-6a7e1c5ab92e, client_auth_method=client-secret

Я не могу предсказать, когда именно это произойдет, предположительно через 15 минут или послечас.Срок действия токена устанавливается следующим образом: бездействие сеанса SSO: 15 минут макс. Сеанс SSO: 15 минут бездействия сеанса SSO, я помню: 1 день макс. Сеанс SSO, я помню: 1 день срок службы токена доступа: 5 минут

Что означаетсообщение об ошибке (сеанс не требует клиента) означает и

что я делаю не так?

Обнаружена удаленная отладка. Похоже, что на сервере keycloak задействован кэш сеанса клиента (InfinispanUserSessionProvider), который через некоторое время теряет информацию.

Я ожидал использовать токен keycloak для аутентификации другогоСервис REST-API с тем же пользователем, что и наше защищенное веб-приложение.Но токен обновления не может быть использован до тех пор, пока сеанс единого входа из-за сообщения об ошибке.

1 Ответ

0 голосов
/ 15 февраля 2019

Команда разработчиков Keycloak подтвердила, что это ошибка в текущей версии Keycloak 4.8.3.Клиентские сеансы должны быть действительными в течение более длительного сеанса запоминания.Эта ошибка будет исправлена ​​в следующей версии.Билет Jira на время написания недоступен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...