Перейти к содержимому
CalabДокументация

Повторная аутентификация

Подтверждение пароля и подтверждение SSO — какие действия их требуют, сколько они действуют и как работает повторный вход корпоративной сессии.

Calab различает два независимых доказательства того, что за экраном действительно владелец аккаунта. Они не заменяют друг друга: свежий пароль не даёт подтверждения SSO, а свежий SSO не подтверждает пароль.

Два вида подтверждения

Подтверждение пароляПодтверждение SSO
Что доказываетЧеловек знает пароль личного аккаунтаЧеловек только что вошёл в IdP организации
Как получить«Подтвердить пароль» → «Текущий пароль»«Подтвердить корпоративный вход» — вход в IdP в системном браузере
Чем отличается сессияТолько у личного аккаунтаУ личного аккаунта и у корпоративной сессии
Срок для обычного доступаНе нужноДо 1 часа (по auth_time из ID token)
Срок для управления5 минут5 минут (при обязательном SSO)
Ошибка, если нет403 RECENT_AUTH_REQUIRED403 SSO_REQUIRED

Обновление сессии (refresh) не продлевает ни одно из подтверждений.

Что чего требует

ДействиеПароль ≤ 5 минSSO
Работа в пространстве «По выбору» из личного аккаунта——
Работа в пространстве «Обязательный SSO»—≤ 1 ч
Любая работа из корпоративной сессии— (пароля нет)≤ 1 ч
Привязка корпоративной учётной записиДаВход в IdP — часть привязки
Отвязка своей учётной записиДа≤ 5 мин
Изменение подключения, политики, каталога, recovery kitДа≤ 5 мин, если включён обязательный SSO
Создание и изменение OAuth-клиентовДа≤ 5 мин, если включён обязательный SSO
Включение «Обязательный SSO»Да≤ 5 мин, всегда
Восстановление по кодуДаНе требуется — см. recovery kit

Если сервер ответил RECENT_AUTH_REQUIRED, приложение показывает «Подтвердите пароль: для этого действия нужен вход не старше 5 минут.» и после подтверждения повторяет действие («Подтвердить ещё раз», если время снова вышло).

Подтверждение пароля через API

curl -s -X POST https://app.example.com/api/auth/local/reauth \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Origin: https://app.example.com" \
  -H "Content-Type: application/json" \
  -d '{"currentPassword": "…"}'
JSON
{"authenticatedAt": "2026-10-14T09:00:00Z", "validUntil": "2026-10-14T09:05:00Z"}

Маршрут принимает только сессию личного аккаунта и запрос с разрешённого origin приложения. Он не даёт подтверждения SSO.

Повторный вход корпоративной сессии

Корпоративная сессия (полученная входом через SSO) может обновить своё подтверждение, не выходя из Calab: «Подтвердить корпоративный вход» запускает вход в IdP с целью SSO_FLOW_PURPOSE_STEP_UP.

Правила:

  • работает только в пространстве этой сессии, через текущее активное подключение и с той же привязанной учётной записью IdP;
  • обновляет только подтверждение SSO этой сессии — не выдаёт новых токенов, не меняет ID сессии и не продлевает её абсолютный срок;
  • сменился sub, аккаунт, подключение, политика, статус в каталоге, тариф, или сессию отозвали — повторный вход отклоняется;
  • истёкшую или отозванную сессию так не вернуть: нужен новый вход.

Гости, боты, сессии восстановления и другие пространства этот путь использовать не могут.

Свежесть входа для OAuth-приложений

Когда стороннее приложение просит Calab подтвердить недавний вход (prompt=login или max_age), Calab берёт время входа так:

  • для личного аккаунта — время последнего подтверждения пароля;
  • для корпоративной сессии — время последнего входа в IdP.

Поэтому экран согласия может предложить подтвердить пароль, пройти SSO или оба шага. После подтверждения согласие продолжается в той же сессии. Подробнее — экран согласия.

Сроки одним списком

ОбъектСрок
Подтверждение пароля для управления и привязки5 минут
Подтверждение SSO для доступа1 час от auth_time
Подтверждение SSO для управления5 минут
Незавершённый вход через IdP5 минут, один раз
Билет завершения входа в десктопе60 секунд, один раз
Сессия восстановления10 минут
Допустимое расхождение часов с IdP60 секунд (не продлевает сроки)