Обновление ID токена и скользящая сессия - PullRequest
0 голосов
/ 09 января 2019

Я изучаю Keycloak и соответствующие протоколы OpenID & OAuth2. Все понятно, кроме одного: как поддерживать скользящий сеанс для вошедшего в систему пользователя. Может быть, я что-то неправильно понимаю.

  1. Authorization Flow в первую очередь перенаправляет пользователя на страницу входа в keycloak, после успешного входа пользователь перенаправляется на redirect url с authorization code.
  2. Используя этот код авторизации, серверное приложение подключается к серверу keycloak и обменивается кодом для Access token (также включая идентификатор клиента, секрет и т. Д.) И ID token.
  3. Access token используется самим приложением на стороне сервера для извлечения подробностей с сервера Keycloak, таких как дополнительная информация пользователя, открытый ключ и т. Д. Таким образом, Access token используется только приложениями.
  4. Серверные приложения устанавливают куки с полученным ID token. Теперь пользователь может получить доступ к защищенным ресурсам.

Всего у нас

  1. Access token хранится на стороне сервера и используется только приложениями или службами для получения дополнительной информации из Keycloak.
  2. Refresh token хранится на стороне сервера и используется только приложениями или службами для получения новых Access token
  3. ID token хранится в файлах cookie пользователя и используется для доступа к защищенным ресурсам системы.

Мой вопрос: как можно обновить ID token? Рассмотрим следующий случай, когда пользователь вошел в систему и выполняет некоторые действия в системе, но внезапно истек срок действия токена. Как этот случай должен быть обработан? Я реализовал свой собственный поток, называемый Sliding session, поэтому токен обновляется при выполнении любого запроса, однако я не знаю, как обработать этот случай с помощью Keycloak.

Буду признателен за любую помощь по этому вопросу.

...