Меню

Установка и настройка мастера на сервере Windows

Настройки сервера, необходимые перед установкой PIX Master
Установка IIS
Для начала, на только что созданном севере, необходимо включить доступность IIS для настройки. если IIS уже доступен, то этот раздел можно пропустить.
(1) В диспетчере серверов нажать на кнопку "Добавить роли и компоненты":
(2) Пройти дальше по настройкам
(3) Включить настройки IIS
(4) Завершить установку компонентов.
Установка .Net Core
Для работы PIX Master необходим .Net Core Hosting Bundle.
Скачать дистрибутив можно по ссылке:
Download .NET Core 3.0 (Linux, macOS, and Windows)
Установка MSSQL Server
(1) Скачать установщик MSSQL Server: Материалы для скачивания по SQL Server | Microsoft
(2) Пошагово установить нужную версию приложения.
При установке обязательно указать установку SQL Server Management Studio.
Установка PIX Master с помощью пакета установщика
Ссылка для скачивания мастера предоставляется по запросу.
Запускаем пакет установщика PIX Master. Появляется окно:
Нажать кнопку [Далее], в появившемся окне выбрать папку для установки программы:
Нажать кнопку [Далее], в окне "Параметры IIS" указать данные для развертывания приложения в IIS
- название приложения, название пула приложения и порт приложения.
Нажмите кнопку "Далее", затем кнопку "Установить". В результате приложение должно быть установлено в указанной папке, и в IIS должен быть развернут сайт с указанными параметрами в окне "Параметры IIS".
Настройка развернутого проекта
Для работы приложения необходимо настроить путь до его базы данных в конфигурации, а также настроить удостоверение пула для доступа к базе данных.
Настройка конфигурации приложения
Зайти в папку, куда было установлено приложение.
Найти и открыть файл "appsettings.json". Он должен иметь примерно следующее содержание:
{
"Provider": "MSSQL",
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=master_test;Trusted_Connection=True;MultipleActiveResultSets=true;Persist Security Info=False;",
"PostgreSqlConnection": "User ID=postgres;Password=1222212123;Host=localhost;Port=5432;Database=master_test;Pooling=true;"
},
"Logging": {
"LogLevel": {
"Default": "Warning",
"Hangfire": "Information"
}
},
"AllowedHosts": "*",
"PasswordValidationOptions": {
"RequiredLength": "8",
"RequireNonAlphanumeric": "true",
"RequireLowercase": "true",
"RequireUppercase": "true",
"RequireDigit": "true"
}
}

Для параметра "Provider" необходимо указать СУБД, которая будет использоваться.
Допустимые значения - MSSQL и PostgreSQL;

Для раздела ConnectionString нужно прописать один из параметров строки подключения к базе данных - DefaultConnection, если в параметре "Provider" выбрано значение MSSQL, или PostgreSqlConnection, если в параметре "Provider" указано значение PostgreSQL;

В разделе PasswordValidationOptions находятся настройки сложности пароля пользователя.
При отсутствии этого раздела в Мастере будут действовать настройки сложности пароля по умолчанию: минимальная длина пароля 8 символов, требуется наличие не буквенно-цифрового символа, буквы в нижнем и верхнем регистре, и цифры;
Параметр RequiredLength является числовым и отвечает за требование минимальной длины пароля.
Параметр RequireNonAlphanumeric является логическим (true/false) и отвечает за требование наличия не буквенно-цифрового символа в пароле;
Параметр RequireLowercase является логическим и отвечает за требование наличия буквы в нижнем регистре в пароле;
Параметр RequireUppercase является логическим и отвечает за требование наличия буквы в верхнем регистре в пароле;
Параметр RequireDigit является логическим и отвечает за требование наличия цифры в пароле.

После изменения параметров сложности пароля пользователя в конфигурации необходимо перезапустить пул приложения и изменения вступят в силу. По желанию, администратор может запросить смену пароля у всех пользователей в разделе настроек панели администратора, чтобы все пароли соответствовали новым требованиям.
Данные для входа в систему изначального пользователя-администратора:
Логин: admin
Пароль: Admin1Default@
Настройки пула приложения и подключения к базе данных
Настройка параметров пула приложения

По умолчанию для пула приложения установлен период времени, по истечению которого выполняется его перезапуск, что может привести к разрыву связи с подключенными агентами. Чтобы этого не происходило, нужно в меню дополнительных параметров пула приложения в пункте «Постоянный временный интервал (в минутах)» поставить значение «0».
Для корректного хранения криптографических ключей Мастера в пуле приложения для настройки «Загрузить профиль пользователя» должно стоять значение «True».
Настройка удостоверения пула приложения
Для корректной работы приложения с MS SQL Server необходимо, чтобы удостоверение его пула имело права для работы с базой данных.
Вариант 1 - особая учётная запись для удостоверения пула
Для того, чтобы изменить удостоверение пула приложения, зайти в раздел "Дополнительные параметры":
Выбрать пункт "Удостоверение":
При нажатии на кнопку для поля "Удостоверение" появится окно для настройки учетной записи - выбрать пункт "Особая учетная запись":
Затем нужно нажать "Установить" и заполнить данные для существующей учетной записи:
После настроек конфигурации и пула - перезапустить пул приложения:
Если у пользователя, настроенного для удостоверения приложения, есть доступ к СУБД, то при первом запуске приложения база данных будет создана автоматически.
Вариант 2 - предоставление доступа к базе данных для пула приложения
(удостоверение - ApplicationPoolIdentity)

(1) В MS SQL Server Managment Studio создать новую базу:
(2) В новой базе создать нового пользователя с именем
IIS APPPOOL\<Название пула, которое (будет) установлено в IIS>.
(3) Настроить для пользователя БД схему [dbo].
На закладке "Членство" дать пользователю права как на рисунке:
(4) Такого же пользователя (с таким же именем) необходимо создать для доступа к SQL Server
(5) В ролях установить чек-бокс только у роли public:
Настройка аутентификации по Active Directory
Для корректной работы аутентификации по Active Directory необходимо настроить проверку подлинности для сайта.
В разделе "Проверка подлинности" настроек сайта нужно включить проверку подлинности Windows как показано на рисунке:
Для связи пользователя Мастера с учётной записью Active Directory в меню редактирования пользователя необходимо активировать настройку «Использовать аутентификацию по Active Directory» и выбрать в меню учётную запись AD, которая будет привязана к пользователю Мастера.
Настройка аутентификации по OpenID
Для появления в Мастере настроек, связанных с интеграцией с провайдером OpenID, в файл конфигурации appsettings.json необходимо добавить раздел с настройками OAuth следующего вида:
"OAuth": {
"AuthorizationEndpoint": "https://domain.com/authorize",
"UserInfoEndpoint": "https://domain.com/userinfo",
"TokenEndpoint": "https://domain.com/oauth/token",
"ClientId": "someId",
"ClientSecret": "someClientSecret"
}


  • AuthorizationEndpoint – адрес авторизации в провайдере OpenID
  • UserInfoEndpoint – адрес API для получения информации о пользователе
  • TokenEndpoint – адрес API для получения токена
  • CliendId – идентификатор приложения в провайдере OpenID
  • ClientSecret – секрет приложения в провайдере OpenID
В самом провайдере OpenID может понадобится указать адрес обратного вызова (callback). Относительный путь этого адреса - "/openid/callback".
Если всё настроено правильно, в меню редактирования пользователя должна появиться настройка интеграции с OpenID:
Для того, чтобы пользователь имел возможность войти с помощью OpenID, необходимо активировать опцию «Использовать аутентификацию по OpenID» и указать идентификатор пользователя во внешней системе. После этого пользователь сможет зайти в систему по кнопке OpenID на странице логина:
Раздел настроек Мастера.
В меню администрирования находится раздел «Настройки», отвечающий за настройки приложения в целом.
Настройка «Использовать подтверждение почты пользователя» позволяет включить отправку писем с подтверждением регистрации, при этом пользователи с неподтверждённой почтой не смогут войти в систему. При включении этой настройки у всех пользователей, которые уже есть в системе, будет проставлен признак подтверждения регистрации, таким образом им не нужно будет подтверждать почту. Для работы отправки писем необходимо заполнить параметры в разделе «Настройка почтового сервера».

Кнопка [Сменить секретный ключ] позволяет сменить ключ криптографии, использующийся для шифрования данных типа Credential и паролей в других частях системы, хранящихся в базе данных.

Кнопка [Запросить смену пароля у всех пользователей] обязывает всех пользователей сменить пароль при входе в систему.
Настройка сертификата
Выпуск локального сертификата
Вариант 1 - выпуск сертификата через скрипт.
1) Запустите PowerShell
2) Выполните поочередно скрипт (примечание: необходимо, чтобы DNS совпадало с адресом, по которому публикуется сайт):

# setup certificate properties including the commonName (DNSName) property for Chrome 58+
$certificate = New-SelfSignedCertificate `
-Subject pixrpa `
-DnsName VPS-2002 `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-NotBefore (Get-Date) `
-NotAfter (Get-Date).AddYears(2) `
-CertStoreLocation "cert:CurrentUser\My" `
-FriendlyName "pixrpa" `
-HashAlgorithm SHA256 `
-KeyUsage DigitalSignature, KeyEncipherment, DataEncipherment `
-TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
$certificatePath = 'Cert:\CurrentUser\My\' + ($certificate.ThumbPrint)
# create temporary certificate path
$tmpPath = "C:\tmp"
If(!(test-path $tmpPath))
{
New-Item -ItemType Directory -Force -Path $tmpPath
}
# set certificate password here
$pfxPassword = ConvertTo-SecureString -String "11111" -Force -AsPlainText
$pfxFilePath = "c:\tmp\pixpra.pfx"
$cerFilePath = "c:\tmp\pixpra.cer"
# create pfx certificate
Export-PfxCertificate -Cert $certificatePath -FilePath $pfxFilePath -Password $pfxPassword
Export-Certificate -Cert $certificatePath -FilePath $cerFilePath
# import the pfx certificate
Import-PfxCertificate -FilePath $pfxFilePath Cert:\LocalMachine\My -Password $pfxPassword -Exportable
# trust the certificate by importing the pfx certificate into your trusted root
Import-Certificate -FilePath $cerFilePath -CertStoreLocation Cert:\CurrentUser\Root
3) Теперь созданный сертификат можно подгрузить в IIS
4) Подгруженный сертификат, необходимо установить для доступа к сайту(вместо значения по умолчанию).
5) Переопубликуйте сайт и проверьте доступность через браузер.
Вариант 2 - выпуск сертификата через интерфейс IIS
(1) Откройте IIS и кликните на корневой узел серверов
(2) Двойной клик на компоненте "Сертификаты сервера" (Server Certificates)
Главное окно IIS
(3) Перейти в пункт "Выпустить самозаверенный сертификат" (Create Self-Signed Certificate)
Окно управления сертификатами сервера
(4) В открывшемся окне задать имя сертификата и выбрать хранилище размещения веб-служб
Окно настроек создаваемого сертификата
(5) После нажатия кнопки "Ок" видим, что сертификат появился в списке доступных сертификатов.
Список доступных сертификатов
(6) Сертификат необходимо установить для доступа к сайту (вместо значения по умолчанию)
7) Переопубликуйте сайт и проверьте доступность через браузер.
Настройка сертификата на стороне клиента (Агента)
Так как соединение производится через защищенный канал, прежде чем подключить Агента к Мастеру, необходимо добавить сертификат Мастера в доверенные на компьютере, где установлен Агент.
(1) Проверьте доступность сайта из браузера.
(2) Скачайте сертификат, который вызывает конфликт с Chrome.
(3) Установить сертификат в доверенные у текущего пользователя.
(4) Проверьте подключение к Мастеру из агента (Agent.exe).