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

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

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

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

Astra Linux 1.8.2

СУБДPostgreSQL 15
Веб-серверAngie 1.6 и выше
Среда исполнения
  • 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. Создать каталог 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 и развернуть БД

  1. Установить пакет PostgreSQL:
    sudo apt update 
    sudo apt install postgresql-15
  2. Включить автоматический старт БД:
    sudo systemctl start postgresql
    sudo systemctl enable postgresql

  3. Создать УЗ для подключения к БД.

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

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

     

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

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

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

  1. Открыть для редактирования конфигурационный файл "pg_hba.conf".
  2. Заменить в команде [ВЕРСИЯ] на номер версии 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
  3. В конфигурационном файле "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. Перезапустить PostgreSQL:
    sudo systemctl restart postgresql
  5. Проверить подключение:
    psql -U db_idm_user idm
    # Ввести ранее созданный пароль пользователя db_idm_user
    idm=# \q

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

  1. Скачать открытый ключ репозитория Angie для проверки подлинности загружаемых пакетов с помощью команды:
    sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg
  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
  3. Обновить индексы репозиториев:
    sudo apt-get update
  4. Установить пакет Angie:
    sudo apt-get install -y angie
  5. Включить сервис Angie и добавить его в автозапуск:
    sudo systemctl start angie
    sudo systemctl enable angie
    

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

sudo useradd -M avanpost

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

  1. Авторизоваться под пользователем "avanpost":
    sudo su - avanpost
  2. Перейти в каталог "/opt/avanpost":
    cd /opt/avanpost
  3. Скачать дистрибутив:
    wget --user=student --ask-password https://packages.avanpost.ru/repository/IDM-enterprise/stable/7/Avanpost.Idm.vX.X.X.zip
    Password for user ‘user_name’: user_password

    Примечание

    , где

    • vX.X.X – версия файла системы;
    • user_name — логин пользователя;
    • user_password — пароль пользователя.

    Для получения актуальной ссылки на загрузку и создания учётных данных (user_name, user_password) обратитесь в тех. поддержку по почте support@avanpost.ru


  4. Создать каталог "/opt/avanpost/idm":
    mkdir /opt/avanpost/idm
  5. Разархивировать дистрибутив:
    unzip Avanpost.Idm.v7.8.0%2B04bde12f00.zip -d idm
  6. Создать каталог конфигурации "/opt/avanpost/config":
    mkdir /opt/avanpost/config
  7. Создать каталог для коннекторов "/opt/avanpost/connectors":
    mkdir /opt/avanpost/connectors
  8. Поместить файл лицензии "license.xml" в папку "/opt/avanpost/config" с помощью команды scp или удобного файлового менеджера.

Шаг 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
  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. Произвести генерацию ключа шифрования и записать его в конфигурационный файл с помощью команды:
    (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
  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"

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

  1. Скопировать пример файла конфигурации Angie в "/etc/angie/http.d/idm.conf":
    sudo cp /opt/avanpost/idm/configs/idm/idm.conf.nginx /etc/angie/http.d/idm.conf
  2. Открыть конфигурационный файл "/etc/angie/http.d/idm.conf" для редактирования:
    sudo nano /etc/angie/http.d/idm.conf
  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;
        }
    }
  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
  5. Перезапустить Angie:
    sudo systemctl restart angie

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

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

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

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

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

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

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

Примечание

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

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


Обсуждение