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

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

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

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

Alt 10 

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

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

Перед установкой 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

Установка Avanpost IDM

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

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

Примечание

Дополнительная информация по установке PostgreSQL

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

  1. Установить пакет PostgreSQL и активировать поток модуля:
    sudo apt-get install postgresql13-server
    sudo postgresql-13-setup initdb 
  2. Инициализировать БД и включить автоматический старт:
    sudo systemctl start postgresql
    sudo systemctl enable postgresql
  3. Создать УЗ в ОС для подключения к БД.
    В качестве примера используется логин "db_idm_user".

    Примечание

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

    Сохранить логин и пароль в соответствии с внутренними правилами. 

  4. В БД PostgreSQL создать пользователя "db_idm_user" с привилегиями суперпользователя:
    sudo -u postgres createuser --superuser --interactive --pwpromp db_idm_user
    # задать пароль  
  5. Создать новую базу данных с именем "idm":
    sudo -u postgres createdb idm

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

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

  1. Открыть для редактирования конфигурационный файл "/var/lib/pgsql/data/pg_hba.conf":
    sudo nano /var/lib/pgsql/data/pg_hba.conf
  2. В конфигурационном файле заменить тип аутентификации для local и host подключений на "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


  3. Перезапустить PostgreSQL:
    sudo systemctl restart postgresql.service
  4. Протестировать подключение:
psql -U db_idm_user idm
--/Ввести пароль/--
idm=> \q

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

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

  1. Установить пакет "nginx":
    sudo apt-get install nginx
    
  2. 3апустить сервис "nginx" и добавить его в автозапуск:
    sudo systemctl start nginx
    sudo systemctl enable nginx
  3. Разрешить локальный проброс портов:
sudo setsebool -P httpd_can_network_connect 1

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

Примечание

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

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

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save -f /etc/sysconfig/iptables

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

Выполнить команду:

sudo useradd -M avanpost

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

Выполнить команды:

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

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

  1. Установить пакет:
    sudo apt-get install dotnet-sdk-8.0
  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. Распаковать дистрибутив

  1. Авторизоваться под пользователем "avanpost":
    sudo su - avanpost
  2. Перейти в каталог "/opt/avanpost":
    cd /opt/avanpost
  3. Добавить файл дистрибутива IDM Base в каталог "/opt/avanpost".
  4. Создать каталог "/opt/avanpost/idm":
    mkdir /opt/avanpost/idm
  5. Распаковать архив с дистрибутивом с помощью команды по шаблону:
    Шаблон команды
    unzip Avanpost.Idm.[Version].zip -d idm
    Заменить в команде [Version] на номер актуальной версии Avanpost IDM.
  6. Создать каталог конфигурации "/opt/avanpost/config":
    mkdir /opt/avanpost/config

  7. Создать каталог для коннекторов "/opt/avanpost/connectors":
    mkdir /opt/avanpost/connectors
  8. Сгенерировать ключ шифрования:
    dd if=/dev/urandom bs=32 count=1 | base64 > /opt/avanpost/config/key
  9. Разместить файл лицензии "license.xml" в каталоге "/opt/avanpost/config" с помощью SFTP клиента.

    Примечание

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

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

Шаг 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
  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]

  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"

  1. Скопировать пример файла конфигурации сервиса "idm" в каталог "systemd":
    sudo cp /opt/avanpost/idm/configs/idm/idm.service /etc/systemd/system/idm.service
  2. Скопировать пример файла конфигурации сервиса "iga" в каталог "systemd":
    sudo cp /opt/avanpost/idm/configs/iga/iga.service /etc/systemd/system/iga.service
  3. Открыть для редактирования файл "/etc/systemd/system/iga.service":
    sudo nano /etc/systemd/system/iga.service
  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
  5. Добавить сервисы "idm" и "iga" в автозапуск и запустить их:
    sudo systemctl daemon-reload
    sudo systemctl enable idm
    sudo systemctl enable iga
    sudo systemctl start idm
    sudo systemctl start iga

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

  1. Открыть файл конфигурации Nginx "/etc/nginx/nginx.conf" для редактирования:
    sudo nano /etc/nginx/nginx.conf
  2. В секцию "http" добавить значение:
    map $http_upgrade $connection_upgrade {
                    default upgrade;
                    "" close;
            }
  3. Скопировать пример файла конфигурации Nginx в "/etc/nginx/sites-enabled.d/avanpost.conf":
    sudo cp /opt/avanpost/idm/configs/idm/idm.conf.nginx /etc/nginx/sites-enabled.d/avanpost.conf
  4. Открыть конфигурационный файл "/etc/nginx/sites-enabled.d/avanpost.conf" для редактирования:
    sudo nano /etc/nginx/sites-enabled.d/avanpost.conf
  5. В конфигурационном файле "/etc/nginx/sites-enabled.d/avanpost.conf" указать доменные имена для сервисов, которые перенаправляются Nginx:
    ПараметрЗначение
    server_name

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

    server_name

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

    server_name

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

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

    Примечание

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

  6. Проверить конфигурацию с помощью команды:
    sudo nginx -t
    
    Пример корректного вывода команды
    # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    # nginx: configuration file /etc/nginx/nginx.conf test is successful
  7. Перезапустить Nginx:
    sudo systemctl restart nginx

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

  1. Открыть веб-браузер и перейти по адресу "http://adm.[ваш домен]" (заменить [ваш домен] на фактическое доменное имя, настроенное на шаге 11.5 данной инструкции).
  2. Аутентифицироваться с использованием учетной записи, данные которой были указаны в файле "iga.config" в параметре "rootUser" на шаге 9.2 данной инструкции.
  3. Перейти по адресу "http://user.[ваш домен]" (заменить [ваш домен] на фактическое доменное имя, настроенное на шаге 11.5 данной инструкции).
  4. Аутентифицироваться с использованием учетной записи, данные которой были указаны в файле "iga.config" в параметре "rootUser" на шаге 9.2 данной инструкции.

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

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

  1. Перейти в раздел "Администрирование" → "Миграция данных".
  2. Переключиться на вкладку "Импорт".
  3. Нажать "Выбрать архив конфигураций" и выбрать файл для загрузки: configs\Idm.Base.Configuration.zip.

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

Примечание

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

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

Обсуждение