OIDC сессии
В этом разделе описано управление сессиями пользователей в подключенных приложениях (OIDC сессии). Вы узнаете, как просматривать активные сессии приложений, отслеживать срок действия токенов, принудительно завершать сессии и как работает механизм Backchannel Logout.
Что такое OIDC сессия
OIDC сессия — это активный сеанс работы пользователя в приложении, подключенном к IDENTYX через протокол OpenID Connect. Когда пользователь успешно входит в приложение через IDENTYX, создаётся OIDC сессия, которая связывает пользователя с конкретным приложением и содержит токены доступа.
OIDC сессии — это сессии пользователей в подключенных приложениях (например, корпоративный портал, CRM, другие системы).
IAM сессии — это сессии пользователей в самой системе IDENTYX (см. раздел IAM сессии).
Это разные типы сессий. Пользователь может иметь одну IAM сессию для управления IDENTYX и несколько OIDC сессий для разных приложений.
Компоненты OIDC сессии
Каждая OIDC сессия состоит из нескольких важных элементов:
- Access Token — токен для доступа к API приложения
- ID Token — токен с информацией о пользователе
- Refresh Token — токен для обновления истёкших токенов
- Начало сессии — когда пользователь вошёл в приложение
- Конец сессии — когда сессия была завершена
- Срок действия токенов — когда токены перестанут работать
- Идентификатор сессии — уникальный ID сессии
- Пользователь — кто использует приложение
- Приложение — в каком приложении работает пользователь
- Запрошенные scopes — какие разрешения предоставлены
Просмотр OIDC сессий
Для просмотра всех активных OIDC сессий:
- Войдите в систему IDENTYX под учётной записью администратора
- Перейдите в раздел Сессии пользователей в главном меню
- Выберите вкладку Приложения
На странице отображается таблица со всеми OIDC сессиями — как активными, так и завершёнными.
Информация о сессии в таблице
Для каждой OIDC сессии в таблице отображается следующая информация:
| Поле | Описание |
|---|---|
| Начало | Дата и время, когда пользователь вошёл в приложение через IDENTYX |
| Пользователь | Отображаемое имя пользователя, работающего в приложении |
| Приложение | Название приложения, к которому относится сессия |
| ИД сессии | Уникальный идентификатор сессии (Session ID) |
| Конец | Дата и время завершения сессии (если сессия завершена) |
| Срок жизни сессии | Дата и время истечения Refresh Token, после чего потребуется повторная аутентификация |
| Статус | Текущее состояние сессии (активна, истекла, завершена) |
Статусы OIDC сессий
Каждая OIDC сессия имеет статус, который показывает её текущее состояние:
- Активна (зелёная метка) — сессия действительна, пользователь может работать в приложении, токены актуальны
- Скоро истечет (жёлтая метка) — до истечения срока действия Refresh Token осталось менее 1 часа
- Истекла (красная метка) — срок действия Refresh Token истёк, для продолжения работы потребуется повторная аутентификация
- Завершена (красная метка) — сессия была явно завершена (пользователь вышел или администратор закрыл сессию)
Истекла — токены перестали работать из-за истечения времени. Пользователь всё ещё может попытаться использовать приложение, но будет перенаправлен на повторную аутентификацию.
Завершена — сессия была явно закрыта. Приложение получило уведомление о завершении через Backchannel Logout.
Фильтрация и поиск
Вы можете использовать фильтры для поиска нужных OIDC сессий:
- По началу сессии — выбор диапазона дат создания сессий
- По пользователю — введите имя пользователя для поиска его сессий
- По приложению — поиск сессий конкретного приложения
- По ИД сессии — поиск конкретной сессии по её идентификатору
- По концу сессии — выбор диапазона дат завершения
- По сроку жизни токена — поиск сессий, токены которых истекают в определённый период
Фильтры помогают быстро находить проблемные сессии, например, токены которых скоро истекут, или все сессии конкретного пользователя в определённом приложении.
Просмотр детальной информации о сессии
Для просмотра подробной информации о конкретной OIDC сессии:
- На странице со списком OIDC сессий (вкладка Приложения) найдите нужную сессию
- Кликните на строку с сессией
- Откроется карточка с детальной информацией
Информация в карточке сессии
В карточке OIDC сессии отображаются следующие данные:
- Приложение — название приложения (или "Неизвестное приложение", если не найдено)
- Имя пользователя — отображаемое имя пользователя
- ИД Сессии — уникальный идентификатор с кнопкой копирования
- Начало сессии — точная дата и время создания
- Конец сессии — когда была завершена (если завершена)
- Срок жизни токена — когда истечёт Refresh Token (с цветным статусом: "Истек", "Скоро истечет", "Активен")
Если доступно, отображается информация о подключении:
- IP-адрес — с какого IP был выполнен вход
- Браузер — информация о браузере и ОС пользователя
Примечание: Эти данные могут быть недоступны для некоторых сессий в зависимости от способа интеграции приложения.
Вы можете скопировать идентификатор сессии в буфер обмена, нажав на кнопку с иконкой копирования рядом с ID. Это удобно для поиска событий в журнале или отладки проблем с конкретной сессией.
Жизненный цикл токенов
OIDC сессия использует несколько типов токенов, каждый из которых имеет свой срок действия:
Access Token (Токен доступа)
Access Token — это короткоживущий токен, который приложение использует для доступа к защищённым ресурсам и API.
- Типичный срок действия: 15-60 минут
- Назначение: Подтверждение прав доступа при каждом запросе к API
- Формат: JWT (JSON Web Token), подписанный секретом приложения
- Обновление: Когда истекает, приложение автоматически обменивает Refresh Token на новый Access Token
Refresh Token (Токен обновления)
Refresh Token — это долгоживущий токен, который используется для получения новых Access Token без повторной аутентификации пользователя.
- Типичный срок действия: часы или дни (настраивается в приложении)
- Назначение: Позволяет приложению продлевать сессию без участия пользователя
- Формат: Случайная строка, хранящаяся в базе данных
- Критичность: Когда истекает Refresh Token, пользователь должен пройти повторную аутентификацию
Срок действия Refresh Token отображается в интерфейсе:
- В таблице сессий — как "Срок жизни сессии"
- В карточке сессии — как "Срок жизни токена"
Оба варианта обозначают одно и то же — когда истечёт Refresh Token и потребуется повторная аутентификация. Access Token обновляется автоматически и незаметно для пользователя, пока действует Refresh Token.
ID Token (Токен идентификации)
ID Token — это токен, содержащий информацию о пользователе (имя, email, права доступа).
- Назначение: Передача приложению информации о личности пользователя
- Формат: JWT с полями о пользователе
- Использование: Приложение читает этот токен для отображения данных пользователя
- Содержит: sub (ID пользователя), имя, email, роли, права доступа (если запрошены через scope)
Принудительное завершение сессии
Администратор может принудительно закрыть любую активную OIDC сессию. Это может потребоваться в следующих случаях:
- Подозрение на несанкционированное использование приложения
- Необходимость немедленно отозвать доступ пользователя к конкретному приложению
- Завершение всех сессий пользователя при его увольнении или блокировке
- Устранение проблем с застрявшими или зависшими сессиями
- Принудительное применение новых прав доступа (пользователь переавторизуется с новыми правами)
Как закрыть OIDC сессию
Для принудительного завершения OIDC сессии:
- Откройте список OIDC сессий (вкладка Приложения)
- Найдите нужную сессию и кликните на неё
- В открывшейся карточке нажмите кнопку Закрыть сессию
- Подтвердите действие в диалоговом окне
- Сессия будет завершена, приложение получит уведомление через Backchannel Logout
После закрытия OIDC сессии:
- Все токены (Access, Refresh, ID) становятся недействительными
- Приложение получает уведомление о завершении сессии через механизм Backchannel Logout
- Пользователь будет выведен из приложения при следующей попытке выполнить действие
- Если включен IDENTYX Proxy, все активные proxy-соединения для этой сессии будут закрыты
- Несохранённые данные в приложении могут быть потеряны
Закрытие нескольких сессий
Если нужно закрыть сразу несколько сессий (например, все сессии пользователя или все сессии в конкретном приложении):
- Используйте фильтры для отбора нужных сессий (по пользователю или приложению)
- Закройте каждую сессию по отдельности через карточку сессии
В текущей версии IDENTYX массовое закрытие сессий через один клик не реализовано. Для закрытия нескольких сессий нужно обработать каждую по отдельности. Это сделано намеренно для предотвращения случайного закрытия большого количества сессий.
Backchannel Logout
Backchannel Logout — это механизм из спецификации OpenID Connect, который позволяет IDENTYX уведомлять приложения о завершении сессии без участия браузера пользователя.
Как работает Backchannel Logout
Когда администратор закрывает OIDC сессию или пользователь выходит из системы:
- IDENTYX помечает сессию как завершённую в базе данных
- Система создаёт специальный Logout Token (JWT с типом
logout+jwt) - Logout Token содержит информацию о сессии (session ID) и событии завершения
- IDENTYX отправляет POST-запрос на endpoint
/backchannel-logoutприложения - Приложение получает Logout Token, проверяет его подпись и завершает сессию на своей стороне
- Если используется IDENTYX Proxy, дополнительно закрываются все активные proxy-соединения
- Приложение узнаёт о завершении сессии немедленно, не дожидаясь следующего обращения пользователя
- Не требует активного браузера пользователя (в отличие от Front-Channel Logout)
- Работает даже если пользователь уже закрыл вкладку с приложением
- Позволяет приложению выполнить необходимые действия при завершении сессии (сохранить данные, очистить кэш)
Структура Logout Token
Logout Token — это JWT (JSON Web Token), который содержит следующие поля:
| Поле | Описание |
|---|---|
iss |
Издатель токена (URL системы IDENTYX) |
sub |
Идентификатор пользователя (Subject ID) |
aud |
Client ID приложения, которому предназначен токен |
iat |
Время создания токена (Unix timestamp) |
exp |
Время истечения токена (обычно +3 минуты от создания) |
jti |
Уникальный идентификатор токена |
sid |
Идентификатор закрываемой сессии (Session ID) |
events |
Событие http://schemas.openid.net/event/backchannel-logout |
Если вы разрабатываете приложение для интеграции с IDENTYX, ваше приложение должно:
- Предоставить endpoint
/backchannel-logoutдля приёма POST-запросов - Проверять подпись Logout Token с использованием Client Secret
- Извлекать Session ID из поля
sid - Завершать соответствующую сессию на стороне приложения
- Отвечать HTTP 200 OK при успешной обработке
Подробнее см. раздел OIDC интеграция.
Backchannel Logout и IDENTYX Proxy
При использовании IDENTYX Proxy для прозрачной аутентификации приложений, Backchannel Logout работает немного иначе:
- Logout Token отправляется на внутренний адрес приложения (через порт ingress)
- Дополнительно очищаются данные сессии в DataBus (внутреннее хранилище proxy)
- Отправляется команда на закрытие всех активных proxy-соединений для данной сессии
- Пользователь будет немедленно отключён от приложения
Это гарантирует, что при завершении OIDC сессии пользователь не сможет продолжить работу через proxy, даже если приложение ещё не обработало Logout Token.
Автоматическое истечение сессий
OIDC сессии автоматически истекают, когда заканчивается срок действия Refresh Token:
- Срок действия Refresh Token устанавливается при создании сессии
- Пока токен действителен, приложение может автоматически обновлять Access Token
- Когда Refresh Token истекает, приложение больше не может обновить токены
- При следующей попытке пользователя выполнить действие, приложение перенаправит его на IDENTYX для повторной аутентификации
Срок действия токенов настраивается индивидуально для каждого OIDC приложения в настройках приложения. Там вы можете указать:
- Время жизни Access Token (обычно 15-60 минут)
- Время жизни Refresh Token (от нескольких часов до нескольких дней)
Более короткие сроки повышают безопасность, но требуют более частой повторной аутентификации.
Ограничение количества OIDC сессий
Для некоторых OIDC приложений можно настроить ограничение количества одновременных сессий одного пользователя. Это полезно для:
- Предотвращения совместного использования одной учётной записи несколькими людьми
- Повышения безопасности критичных приложений
Как работает ограничение
Механизм ограничения сессий для OIDC приложений аналогичен IAM сессиям:
- В настройках приложения указывается параметр "Лимит количества сессий"
- При создании новой сессии (новом входе) система проверяет количество активных сессий пользователя в этом приложении
- Если лимит превышен, старые сессии автоматически закрываются (начиная с наименее активных)
- Приложения получают Backchannel Logout уведомления о закрытых сессиях
Ограничение количества сессий настраивается отдельно для каждого OIDC приложения, а не глобально. Это позволяет применять разные политики для разных приложений. Подробнее см. раздел Настройки приложения.
Мониторинг OIDC сессий
Регулярный мониторинг OIDC сессий помогает выявлять проблемы безопасности и оптимизировать работу приложений:
- Нет ли необычно большого количества сессий у одного пользователя
- Нет ли сессий, которые длятся слишком долго (могут быть забытыми)
- Нет ли сессий с подозрительными IP-адресами
- Как часто истекают токены (возможно, нужно увеличить время жизни)
- Какие приложения используются чаще всего
- Сколько пользователей работает одновременно
- В какое время суток пиковая нагрузка
- Есть ли приложения с аномально короткими или длинными сессиями
При обнаружении проблем:
- Закройте подозрительные сессии
- Проверьте журнал событий для этого пользователя/приложения
- Заблокируйте пользователя при подозрении на компрометацию
- Свяжитесь с пользователем для выяснения ситуации
- Устанавливайте разумные сроки действия токенов
- Используйте ограничения количества сессий для критичных приложений
- Регулярно проверяйте активные сессии увольняющихся сотрудников
- Документируйте инциденты с OIDC сессиями
Решение проблем
Сессия не закрывается
Проблема: После нажатия кнопки "Закрыть сессию" она всё ещё отображается как активная.
Решение:
- Обновите страницу со списком сессий
- Проверьте поле "Конец" — если там указана дата, сессия закрыта
- Проверьте журнал событий для подтверждения закрытия сессии
- Убедитесь, что приложение получило Backchannel Logout (проверьте логи приложения)
Токены истекают слишком быстро
Проблема: Пользователи жалуются, что их постоянно выбрасывает из приложения.
Решение:
- Проверьте настройки времени жизни токенов в настройках OIDC приложения
- Убедитесь, что Refresh Token живёт достаточно долго (минимум несколько часов)
- Проверьте, правильно ли приложение обрабатывает обновление токенов
- Если используется Proxy, убедитесь, что настройки блокировки экрана не слишком агрессивные
Слишком много сессий у одного пользователя
Проблема: У пользователя десятки активных сессий в одном приложении.
Решение:
- Проверьте, установлен ли лимит сессий для этого приложения
- Закройте старые сессии вручную
- Установите лимит количества сессий (например, 2-3) в настройках приложения
- Проверьте, нет ли утечки сессий (приложение не завершает сессии должным образом)
Backchannel Logout не работает
Проблема: После закрытия сессии пользователь всё ещё может работать в приложении.
Решение:
- Убедитесь, что приложение реализует endpoint
/backchannel-logout - Проверьте логи IDENTYX — отправляется ли POST-запрос на приложение
- Проверьте логи приложения — получает ли оно Logout Token и обрабатывает ли его
- Убедитесь, что порт ingress приложения настроен правильно
- Для Proxy-приложений убедитесь, что сервис channel.server работает
Связанные разделы
- IAM сессии — управление сессиями пользователей в самой системе IDENTYX
- Обзор OIDC — общие сведения о протоколе OpenID Connect
- Создание OIDC приложения — как создать и настроить OIDC приложение
- Настройки приложения — параметры приложения, включая лимиты сессий
- IDENTYX Proxy — прозрачная аутентификация через прокси
- OIDC интеграция — техническое руководство по интеграции приложений
- Журнал событий — просмотр событий создания и завершения OIDC сессий
Переходите к разделу Обзор учетных записей для изучения системы управления учётными записями приложений.