Механизм управления сессиями#

Режимы выдачи маркеров доступа и обновления#

Blitz Identity Provider предоставляет возможность управления сессиями пользователей. Для реализации этого механизма идентификатор сессии пользователя и идентификатор устройства сохраняются в маркерах доступа и маркерах обновления.

Blitz Identity Provider предусматривает два режима выдачи маркеров: online-режим и offline-режим:

  • При использовании online-маркеров приложение получает актуальные данные пользователя в течение активной сессии. Такие маркеры привязаны к конкретной сессии и устройству входа.

    Важно

    Время окончания действия маркера доступа не должно превышать время действия сессии.

  • Когда приложению требуется доступ к данным пользователя за пределами времени действия пользовательской сессии, необходимо использовать offline-маркер доступа и offline-маркер обновления. В отличие от online-маркеров, offline-маркеры привязаны только к устройству, с которого был выполнен вход.

Выдача маркеров в Authorization Code Grant Flow#

Статические клиенты

По умолчанию Blitz Identity Provider выдает online-маркеры доступа и обновления, которые действительны только во время сессии пользователя.

Для получения offline-маркеров необходимо явно указать разрешение (scope) offline_access в запросе на аутентификацию. После успешной аутентификации Blitz Identity Provider выдает маркер доступа и маркер обновления, которые действуют после завершения сессии пользователя (offline-маркеры).

Внимание

Возможность выдачи offline-маркеров регулируется в разрезе приложений через настройку разрешенных scope приложению.

Динамические клиенты

В Blitz Identity Provider динамические клиенты по умолчанию получают online-маркеры доступа и обновления.

Чтобы получить offline-токены, необходимо явно указать разрешение (scope) offline_access в запросе аутентификации.

Обновление маркеров в Refresh Token Flow#

При использовании online-маркера обновления система проверяет активность пользовательской сессии. Если сессия недействительна или отсутствует, маркер считается отозванным. В случае успешной проверки Blitz Identity Provider выдает новые online-маркер доступа и online-маркер обновления, которые остаются привязанными к исходной сессии и устройству.

При использовании offline-маркера обновления система проверяет его действительность. Маркер считается отозванным, если:

  • пользователь заблокирован;

  • у пользователя были сброшены сессии;

  • у пользователя были сброшены сессии при смене пароля.

При успешной проверке Blitz Identity Provider выдает новые offline-маркер доступа и offline-маркер обновления, сохраняющие привязку к исходному устройству.

Отзыв online-маркеров#

Online-маркеры автоматически отзываются при следующих событиях:

Событие

Механизм отзыва

Выход пользователя из системы (логаут)

Отзываются все маркеры, выданные в рамках текущей сессии.

Удаление устройства пользователя через Консоль администратора или REST API

Отзываются все маркеры, связанные с данным устройством.

Завершение сессии по истечению срока жизни

Все маркеры сессии аннулируются.

Блокировка пользователя через Консоль администратора

Маркеры всех сессий аннулируются (после разблокировки пользователя маркеры, выданные до блокировки, остаются отозванными).

Смена пароля пользователя с выбором сброса сессий через Консоль администратора

Маркеры всех сессий аннулируются.

Смена пароля пользователя с параметром сброса сессий через REST API

При вызове REST API:

  • с помощью пользовательского маркера доступа происходит отзыв маркеров всех остальных сессий (сессия, которая содержится в маркере доступа, не аннулируется);

  • с помощью системного маркера доступа происходит сброс всех сессий.

Сброс пароля путем восстановления доступа с выбором выхода со всех устройств

Маркеры всех сессий, привязанных к этим устройствам, аннулируются.

Отзыв offline-маркеров#

Offline-маркеры будут отозваны при следующих событиях:

Событие

Механизм отзыва

Сброс всех сессий пользователя через Консоль

Маркеры всех сессий аннулируются.

Сброс всех сессий пользователя через REST API

При вызове REST API:

  • с помощью системного маркера доступа происходит сброс всех сессий;

  • с помощью пользовательского маркера доступа происходит отзыв маркеров всех остальных сессий (сессия, которая содержится в маркере доступа, не аннулируется).

Блокировка пользователя через Консоль администратора

Маркеры всех сессий аннулируются (после разблокировки пользователя маркеры, выданные до блокировки, остаются отозванными).

Смена пароля пользователя с выбором сброса сессий через Консоль администратора

Маркеры всех сессий аннулируются.

Смена пароля пользователя с параметром сброса сессий через REST API

При вызове REST API:

  • с помощью пользовательского маркера доступа происходит отзыв маркеров всех остальных сессий (сессия, которая содержится в маркере доступа, не аннулируется);

  • с помощью системного маркера доступа происходит сброс всех сессий.

Сброс пароля путем восстановления доступа с выбором выхода со всех устройств

Маркеры всех сессий, привязанных к этим устройствам, аннулируются.