Skip to content

Безопасность аккаунта: что доступно вашим пользователям

Обзор встроенных в SSO средств защиты аккаунта — полезно знать, что уже есть у платформы, прежде чем встраивать собственные механизмы безопасности поверх неё, и чтобы объяснять пользователям, что означают экраны, которые они увидят при входе через ваше приложение. Все настройки — на стороне SSO, в /account/security; вашему приложению для этого ничего дополнительно реализовывать не нужно.


Двухфакторная аутентификация (2FA / TOTP)

Стандартный второй фактор — приложение-аутентификатор (Google Authenticator, Authy и подобные). При включении пользователю выдаётся набор одноразовых резервных кодов на случай утраты устройства с приложением — их стоит сохранить в надёжном месте сразу при получении, повторно они не показываются.

MFA по email

Одноразовый код, присылаемый на почту, — независимая альтернатива приложению-аутентификатору. Полезно как запасной вариант или как более простой первый шаг для пользователей, которым неудобно ставить отдельное приложение. Действует ограниченное время и одноразово.

Аппаратные ключи и Passkeys (WebAuthn / FIDO2)

Два родственных, но разных механизма:

  • Passkeys — вход по биометрии устройства (Face ID, Touch ID, Windows Hello), без физического ключа.
  • Аппаратные ключи — физические USB/NFC-ключи (например, YubiKey).

Оба варианта требуют защищённого соединения (https://, либо localhost при локальной разработке) — на голом IP-адресе без TLS работать не будут.

Adaptive MFA

Отдельная персональная настройка, по умолчанию выключенная. Идея: устройство, с которого пользователь уже когда-то успешно проходил проверку второго фактора, обычно не требует его заново — это снижает трение при частых входах. При включённом Adaptive MFA это доверие перестаёт быть безусловным: если вход выглядит необычно (см. ниже), второй фактор запрашивается повторно даже с уже знакомого устройства.

Уровни риска входа

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

УровеньЧто происходит
НизкийОбычный вход. На знакомом устройстве MFA может не запрашиваться повторно
СреднийПри включённом Adaptive MFA — второй фактор запрашивается даже на знакомом устройстве
ВысокийВторой фактор запрашивается обязательно; для пользователей без включённого MFA вход может быть заблокирован полностью

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

Уведомления о подозрительном входе

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

Подключённые приложения

Пользователь видит список приложений, которым он выдал согласие на вход через SSO, на отдельной странице своего аккаунта — включая ваше приложение, под тем названием, логотипом и ссылкой на сайт, которые вы указали при регистрации клиента (см. 02-client.md). Там же пользователь может в любой момент самостоятельно отозвать доступ вашему приложению — если это произошло, все выданные ему токены для этого пользователя перестают быть действительными, и ему потребуется пройти согласие заново. Учитывайте это в своей логике обработки ошибок авторизации: отозванный доступ выглядит так же, как истёкший refresh_token (invalid_grant).