Insights / Технические материалы

Единые сроки входа для нескольких сервисов: обновление сессии и повторная аутентификация

Обобщённый подход к срокам входа с разделением явного входа, серверной проверки, cookie и поставщика идентификации.

  • Authentication
  • Session
  • Web
Единые сроки входа для нескольких сервисов: обновление сессии и повторная аутентификация
Содержание
  1. Сравнение одного запроса до и после истечения срока
  2. Разделить сроки
  3. Отличать явный вход от обычного доступа
  4. Проверять срок на сервере
  5. Разделить настройки и поведение
  6. Подтверждённый объём
  7. Дополнение от 6 октября 2026 года: продолжение аутентификации и права приложения

Общий аккаунт не делает сессии приложений и поставщика идентификации одинаковыми. Пример согласует правила без раскрытия окружений и сроков.

Сравнение одного запроса до и после истечения срока

В тестовой среде задайте короткий срок. Отдельно выполните явный вход, просмотр и фоновое обновление, сравнив серверное время истечения. Затем проверьте одинаковую операцию через интерфейс и API: предложение повторного входа и отказ в доступе. Отделяйте такой тест от длительной эксплуатации.

OWASP:Проектирование и проверка срока сессии

Разделить сроки

Отдельно описать сессию поставщика, сессию приложения и cookie браузера. Абсолютный срок, срок бездействия и смена идентификатора — разные меры. Смена идентификатора не обязательно продлевает срок.

Отличать явный вход от обычного доступа

В примере применимый срок обновляется после успешного явного входа, а не при просмотре страниц, фоновом обмене, автоматическом обновлении токена или смене идентификатора: они сохраняют исходный срок. Нажатие кнопки и переход к callback не доказывают успешную аутентификацию: результат нужно проверить. Если нужна новая аутентификация, отдельно проверить, достаточно ли существующей сессии поставщика.

Проверять срок на сервере

Долговечность cookie не определяет, что принимает сервер. Сопоставить срок, отзыв, cookie и ограничения поставщика. Единые правила не означают общий cookie или мгновенный выход из всех сервисов.

Проверять время аутентификации и истечения у источника идентификации и ограничивать ими сессии приложений. Общий контракт проверяет сессии; бизнес-права остаются у каждого приложения. Шлюз со своим cookie имеет отдельную границу, которую также учитывают и проверяют.

Разделяйте аутентификацию, сеансы и права приложений Общее правило срока действия не объединяет эти состояния.
  1. Провайдер идентификации и callback Проверьте результат аутентификации и context/state callback. Сам факт входа не выдаёт права в приложении.
  2. Приложение, cookie и шлюз Отдельно проверяйте срок действия и отзыв серверного сеанса приложения, cookie браузера и сеанса шлюза.
  3. Права для каждого сервиса Каждое приложение проверяет свои права. Обычные запросы и фоновое обновление не продлевают срок и не означают общий выход из всех сервисов.

Разделить настройки и поведение

Аудит кода и настроек отделить от тестов входа, границ срока, входа после истечения и выхода. Проверить переход старых сессий на новые правила и обработку истечения страницами и API. Записывать решения и время без значений сессии и учётных данных.

Подтверждённый объём

История фиксирует изменения, рабочее развёртывание и инструменты аудита различий. Вход реальных пользователей и ожидание фактического истечения срока в этих проверках не выполнялись. Она не доказывает испытания на всех устройствах с реальным ожиданием срока или полную безопасность отзыва и повторного входа. Сроки и дополнительные проверки выбирать по данным и операциям.

Для общей проверки см. сессии OWASP и аутентификацию. Пример другого уровня см. в управлении сессиями Cloudflare. Рекомендации не означают, что все проверки выполнены в этом случае.

Дополнение от 6 октября 2026 года: продолжение аутентификации и права приложения

В обезличенном описании изменения аутентификации отдельно рассмотрены переход на callback OIDC, проверка токена, продолжение исходного запроса аутентификации и права на использование приложения. Если контекст, необходимый для продолжения, потерян, процесс не считается успешным входом: возвращается безопасная ошибка, с которой можно возобновить работу. Проверяется и адрес возврата; вход в общую учётную запись сам по себе не предоставляет рабочие права в каждом приложении.

Тот же контракт проверяется при входе и регистрации, добавлении и удалении провайдеров аутентификации, а также при восстановлении доступа. Записи об изменениях и развёртывании не доказывают, что все пользователи могут входить через все провайдеры или что сохранение последнего способа восстановления проверено сквозным тестом.

Отдельно проверяются включение второго фактора, вход в систему идентификации, прохождение шлюза доступа и защищённая запись в приложении. Ограниченная проверка записи не заменяет испытание всех штатных путей OIDC и не доказывает отказ для отключённой учётной записи. Регистрация, начальная настройка, экраны изменения и API используют единые правила ввода; тесты совместно проверяют допустимые и отклоняемые граничные значения. Конкретная длина не объявляется универсальным стандартом.

Подсказки на экранах и callback для входа и регистрации также разделены. Отображение экрана или проверка работоспособности не подтверждает реальное создание внешней учётной записи или получение согласия. При удалении провайдера вместе проверяются кнопка, callback, настройки, справка и тесты, а затем ищутся оставшиеся пути.