System settings хранит настройки, которые относятся ко всему развертыванию, а не к одному тенанту: политику паролей и карточку Locales. Пароль принадлежит пользователю, а не тенанту, поэтому и политика, которая им управляет, общая, как и список языков. Страница не зависит от выбранного в боковой панели тенанта. Логотип на страницах входа настраивается для каждого тенанта, см. Branding.
Перед началом
| Что нужно | Разрешение |
|---|---|
| Видеть политику паролей | security:read |
| Менять политику паролей (кнопка Edit) | security:manage |
| Видеть карточку Locales | locales:read |
| Менять языки | locales:manage |
Настройки хранятся в Central и попадают в auth через синхронизацию конфигурации, поэтому сохраненное изменение применяется после очередного обновления. edge их не использует.

Password policy
Карточка Password policy показывает три значения ниже. Edit открывает Edit password policy. Save password policy записывает все три значения сразу, Cancel отбрасывает их.
| Поле | За что отвечает | По умолчанию | Проверка |
|---|---|---|---|
| Regex | Шаблон, которому целиком должен соответствовать каждый вводимый пароль. | ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$ (не меньше 8 символов, с заглавной и строчной буквой и цифрой) | Обязательное. Консоль отклоняет шаблон, некорректный как регулярное выражение. |
| History size | Сколько предыдущих паролей Versola хранит для пользователя, считая текущий. | 2 | Целое число, 0 и больше. |
| Different passwords required | От скольких последних сохраненных паролей новый пароль должен отличаться. | 1 (новый пароль должен отличаться от текущего) | Целое число, 0 и больше. |

Регулярное выражение Central не проверяет, единственная проверка — в консоли. Форма в браузере проверяет его как шаблон JavaScript, а auth вычисляет его в Java, поэтому используйте конструкции, которые понимают оба (классы символов, квантификаторы, lookahead).
Учитываются только сохраненные пароли. Если Different passwords required больше History size, это ничего не добавляет: более старых паролей у auth просто нет.
Как применяется политика
Регулярное выражение auth проверяет на сервере каждый раз, когда пароль вводят на странице входа: на шаге пароля, на объединенном шаге логина и пароля и на шаге Set New Password. Если пароль не подходит, запрос отклоняется с 400 еще до сверки со сохраненным паролем.
Warning: Шаблон действует и при входе, а не только для новых паролей. После ужесточения шаблона пользователь, чей текущий пароль ему уже не соответствует, не сможет отправить его на странице входа. Меняйте шаблон вместе с планом для таких пользователей, например со сбросом пароля.
Если шаблон некорректен как регулярное выражение Java, auth считает подходящим любой пароль. Консоль неверные шаблоны не пропускает, так что это возможно, только если настройку записали в Central напрямую через API.
Правила истории действуют, когда пользователь задает постоянный пароль. Новый пароль отклоняется, если он совпадает с одним из последних Different Passwords Required паролей. После сохранения в записи остаются только Password History Size самых новых паролей. Если пользователь входит со старым паролем, который еще хранится, auth его не принимает и показывает, когда пароль был изменен.
Первый вход и сброс пароля
Временные пароли бывают двух видов: пароль первого администратора из bootstrap и пароль, который выдает кнопка Reset Password на карточке пользователя (см. Пользователь). Оба проходят один путь:
- Пользователь входит с временным паролем.
authпринимает его как фактор «пароль», проходит остальные факторы (например, код OTP) и затем показывает Set New Password. Просроченный временный пароль отклоняется. - Новый пароль должен соответствовать Regex и пройти правила истории выше. Пароль, повторяющий недавний, отклоняется с сообщением о повторе, а неудачная попытка идет в счет лимитов отправки пароля у тенанта (см. Security).
- При сохранении новый пароль записывается как постоянный, временный удаляется и в историю не попадает.
Сброс создает временный пароль из 16 символов, который удовлетворяет Regex; генерация пробуется до 20 раз. Если шаблон настолько строг, что случайные пароли почти не проходят, сброс завершится ошибкой, а слабый пароль не выдается. Сброс без срока действия истекает через 12 часов. В продакшене пароль доставляется пользователю по email или SMS с шаблоном password из OTP templates; показать его в консоли можно только вне продакшена.
Внутренний вызов POST /users/password/set в auth применяет правила истории, но Regex не проверяет.
Locales
Карточка Locales под политикой паролей перечисляет языки, на которых могут выводиться экраны входа, сообщения с одноразовым кодом и экран согласия. У нее свои разрешения, а изменения применяются сразу, без шага Edit. См. Locales.
Что дальше
- Security — лимиты отправки пароля
- OTP templates — сообщение с временным паролем
- Пользователь и Как зарегистрировать пользователя
- Locales