Настройка
Настройка приложения после установки: локальные конфиг-файлы, режимы авторизации и аутентификации, а также справочник дополнительных параметров (params).
Настройка производится посредством файлов в папке config/:
- params-local.php - основные опции приложения:
если не указано иное, то настройки вписываются именно сюда. Переопределяет значения по умолчанию из params.php (сам params.php не редактируем - он обновляется вместе с приложением)
- db-local.php - параметры БД
- ldap.php - параметры LDAP backend для аутентификации
- web-local.php - низкоуровневое переопределение параметров Yii движка
Авторизация
Приложение поддерживает следующие режимы авторизации пользователей:
- Отсутствие контроля прав - в таком режиме выполнять все действия может любой человек получивший веб доступ (ограничения могут быть настроены на уровне авторизации веб сервера или ограничения по IP). Приложение работает в таком режиме по умолчанию
- Требование аутентификации для работы - для доступа к данным нужно будет пройти аутентификацию, выполнив “Вход”. Для этого должна быть настроена аутентификация и выставлен параметр
php
'authorizedView'=>false, //аутентификация достаточна для авторизации
- false - (по умолчанию) не требовать аутентификацию,
- true - требовать аутентификацию для работы
- RBAC - Role Based Access Control, в таком режиме каждому пользователю необходимо задавать разрешения на просмотр, редактирование и изменение доступа пользователей. Для этого должна быть настроена аутентификация и выставлен параметр
php
'useRBAC'=>false, //включить RBAC и выдавать права только тем кому они явно назначены
- false - (по умолчанию) ничего не требовать - у всех полные права
- true - права назначаются явно каждому пользователю, по умолчанию никто ничего не может (исключение: если при этом authorizedView выключен, просмотр открыт всем — см. таблицу ниже)
Комбинации аутентификации и RBAC:
| authorizedView |
useRBAC |
результат |
| false |
false |
аутентификации, авторизации и ограничений в правах нет - всем можно все |
| true |
false |
аутентификация требуется, полные права у всех аутентифицированных |
| false |
true |
аутентификация не требуется, просмотр доступен всем (в том числе без входа), права на изменение нужно выдавать явно — действуют они после аутентификации |
| true |
true |
аутентификация требуется, и никаких прав по умолчанию нет, все права нужно выдавать явно |
Аутентификация
Чтобы пользователь мог вводить пароль, надо их где-то хранить, вариантов всего два
Local backend
Хэши паролей (bcrypt) будут храниться прямо в БД. Для включения такого режима нужно выставить параметр
'localAuth'=>true, //включить локальную БД паролей
LDAP backend
Для этого локальное хранение паролей должно быть отключено:
'localAuth'=>false, //включить локальную БД паролей
Настройки LDAP указываются следующим образом:
нужно создать файл config/ldap.php следующего содержания:
<?php
return [
'class'=>'Edvlerblog\Adldap2\Adldap2Wrapper',
'providers'=> [
'default'=>[
'autoconnect'=>true,
'config'=>[
'port' => 636,
//'port' => 389,
'hosts' => ['dc1.domain.local','dc2.domain.local'],
'account_suffix' => '@domain.local',
'base_dn' => "DC=domain,DC=local",
//под кем подключиться к АД (подойдет любой пользователь. права админа не нужны)
'username' => 'inventory@domain.local',
'password' => 'SuperSecretPassword1!',
'use_ssl' => true,
'use_tls' => true,
'custom_options' => [
// See: http://php.net/ldap_set_option
LDAP_OPT_X_TLS_REQUIRE_CERT => LDAP_OPT_X_TLS_NEVER
],
],
],
],
];
Быстрый старт
- Стартуем приложение без контроля доступа
php
'authorizedView'=>false,
'useRBAC'=>false,
- Заводим пользователя вручную (на этом этапе для этого не нужно ни полномочий ни авторизации), допустим это пользователь pupkin
- Настраиваем аутентификацию (включаем локальную или настраиваем LDAP)
- В случае локальной аутентификации создаем(сбрасываем) пароль созданному пользователю pupkin
- Включаем RBAC
php
'useRBAC'=>true,
- Если роль admin еще не создана (при установке шаг «Роли» был пропущен) — создаем:
bash
php yii rbac/init
либо при работе в докер контейнере
bash
docker exec -it "arms-arms-app-1" php yii rbac/init
- Выдаем pupkin права админа из консоли
bash
php yii rbac/grant admin pupkin
либо при работе в докер контейнере
bash
docker exec -it "arms-arms-app-1" php yii rbac/grant admin pupkin
- Авторизуемся под pupkin
- ???
- PROFIT
Params
Дополнительные параметры определяются в файле config/params-local.php в формате
<?php
return [
'param'=>'value',
];
Значения по умолчанию (и полный перечень параметров) можно посмотреть в файле config/params.php.
Авторизация/аутентификация
- authorizedView: true|false требовать авторизации для работы с системой
- useRBAC: true|false использовать разграничение прав на базе ролей
- localAuth: true|false использовать локальную БД паролей для авторизации (иначе LDAP)
Настройки генератора номеров оборудования
techs.invNumStrPads: количество знаков числовой части инвентарного номера в зависимости от количества префиксов. Default: [9,6,4] - без префикса 9, с одним префиксом 6, с двумя 4; последнее значение действует и для большего числа префиксов.
Пример:
000000001 //0 префиксов - 9 цифр
МСК-000001 //1 префикс - 6 цифр
МСК-ПРН-0001 //2 префикса - 4 цифры
МСК-IT-ПРН-0001 //3 префикса также 4 цифры
- techs.prefixFormat: формат автоматического формирования префикса инв. номера. Default:
['place','org','type'] - сначала префикс помещения, потом организации-владельца оборудования, потом тип оборудования
- techs.invNumMaxLen: максимальная длина в которую будет пытаться уложиться формирование инв. номера уменьшая по возможности. Default: 15 (Внимание, макс. размер поля - 16 знаков)
Дополнительная маркировка
- techs.uidLabel: название дополнительной маркировки оборудования. Напр. QR-код, Штрих-код. Default: Доп. маркировка
- techs.uidHint: подсказка для заполнения дополнительной маркировки оборудования. Default: Какая-либо дополнительная маркировка нанесенная на оборудование
Сети
- networkDescribeSegment: показывать описание сегмента сети на страничке сети. Default: auto
- true - да
- false - нет
- auto - если нет описания самой сети
- networkInlineDescriptionLimit: максимальное количество строк описания сети которое выводить прямо на страничку. Все что больше будет скрыто во вкладку на страничке. Default: 20
Домены
- domains.default: какой домен подставлять в ОС и оборудование, если домен явно не указан. Default: workgroup
- domains.fqdn_hostname: true|false отображать hostname как FQDN (иначе как DOMAIN\host). Default: false
Подразделения
- departments.enable: включить использование функциональных подразделений (если оргструктура организаций не отображает функционального разделения на отделы)
- true - включить
- false - выключить (по умолч.)
Ответственные/поддержка
- support.service.min.weight: минимальный вес сервиса, необходимый для учета его команды как поддержка узла/оборудования на котором он живет. Например если задать тут 20, то команда сервиса весом в 10 не будет считаться поддержкой серверов и оборудования сервиса (предполагается что там должны быть более весомые сервисы для этого)
- techs.managementService.enable: вместо закрепления сотрудника ИТ за оборудованием закреплять сервис/услугу сопровождения оборудования (удобно если оборудования много и надо менять ответственного везде: проще поменять одного ответственного за сервис)
- services.no_backup.warn: true|false предупреждать, если у сервиса не объявлены требования на резервное копирование. Default: true
Пользователи
- user.name_as_uid.enable: true|false разрешить использование полного ФИО как ключа для переназначения логина при синхронизации пользователей. Default: false
Софт
- soft.deferred_rescan: отложенный рескан софта: в случае изменения состава ПО необходимо пересканировать все ОС на предмет наличия там этого ПО. В случае большого количества ОС - процедура весьма медленная.
- true - отложенный режим: при изменении элемента ПО в справочнике ПО только список ОС для rescan. Необходимо через cron регулярно вызывать команду yii comps/rescan, которая будет сканировать по 100 ОС за раз
- false - realtime режим: при изменении элемента ПО в справочнике ПО все ОС будут проверены заново на состав ПО.
Интеграция с Wiki
- wikiUrl: адрес dokuWiki для интеграции
- wikiUser: логин для подключения к dokuWiki
- wikiPass: пароль для подключения к dokuWiki
- confluenceUrl, confluenceUser, confluencePass: аналогичные параметры для подключения Confluence (см. интеграцию с wiki)
Документы
- docs.pay_id.enable - Использовать поле для идентификации документа в реестре оплат (для отслеживания оплаты)
- docs.pay_id.name - Наименование ключа в реестре оплат ЗНП
- docs.name.instruction - Инструкция для правильного формирования имени документа
- docs.max_preview_size - Предельный размер документа больше которого он не подгружается в форму просмотра, а требует клика для открытия.
Документация
- docsOverridePath: путь к каталогу переопределения встроенной документации. Встроенная справка приложения - MD-файлы в docs/help; если указать здесь каталог с той же структурой, его страницы будут иметь приоритет над встроенными (можно переопределять и дополнять справку под свою организацию).