Меню

МАСТЕР - УСТАНОВКА И НАСТРОЙКА PIX MASTER НА СЕРВЕРЕ WINDOWS
Настройки сервера, необходимые перед установкой PIX Master

Установка IIS
Для начала, на только что созданном севере, необходимо включить доступность IIS для настройки. если IIS уже доступен, то этот раздел можно пропустить.
1) В диспетчере серверов нажать на кнопку "Добавить роли и компоненты"
2) Пройти дальше по настройкам
3) Включите настройки IIS
4) Завершите установку компонентов.
Установка .Net Core

Для работы PIX Master необходим Hosting Bundle для работы с приложениями .Net Core. Скачать дистрибутив можно по ссылке: Download .NET Core 3.0 (Linux, macOS, and Windows) (microsoft.com)
Установка 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».
Настройка удостоверения пула приложения

Для корректной работы приложения с MS SQL Server необходимо, чтобы удостоверение его пула имело права для работы с базой данных.
Вариант 1 - особая учётная запись для удостоверения пула

Для того, чтобы изменить удостоверение пула приложения, нужно зайти в раздел "Дополнительные параметры":
Там необходимо выбрать пункт "Удостоверение":
По нажатию на кнопке справа от данного пункта должно появиться окно для настройки учетной записи. Там нужно выбрать пункт "Особая учетная запись":
Затем нужно нажать "Установить" и прописать там данные для существующей учетной записи:
После настроек конфигурации и пула необходимо перезапустить пул приложения:
Если у пользователя, прописанного для удостоверения приложения, есть доступ к СУБД, то при первом запуске приложения база данных будет создана автоматически.
Вариант 2 - предоставление доступа к базе данных для пула приложения (удостоверение - ApplicationPoolIdentity)
1) В SQL Server Managment Studio создать новую базу
2) В новой базе необходимо создать нового пользователя с именем IIS APPOOL\<Имя WEB приложения, которое (будет) установлено в IIS>.
3) Дать пользователю БД схему [dbo]. А также на закладке "Членство" дать пользователю следующие права:
4) Такого же пользователя (с таким же именем) необходимо создать для доступа к SQL Server
5) Его права должны оставаться пустыми (только public)
Настройка аутентификации по Active Directory

Для корректной работы аутентификации по Active Directory необходимо настроить проверку подлинности для сайта.
В разделе "Проверка подлинности" настроек сайта нужно отключить анонимную проверку подлинности и включить проверку подлинности Windows, как показано на рисунке:
Настройка аутентификации по 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).