Установка Avanpost IDM на RedOS

Документация Avanpost IDM 7 : 4.1. Установка Avanpost IDM на RedOS

Навигатор по разделу:

1. Требования к программному обеспечению 

Операционная система

RedOS 

СУБДPostgreSQL 13 и выше
Веб-серверAngie 1.6 и выше
Среда исполнения
  • aspnetcore-runtime;
  • dotnet-runtime.

2. Подготовка к установке

Перед установкой Avanpost IDM необходимо подготовить сервер. Для этого требуется:

  1. На сервере настроить сеть и обеспечить доступ к Интернету для установки необходимых компонентов.
  2. Во внутренний DNS добавить три A записи для компонентов IDM по шаблону:
Шаблон A записей для компонентов IDM
adm.[внутренний домен компании] - [IP адрес сервера IDM]
user.[внутренний домен компании] - [IP адрес сервера IDM]
idm.[внутренний домен компании] - [IP адрес сервера IDM]
Пример A записей для компонентов IDM
adm.avanpost.local - 192.168.1.11
user.avanpost.local - 192.168.1.11
idm.avanpost.local - 192.168.1.11

3. Установка Avanpost IDM

После подготовки сервера можно переходить к установке Avanpost IDM. Для этого необходимо подключиться к подготовленному серверу по SSH и выполнить шаги:

Шаг 1. Установить PostgreSQL и развернуть БД

Примечание:

Дополнительная информация по установке PostgreSQL: https://www.postgresql.org/download/linux/redhat/

Для этого требуется:

1.1. Установить пакет PostgreSQL и активировать поток модуля:

sudo dnf install postgresql13-server
sudo postgresql-13-setup initdb 

1.2. Инициализировать БД и включить автоматический старт:

sudo systemctl enable postgresql-13.service --now
sudo systemctl start postgresql-13.service
sudo systemctl status postgresql-13.service

1.3. Создать учётную запись в ОС для подключения к БД.

Далее в качестве примера используется логин "db_idm_user".

  • Задать имя учетной записи и пароль к ней в соответствии с внутренними правилами именования сервисных УЗ и парольных политик.
  • Сохранить логин и пароль в соответствии с внутренними правилами. 

1.4. В БД PostgreSQL создать пользователя "db_idm_user" с привилегиями суперпользователя:

sudo -u postgres createuser --superuser --interactive --pwpromp db_idm_user
# задать пароль  

1.5. Создать новую базу данных с именем "idm":

sudo -u postgres createdb idm

Шаг 2. Настроить конфигурацию PostgreSQL

Для настройки подключения к БД с аутентификацией пользователя по паролю требуется:

2.1. Открыть для редактирования конфигурационный файл "/var/lib/pgsql/data/pg_hba.conf":

sudo nano /var/lib/pgsql/13/data/pg_hba.conf

2.2. В конфигурационном файле заменить тип аутентификации для local и host подключений на "md5". Для этого необходимо:

Закомментировать строки, дописав # в начало:

/var/lib/pgsql/data/pg_hba.conf
local   all             all                                     peer
host    all             all             127.0.0.1/32            ident

Добавить строки:

/var/lib/pgsql/data/pg_hba.conf
local   all             all                                     md5
host    all             all             0.0.0.0/0            md5

2.3. Перезапустить PostgreSQL:

sudo systemctl restart postgresql-13.service

2.4. Протестировать подключение:

psql -U db_idm_user idm
--/Ввести пароль/--
idm=> \q

Шаг 3. Установить Angie

Примечание:

Дополнительная информация по установке: https://angie.software/angie/docs/installation/oss_packages/#install-yum-oss

Для этого требуется:

3.1. Создать и открыть для редактирования файл "/etc/yum.repos.d/angie.repo":

sudo nano /etc/yum.repos.d/angie.repo

3.2. Поместить в файл "/etc/yum.repos.d/angie.repo" следующее:

/etc/yum.repos.d/angie.repo
[angie]
name=Angie repo
baseurl=https://download.angie.software/angie/redos/$releasever/
gpgcheck=1
enabled=1
gpgkey=https://angie.software/keys/angie-signing.gpg.asc

3.3. Установить пакет "angie":

sudo yum install -y angie

3.4. Запустить сервис "angie" и добавить его в автозапуск:

sudo systemctl start angie
sudo systemctl enable angie

3.5. Разрешить локальный проброс портов:

sudo setsebool -P httpd_can_network_connect 1

Шаг 4. Настроить Firewalld

Если установлен Firewalld, выполнить настройки ниже

Для этого требуется добавить доступ к протоколам HTTP и HTTPS в зону "public" с помощью команд:

sudo firewall-cmd --zone=public --add-service=http
sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https

Шаг 5. Создать пользователя "avanpost"

Для этого необходимо выполнить команду:

sudo useradd -M avanpost

Шаг 6. Создать каталог для приложения и настроить доступ к нему

Для этого необходимо выполнить команды:

sudo mkdir -p /opt/avanpost/
sudo chown -R avanpost:avanpost /opt/avanpost

Шаг 7. Установить aspnetcore-runtime и dotnet-runtime

Примечание:

Дополнительная информация по установке: https://docs.microsoft.com/ru-ru/dotnet/core/install/linux-rhel#supported-distributions

Для этого требуется:

7.1. Установить пакеты:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
sudo dnf install dotnet-sdk-8.0 -y

7.2. Проверить установку с помощью команды:

dotnet --info
Пример корректного вывода команды
dotnet --info 
>.NET SDKs installed:
>  8.0.100 [/usr/share/dotnet/sdk]
>.NET runtimes installed:
>  Microsoft.AspNetCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
>  Microsoft.NETCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Шаг 8. Распаковать дистрибутив

Для этого требуется:

8.1. Авторизоваться под пользователем "avanpost":

sudo su - avanpost

8.2. Перейти в каталог "/opt/avanpost":

cd /opt/avanpost

8.3. Добавить файл дистрибутива IDM Base в каталог "/opt/avanpost".

8.4. Создать каталог "/opt/avanpost/idm":

mkdir /opt/avanpost/idm

8.5. Распаковать архив с дистрибутивом с помощью команды по шаблону:

Шаблон команды
unzip Avanpost.Idm.[Version].zip -d idm

Заменить в команде [Version] на номер актуальной версии Avanpost IDM.

8.6. Создать каталог конфигурации "/opt/avanpost/config":

mkdir /opt/avanpost/config

8.7. Создать каталог для коннекторов "/opt/avanpost/connectors":

mkdir /opt/avanpost/connectors

8.8. Сгенерировать ключ шифрования:

dd if=/dev/urandom bs=32 count=1 | base64 > /opt/avanpost/config/key

8.9. Разместить файл лицензии "license.xml" в каталоге "/opt/avanpost/config" с помощью SFTP клиента.

Примечание:

Вместо SFTP можно воспользоваться командой scp:

Шаблон команды
scp [Путь до файла] [реквизиты для подключения по SSH]:[Полный путь папки назначения]

Шаг 9. Настроить файлы конфигурации

Для этого требуется:

9.1. Для создания новой конфигурации скопировать файл "idm/configs/config.example" в "/opt/avanpost/config/iga.config" и открыть его для редактирования:

cp idm/configs/config.example /opt/avanpost/config/iga.config 
nano config/iga.config

9.2. Установить значения параметров в соответствии с таблицей: 

Таблица – Описание и настройка параметров конфигурационного файла

ПараметрОписаниеЗначение
connectorsFolder

Путь к папке хранения коннекторов

Указать /opt/avanpost/connectors

rootUserПривилегированный пользователь в домене

Указать логин пользователя по шаблону:  [Realm]\\[логин]

defaultRealm

Домен по умолчанию. Realm определяет область аутентификации пользователей.

Например: avanpost.local
hostIP адрес сервера каталога LDAPНапример: 192.168.1.44
bindDN

DN для привязки к LDAP-серверу (DN – идентифицирующее имя объекта в LDAP-директории)

Полный DN в формате: cn=[Имя],dc=[Домен2ур],dc=[Домен1ур]

passwordПароль пользователяУказать пароль пользователя
usersBase

Определяет базовый путь в структуре LDAP-директории, где хранятся и обрабатываются данные пользователей, используемые для процесса аутентификации.

Указать путь до директории
userNameAttribute

Задает атрибут, который будет использоваться для идентификации имени пользователя при аутентификации.


Параметр не требуется для управляемой системы MS Active Directory, и может быть удален из конфигурации.
connectionString

Строка подключения к БД

Указать строку по шаблону:
host=127.0.0.1;database=idm;username=db_idm_user;password=[пароль пользователя db_idm_user]

9.3. Создать файлы конфигурации кластера:

cp idm/configs/idm/cluster.idm.config.json /opt/avanpost/config/idm-cluster.config
cp idm/configs/iga/cluster.iga.config.json /opt/avanpost/config/iga-cluster.config 

Шаг 10. Настроить сервисы "idm" и "iga"

Для этого требуется:

10.1. Скопировать пример файла конфигурации сервиса "idm" в каталог "systemd":

sudo cp /opt/avanpost/idm/configs/idm/idm.service /etc/systemd/system/idm.service

10.2. Скопировать пример файла конфигурации сервиса "iga" в каталог "systemd":

sudo cp /opt/avanpost/idm/configs/iga/iga.service /etc/systemd/system/iga.service

10.3. Открыть для редактирования файл "/etc/systemd/system/iga.service":

sudo nano /etc/systemd/system/iga.service

10.4. Заполнить файл "/etc/systemd/system/iga.service" по примеру:

[Unit]
Description=IGA App

[Service]
WorkingDirectory=/opt/avanpost/idm/web
ExecStart=/usr/bin/dotnet /opt/avanpost/idm/web/Avanpost.Idm.Selfservice.WebHost.dll
Restart=always
RestartSec=10
SyslogIdentifier=iga
User=avanpost
# В строке ниже задается локальный порт на котором будет подниматься приложение
Environment="ASPNETCORE_URLS=http://localhost:5001/;http://localhost:5002/"
Environment="ASPNETCORE_ENVIRONMENT=Production"
Environment="DOTNET_PRINT_TELEMETRY_MESSAGE=false"
Environment="IGA_CFG=/opt/avanpost/config/iga.config"
Environment="CLUSTER_CFG=/opt/avanpost/config/iga-cluster.config"

[Install]
WantedBy=multi-user.target

10.5. Добавить сервисы "idm" и "iga" в автозапуск и запустить их:

sudo systemctl daemon-reload
sudo systemctl enable idm
sudo systemctl enable iga
sudo systemctl start idm
sudo systemctl start iga

Шаг 11. Настроить Angie

Для этого требуется:

11.1. Открыть файл конфигурации Angie "/etc/angie/angie.conf" для редактирования:

sudo nano /etc/angie/angie.conf

11.2. В секцию http записать значение:

        map $http_upgrade $connection_upgrade {
                default upgrade;
                "" close;
        }

11.3. Скопировать пример файла конфигурации Angie в "/etc/angie/http.d/avanpost.conf":

sudo cp /opt/avanpost/idm/configs/idm/idm.conf.angie /etc/angie/http.d/avanpost.conf

11.4. Открыть конфигурационный файл "/etc/angie/http.d/avanpost.conf" для редактирования:

sudo nano /etc/angie/http.d/avanpost.conf

11.5. В конфигурационном файле "/etc/angie/http.d/avanpost.conf" указать доменные имена для сервисов, которые перенаправляются Angie: 

ПараметрЗначение
server_name

Адрес сервиса IDM для обращения к нему сервиса коннекторов в режиме обратного соединения в формате "idm.[ваш домен]"

server_name

Адрес web-интерфейса администрирования в формате "adm.[ваш домен]"

server_name

Адрес web-интерфейса пользователя в формате "user.[ваш домен]"

[ваш домен] заменить на фактическое доменное имя

Примечание:

Angie выполняет анализ запрашиваемого доменного имени и перенаправляет запрос на соответствующий порт, где запущен нужный сервис.

11.6. Проверить конфигурацию с помощью команды:

sudo angie -t
Пример корректного вывода команды
# angie: the configuration file /etc/angie/angie.conf syntax is ok
# angie: configuration file /etc/angie/angie.conf test is successful

11.7. Перезапустить Angie:

sudo systemctl restart angie

Шаг 12. Проверить работу сервера

Для проверки необходимо:

12.1. Открыть веб-браузер и перейти по адресу "http://adm.[ваш домен]" (заменить [ваш домен] на фактическое доменное имя, настроенное на шаге 11.5 данной инструкции).

12.2. Аутентифицироваться с использованием учетной записи, данные которой были указаны в файле "iga.config" в параметре "rootUser" на шаге 9.2 данной инструкции.

12.3. Перейти по адресу "http://user.[ваш домен]" (заменить [ваш домен] на фактическое доменное имя, настроенное на шаге 11.5 данной инструкции).

12.4. Аутентифицироваться с использованием учетной записи, данные которой были указаны в файле "iga.config" в параметре "rootUser" на шаге 9.2 данной инструкции.

Шаг 13. Загрузить конфигурацию

После завершения установки и проверки работы сервера выполнить загрузку конфигурации через интерфейс администратора IDM Base:

1. Перейти в раздел "Администрирование" → "Миграция данных".

2. Переключиться на вкладку "Импорт".


3. Нажать "Выбрать архив конфигураций" и выбрать файл для загрузки: configs\Idm.Base.Configuration.zip.

Установка IDM Base завершена. Можно приступать к настройке кадровых источников.

Примечание:

Подробнее о кадровых источниках см. статью "5.1.3. Настройка кадровых источников" руководства по администрированию

4. Дополнительная информация по настройке

Обсуждение