{{tag>Инвентаризация}} ====== Инвентаризация: Настройка ====== ===== Авторизация ==== Приложение поддерживает следующие режимы авторизации пользователей: * **Отсутствие контроля прав** - в таком режиме можно выполнять все действия может любой человек получивший веб доступ (ограничения могут быть настроены на уровне авторизации веб сервера или ограничения по IP). Приложение работает в таком режиме по умолчанию * **Требование аутентификации для работы** - для доступа к данным нужно будет пройти аутентификацию, выполнив "Вход". Для этого должна быть настроена [[#аутентификация]] и выставлен параметр 'authorizedView'=>false, //аутентификация достаточна для авторизации * false - (по умолчанию) не требовать аутентификацию, * true - требовать аутентификацию для работы * **RBAC** - Role Based Access Control, в таком режиме каждому пользователю необходимо задавать разрешения, на просмотр, редактирование и изменение доступа пользователей. Для этого должна быть настроена [[#аутентификация]] и выставлен параметр'useRBAC'=>false, //включить RBAC и выдавать права только тем кому они явно назначены * false - (по умолчанию) ничего не требовать - у всех полные права * true - права назначаются явно каждому пользователю, по умолчанию никто ничего не может (если включено authorizedView, то авторизованные получают роль viewer) Комбинации аутентификации и RBAC: ^ authorizedView ^ useRBAC ^ результат ^ | false | false | аутентификации, авторизации и ограничений в правах нет - всем можно все | | true | false | аутентификация требуется, полные права у всех аутентифицированных | | false | true | аутентификация не требуется, но без нее права только на просмотр, остальные нужно выдавать явно и они будут предоставлены только после аутентификации | | true | true | аутентификация требуется, и никаких прав по умолчанию нет, все права нужно выдавать явно | ===== Аутентификация ===== Чтобы пользователь мог вводить пароль, надо их где-то хранить, вариантов всего два ==== Local backend ==== Хэши паролей зашифрованные Blowfish будут храниться прямо в БД. Для включения такого режима нужно выставить параметр'localAuth'=>true, //включить локальную БД паролей ==== LDAP backend ==== Для этого локальное хранение паролей должно быть отключено: 'localAuth'=>false, //включить локальную БД паролей Настройки LDAP указываются следующим образом: нужно создать файл config/ldap.php следующего содержания: 'Edvlerblog\Adldap2\Adldap2Wrapper', 'providers'=> [ 'default'=>[ 'autoconnect'=>true, 'config'=>[ 'ad_port' => 636, //'ad_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 ], ], ], ], ]; ==== Быстрый старт ==== * Стартуем приложение без контроля доступа 'authorizedView'=>false, 'useRBAC'=>false, * Заводим пользователя вручную (на этом этапе для этого не нужно ни полномочий ни авторизации), допустим это пользователь **pupkin** * Настраиваем аутентификацию (включаем локальную или настраиваем LDAP) * В случае локальной аутентификации создаем(сбрасываем) пароль созданному пользователю **pupkin** * Включаем RBAC'useRBAC'=>true, * Выдаем **pupkin** права админа из консоли php yii rbac/grant admin pupkin либо при работе в докере контейнере docker exec -it "armsdocker-app-arms-app-1" php yii rbac/grant admin pupkin * Авторизуемся под **pupkin** * ??? * PROFIT ===== Params ===== Дополнительные параметры определяются в файле config/params.local.php в формате 'value', ]; === Авторизация/аутентификация === * **authorizedView**: //true|false// требовать авторизации для работы с системой * **useRBAC**: //true|false// использовать разграничение прав на базе ролей * **localAuth**: //true|false// использовать локальную БД паролей для авторизации (иначе LDAP) === Настройки генератора номеров оборудования === * **techs.invNumStrPads**: количество знаков числовой части инвентарного номера в зависимости от количества префиксов. Default: [9,6,4,4] - без префикса 9, с одним префиксом 4, с двумя 4, дальше также 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** === Подразделения === * **departments.enable**: включить использование функциональных подразделений (если оргструктура организаций не отображает функционального разделения на отделы) * true - включить * false - выключить (по умолч.) === Ответственные/поддержка === * **support.service.min.weight**: минимальный вес сервиса, необходимый для учета его команды как поддержка узла/оборудования на котором он живет. Например если задать тут 20, то команда сервиса весом в 10 не будет считаться поддержкой серверов и оборудования сервиса (предполагается что там должны быть более весомые сервисы для этого) * **techs.managementService.enable**: вместо закрепления сотрудника ИТ за оборудованием закреплять сервис/услугу сопровождения оборудования (удобно если оборудования много и надо менять ответственного везде: проще поменять одного ответственного за сервис) === Софт === * **soft.deferred_rescan**: отложенный рескан софта: в случае изменения состава ПО необходимо пересканировать все ОС на предмет наличия там этого ПО. В случае большого количества ОС - процедура весьма медленная. * true - отложенный режим: при изменении элемента ПО в справочнике ПО только список ОС для rescan. Необходимо через cron регулярно вызывать команду yii comps/rescan, которая будет сканировать по 100 ОС за раз * false - realtime режим: при изменении элемента ПО в справочнике ПО все ОС будут проверены заново на состав ПО. === Интеграция с Wiki === * **wikiUrl**: адрес dokuWiki для [[инвентаризация:интеграции:интеграция с dokuWiki|интеграции]] * **wikiUser**: логин для подключения к dokuWiki * **wikiPass**: пароль для к dokuWiki