Статья описывает настройку индивидуальных правил генерации и валидации паролей для полей форм в BILLmanager. Функциональность позволяет задавать уникальные требования к паролям для авторизации пользователей и заказываемых услуг через XML-конфигурацию.
Например, для авторизации можно задать строгие правила (10 символов, заглавные и строчные буквы, цифры, спецсимволы), а для заказываемого виртуального сервера — более простые (8 символов, буквы в обоих регистрах и цифры).
Логика работы
Вы можете настроить механизм генерации паролей с помощью собственного плагина. Пример создания собственного плагина см. в статье Создание плагина для BILLmanager.
Платформа применяет настройки по следующему принципу:
- если поле задано в XML-файле плагина, применяются локальные настройки из файла;
- если поле не задано в файле плагина или файл плагина отсутствует, применяются глобальные настройки паролей, доступные в интерфейсе BILLmanager. Например, поля Длина пароля и Допустимые символы. Подробнее о настройке полей см. статью Настройка паролей.
Подготовка
Перед тем, как вносить изменения:
- Подключитесь к серверу по SSH с правами суперпользователя (по умолчанию root). Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Установите пакеты разработки: AlmaLinux
sudo dnf install coremanager-devel billmanager-corporate-dev clangUbuntu или Astra Linuxsudo apt install coremanager-dev billmanager-corporate-dev clang - Перезагрузите платформу командой:
/usr/local/mgr5/sbin/mgrctl -m billmgr -R
Установка плагина
Чтобы настроить правила генерации пароля, создайте XML-плагин и выполните следующие действия:
- Распакуйте архив с плагином в директорию /usr/local/mgr5/src/.
- Перейдите в распакованную директорию плагина.
- Выполните сборку и установку:
make install - Дождитесь автоматической перезагрузки платформы.
Пример конфигурации
Рассмотрим пример плагина, который изменяет правила генерации и валидации пароля для формы редактирования сотрудника employee.edit.
<mgrdata>
<handler name="techspeak.py" type="xml">
<event after="yes" name="employee.edit" ignore_errors="yes"/>
</handler>
<metadata name="employee.edit" type="form">
<form title="name">
<page name="basic">
<field name="passwd">
<!-- В атрибуте checkargs укажите настраиваемые параметры валидатора пароля.
Через параметры gencharacters и genlen задайте допустимые символы и длину генерируемого пароля соответственно -->
<input checkargs="0,minlen=20,requiredigit=on,requirelowerletter=on,requireupperletter=on,requirespecialchar=off" genlen="20" gencharacters="AaBb1234" type="password" name="passwd" checkpasswd="confirm"/>
</field>
<field name="confirm">
<input checkargs="0,minlen=20,requiredigit=on,requirelowerletter=on,requireupperletter=on,requirespecialchar=off" genlen="20" gencharacters="AaBb1234" type="password" name="confirm" notprop="yes"/>
</field>
</page>
</form>
</metadata>
</mgrdata>Описание атрибутов и параметров
Правила генерации и валидации задаются через атрибуты тегов.
Атрибут checkargs
Строка с параметрами валидатора пароля. Параметры перечисляются через запятую:
-
Первый (позиционный) параметр обозначает уровень сложности, остальные передаются в формате
имя=значение. Уровень сложности пароля:0— не проверять сложность;1— слабый пароль;2— хороший пароль;3— сложный пароль;
Подробнее об уровне сложности паролей см. в статье Конфигурационный файл.
minlen— минимальная длина пароля для валидатора. Значения:on— принудительно включить проверку минимальной длины;off— принудительно выключить проверку минимальной длины (даже если она включена в глобальных настройках);<целое число>— задать собственное значение минимальной длины. Параметр переопределяет значение из глобальных настроек. Может быть как больше, так и меньше глобального параметра.
requiredigit— наличие цифры в пароле:on— принудительно включить проверку;off— принудительно выключить проверку;
requirelowerletter— наличие латинского символа в нижнем регистре (a–z):on— принудительно включить проверку;off— принудительно выключить проверку;
requireupperletter— наличие латинского символа в верхнем регистре (A-Z);on— принудительно включить проверку;off— принудительно выключить проверку.
requirespecialchar— наличие специального символа. Допустимый набор специальных символов:+-*^/()[]{}=<>'$,;:%!&?_#@". Значения:on— принудительно включить проверку;off— принудительно выключить проверку.
Если какой-либо параметр не задан в checkargs, используется значение из глобальных настроек паролей.
Атрибут gencharacters
Строка, задающая набор допустимых символов, из которых будет сгенерирован пароль для конкретного поля. Переопределяет глобальный набор символов из настроек платформы.
Например: gencharacters="AaBb1234" — пароль будет состоять только из символов A, a, B, b, 1, 2, 3, 4.
Если атрибут не задан, используется набор символов из глобальных настроек.
Атрибут genlen
Целое число, задающее длину пароля, который будет сгенерирован для конкретного поля. Переопределяет глобальное значение длины.
Если атрибут не задан, используется длина из глобальных настроек.
Значение genlen должно быть больше или равно значению minlen, иначе сгенерированный пароль не пройдёт валидацию.
Для применения правил к другой форме измените атрибут name у тега <event> на имя требуемой функции формы.
Связанные статьи: