System Settings — Versola Docs
VersolaVersola/docs
До 1.00.7.1versola.kzGitHub

System Settings

Справочник по экрану System Settings консоли администратора — общая политика паролей и логотип провайдера идентификации на страницах входа

System Settings хранит две настройки, которые относятся ко всему развёртыванию, а не к одному тенанту: политику паролей и логотип провайдера идентификации. Пароль принадлежит пользователю, а не тенанту, поэтому и политика, которая им управляет, общая. Экран не зависит от выбранного в боковой панели тенанта.

Перед началом

Что нужноРазрешение
Открыть экранsecurity:read
Менять настройки (кнопка Edit)security:manage

Настройки хранятся в Central и попадают в auth через синхронизацию конфигурации, поэтому сохранённое изменение применяется после очередного обновления. edge их не использует.

System Settings, режим чтения, значения по умолчанию
Страница System Settings в режиме чтения: карточка Password Policy с регулярным выражением, историей из 2 паролей и одним обязательно отличающимся паролем, и карточка Branding с пустым Identity provider logo.

Поля

Edit открывает форму ниже. Save записывает все четыре значения сразу, Cancel отбрасывает их.

ПолеЗа что отвечаетПо умолчаниюПроверка
Password RegexШаблон, которому целиком должен соответствовать каждый вводимый пароль.^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$ (не меньше 8 символов, с заглавной и строчной буквой и цифрой)Обязательное. Консоль отклоняет шаблон, который не является корректным регулярным выражением.
Password History SizeСколько предыдущих паролей Versola хранит для пользователя, считая текущий.2Целое число, 0 и больше.
Different Passwords RequiredОт скольких последних сохранённых паролей новый пароль должен отличаться.1 (новый пароль должен отличаться от текущего)Целое число, 0 и больше.
Identity Provider LogoЛоготип на страницах входа; он же favicon этих страниц.пусто (в режиме чтения показан прочерк —)Пусто или абсолютный URL http либо https с хостом. Пробелы по краям обрезаются; пустое значение убирает логотип.
System Settings, форма редактирования
Форма редактирования System Settings: поля Password Regex, Password History Size, Different Passwords Required и Identity Provider Logo, кнопки Save и Cancel.

Central отклоняет логотип, который не является абсолютным URL http(s), с сообщением Identity provider logo must be an absolute HTTP(S) URL. Регулярное выражение Central не проверяет, единственная проверка — в консоли. Форма в браузере проверяет его как шаблон JavaScript, а auth вычисляет его в Java, поэтому используйте конструкции, которые понимают оба (классы символов, квантификаторы, lookahead).

Учитываются только сохранённые пароли. Если Different Passwords Required больше Password History Size, это ничего не добавляет: более старых паролей у auth просто нет.

Как применяется политика

Регулярное выражение auth проверяет на сервере каждый раз, когда пароль вводят на странице входа: на шаге пароля, на объединённом шаге логина и пароля и на шаге Set New Password. Если пароль не подходит, запрос отклоняется с 400 ещё до сверки со сохранённым паролем.

Warning: Шаблон действует и при входе, а не только для новых паролей. После ужесточения шаблона пользователь, чей текущий пароль ему уже не соответствует, не сможет отправить его на странице входа. Меняйте шаблон вместе с планом для таких пользователей, например со сбросом пароля.

Если шаблон не является корректным регулярным выражением Java, auth считает подходящим любой пароль. Консоль неверные шаблоны не пропускает, так что это возможно, только если настройку записали в Central напрямую через API.

Правила истории действуют, когда пользователь задаёт постоянный пароль. Новый пароль отклоняется, если он совпадает с одним из последних Different Passwords Required паролей. После сохранения в записи остаются только Password History Size самых новых паролей. Если пользователь входит со старым паролем, который ещё хранится, auth его не принимает и показывает, когда пароль был изменён.

Первый вход и сброс пароля

Временные пароли бывают двух видов: пароль первого администратора из bootstrap и пароль, который выдаёт кнопка Reset Password на карточке пользователя (см. Пользователь). Оба проходят один путь:

  1. Пользователь входит с временным паролем. auth принимает его как фактор «пароль», проходит остальные факторы (например, код OTP) и затем показывает Set New Password. Просроченный временный пароль отклоняется.
  2. Новый пароль должен соответствовать Password Regex и пройти правила истории выше. Пароль, повторяющий недавний, отклоняется с сообщением о повторе, а неудачная попытка идёт в счёт лимитов отправки пароля у тенанта (см. Challenges & Security).
  3. При сохранении новый пароль записывается как постоянный, временный удаляется и в историю не попадает.

Сброс создаёт временный пароль из 16 символов, который удовлетворяет Password Regex; генерация пробуется до 20 раз. Если шаблон настолько строг, что случайные пароли почти не проходят, сброс завершится ошибкой, а слабый пароль не выдаётся. Сброс без срока действия истекает через 12 часов. В продакшене пароль доставляется пользователю по email или SMS с шаблоном password из Challenges & Security; показать его в консоли можно только вне продакшена.

Внутренний вызов POST /users/password/set в auth применяет правила истории, но Password Regex не проверяет.

Что дальше