Повторная аутентификация
Подтверждение пароля и подтверждение SSO — какие действия их требуют, сколько они действуют и как работает повторный вход корпоративной сессии.
Calab различает два независимых доказательства того, что за экраном действительно владелец аккаунта. Они не заменяют друг друга: свежий пароль не даёт подтверждения SSO, а свежий SSO не подтверждает пароль.
Два вида подтверждения
| Подтверждение пароля | Подтверждение SSO | |
|---|---|---|
| Что доказывает | Человек знает пароль личного аккаунта | Человек только что вошёл в IdP организации |
| Как получить | «Подтвердить пароль» → «Текущий пароль» | «Подтвердить корпоративный вход» — вход в IdP в системном браузере |
| Чем отличается сессия | Только у личного аккаунта | У личного аккаунта и у корпоративной сессии |
| Срок для обычного доступа | Не нужно | До 1 часа (по auth_time из ID token) |
| Срок для управления | 5 минут | 5 минут (при обязательном SSO) |
| Ошибка, если нет | 403 RECENT_AUTH_REQUIRED | 403 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": "…"}'{"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 минут |
| Незавершённый вход через IdP | 5 минут, один раз |
| Билет завершения входа в десктопе | 60 секунд, один раз |
| Сессия восстановления | 10 минут |
| Допустимое расхождение часов с IdP | 60 секунд (не продлевает сроки) |