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

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

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

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

Astra Linux 1.8.2

СУБДPostgreSQL 15
Веб-сервер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. Создать каталог Avanpost IDM и настроить права

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

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

Шаг 2. Установить пакеты .Net Core

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

sudo apt install dotnet-sdk-8.0
sudo apt install aspnetcore-runtime-8.0

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

dotnet --info
Пример вывода команды
dotnet --info

ПАКЕТ SDK ДЛЯ .NET:
 Version:           8.0.121
 Commit:            5b9595625d
 Workload version:  8.0.100-manifests.21648041

Host:
  Version:      8.0.21
  Architecture: x64
  Commit:       362ab6669d

.NET SDKs installed:
  8.0.121 

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.21 
  Microsoft.NETCore.App 8.0.21 

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

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

3.1. Установить пакет PostgreSQL:

sudo apt update 
sudo apt install postgresql-15

3.2. Включить автоматический старт БД:

sudo systemctl start postgresql
sudo systemctl enable postgresql

3.3. Создать учётную запись для подключения к БД. Задать имя учетной записи и пароль к ней в соответствии с внутренними правилами именования сервисных УЗ и парольных политик.

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

3.4. В БД PostgreSQL создать пользователя "db_idm_user" с привилегиями суперпользователя и создать новую базу данных с именем "idm" с помощью команд:

sudo -u postgres createuser --superuser --interactive --pwpromp db_idm_user
# задать и подтвердить пароль 
sudo -u postgres createdb idm

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

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

4.1. Открыть для редактирования конфигурационный файл "pg_hba.conf":

Необходимо заменить в команде [ВЕРСИЯ] на номер версии PostgreSQL.


sudo nano /etc/postgresql/[ВЕРСИЯ]/main/pg_hba.conf

Для поиска файла "pg_hba.conf" можно выполнить команду:

find / -name 'pg_hba.conf' 2>/dev/null
Пример вывода команды
> /etc/postgresql/[ВЕРСИЯ]/main/pg_hba.conf

4.2. В конфигурационном файле "pg_hba.conf" заменить тип аутентификации для local и host (IPv4) подключений на md5.

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

    1. Закомментировать строки, дописав "#" в начало:
      local        all        all                                peer
      host        all        all        127.0.0.1/32    ident
    2. Добавить строки:
      local        all        all                         md5
      host        all        all        0.0.0.0/0    md5

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

sudo systemctl restart postgresql

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

psql -U db_idm_user idm
# Ввести ранее созданный пароль пользователя db_idm_user
idm=# \q

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

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

5.1. Скачать открытый ключ репозитория Angie для проверки подлинности загружаемых пакетов с помощью команды:

sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg

5.2. Подключить репозиторий Angie с помощью команды:

echo "deb https://download.angie.software/angie/astra-se/$(egrep -o \
       '[0-9]+.[0-9]+' /etc/astra_version) unstable main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null

5.3. Обновите индексы репозиториев:

sudo apt-get update

5.4. Установите пакет Angie:

sudo apt-get install -y angie

5.5. Включить сервис Angie и добавить его в автозапуск:

sudo systemctl start angie
sudo systemctl enable angie

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

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

sudo useradd -M avanpost

Шаг 7. Установить дистрибутив Avanpost IDM

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

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

sudo su - avanpost

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

cd /opt/avanpost

7.3. Скачать дистрибутив:

wget --user=student --ask-password https://packages.avanpost.ru/repository/IDM-enterprise/stable/7/Avanpost.Idm.v7.8.0%2B04bde12f00.zip
Password for user ‘student’: Avanp0st 

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

mkdir /opt/avanpost/idm

7.5. Разархивировать дистрибутив:

unzip Avanpost.Idm.v7.8.0%2B04bde12f00.zip -d idm

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

mkdir /opt/avanpost/config

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


mkdir /opt/avanpost/connectors

7.8. Поместить файл лицензии "license.xml" в каталог "/opt/avanpost/config" с помощью команды scp или удобного файлового менеджера.

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

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

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

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

8.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]

8.3. Произвести генерацию ключа шифрования и записать его в конфигурационный файл с помощью команды:

(dd if=/dev/urandom bs=32 count=1 | base64 > /opt/avanpost/config/key) && sed -i -e 's|/opt/avanpost/keys/key|/opt/avanpost/config/key|' -e 's|/opt/avanpost/hrconnectors|/opt/avanpost/connectors|' /opt/avanpost/config/iga.config

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

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 

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

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

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

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

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


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

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

[Unit]
Description=IDM Server
 
[Service]
WorkingDirectory=/opt/avanpost/idm/server
ExecStart=/usr/bin/dotnet /opt/avanpost/idm/server/IDM.Service.dll
Restart=always
RestartSec=10
SyslogIdentifier=idm
User=avanpost
Environment="ASPNETCORE_URLS=http://localhost:5000/"
Environment="IGA_CFG=/opt/avanpost/config/iga.config"
Environment="CLUSTER_CFG=/opt/avanpost/config/idm-cluster.config"
Environment="ASPNETCORE_ENVIRONMENT=Production"
Environment="DOTNET_PRINT_TELEMETRY_MESSAGE=false"
 
[Install]
WantedBy=multi-user.target

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

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

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

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

9.6. Заполнить файл "/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
# В строке ниже задается локальный порт на котором будет подниматься приложение, первым прописывается USER порт
Environment="ASPNETCORE_URLS=http://localhost:5002/;http://localhost:5001/"
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

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

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

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

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

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

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

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

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

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

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

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

server_name

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

server_name

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

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

Примечание:

Angie выполняет анализ запрашиваемого доменного имени и перенаправляет запрос на соответствующий порт, где запущен нужный сервис.
Пример /etc/angie/http.d/idm.conf
server {
    #idm
    listen        80;
    server_name   idm.avanpost.local;
    location / {
        proxy_pass         http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $http_host;
        proxy_cache_bypass $http_upgrade;
    }
}
 
server {
    #adm
    listen        80;
    server_name   adm.avanpost.local;
    location / {
        proxy_pass         http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $http_host;
        proxy_cache_bypass $http_upgrade;
    }
}
 
server {
    #user
    listen        80;
    server_name   user.avanpost.local;
    location / {
        proxy_pass         http://127.0.0.1:5002;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $http_host;
        proxy_cache_bypass $http_upgrade;
    }
}

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

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

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

sudo systemctl restart angie

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

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

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

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

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

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

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

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

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

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


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

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

Примечание:

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

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


Обсуждение