Skip to main content
Version: Indeed Access Manager 9.0

Установка и настройка на Linux

Indeed AM Core Server — это основной модуль системы, который отвечает за:

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

Установка Core Server

Отдельно устанавливать Core Server не нужно. Компонент устнавливается автоматически при распаковке архива am-<номер версии>.tar.gz.

Редактирование конфигурационного файла

Для настройки Core Server измените конфигурационный файл app-settings.json (расположен в распакованном архиве в каталоге Indeed AM Linux 9.0\am\core).

Важно!

Измените только параметры со значениями вида !!! комментарий !!!.

  1. В параметре Behavior в строке RootAdministrator укажите имя привилегированного пользователя в формате ИдентификаторКаталога_GUIDПользоваетеляИзActiveDirectory, где ИдентификаторКаталога — это значение из параметра Id.

  2. Задайте каталог конечных пользователей, для этого измените следующие строки в параметре UserCatalog:

    • RootProvider — с помощью этого параметра вы можете объединить несколько каталогов через правило OR. Например, если у вас есть составной каталог Company, который состоит из каталогов Tech и HR, укажите параметры подключения к ним в секции Providers, а в правиле OR укажите Company в параметре Id.
    Пример настройки нескольких каталогов
    "UserCatalog": {
    "RootProvider": "Company",
    "Providers": {
    "ActiveDirectory": [{
    "Id": "Tech",
    "Domain": "имя контроллера домена Active Directory",
    "Port": 636,
    "SecureSocketLayer": true,
    "ContainerPath": "путь к контейнеру",
    "UserName": "имя сервисной учетной записи",
    "Password": "пароль от сервисной учетной записи"
    },{
    "Id": "HR",
    "Domain": "имя контроллера домена Active Directory",
    "Port": 636,
    "SecureSocketLayer": true,
    "ContainerPath": "путь к контейнеру",
    "UserName": "имя сервисной учетной записи",
    "Password": "пароль от сервисной учетной записи"
    }
    ],
    "OR": [
    {
    "Id": "Company",
    "Providers": {
    "Tech": {"IgnoreExceptions": true},
    "HR": {"IgnoreExceptions": true}
    }
    }
    ]
    },
    • Id — произвольный уникальный идентификатор каталога;
    • Domain — имя контроллера домена Active Directory, в котором находится каталог;
    • Port — для соединения по протоколу LDAPS укажите 636;
    • SecureSocketLayer — для соединения по протоколу LDAPS укажите true;
    • ContainerPath — путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен;
    • UserName — имя сервисной учетной записи для подключения к каталогу пользователей;
    • Password — пароль сервисной учетной записи.
  3. Укажите параметры базы данных. Для этого измените следующие строки в параметре Storage:

    Важно!

    Настройки в параметре UserCatalog в секции SensitiveDataEncryption не изменяйте.

    • Type — укажите используемый тип базы данных. Поддерживаются PostgreSQL и Microsoft SQL.
    • ConnectionString — укажите следующие данные:
      • server — ip-адрес сервера базы данных.
      • port — используемый порт. По умолчанию — 5432.
      • user id — имя пользователя, который имеет полные права для базы данных.
      • password — пароль пользователя.
      • database — база данных, содержащая данные об Indeed AM Server.
  4. В параметре Authentication создайте параметр Sign и укажите публичный и секретный ключи для подписи токена пользователя.

    Пример
    "Authentication": {
    "Token": {
    "Sign": {
    "PrivateKey": "значение секретного ключа",
    "PublicKey": "значение публичного ключа"
    }
    },

    Чтобы сгенерировать ключи, запустите утилиту AccessManager.KeyGen.Console.exe. Для корректной работы утилиты необходима установка .NET Core Runtime 6.

    В параметре --name укажите имена файлов. Это обязательный параметр. Файлы генерируются с одинаковым именем, однако у файла публичного ключа указывается расширение PUB.

    В параметре --output-directory укажите путь к каталогу, в который сохранятся файлы ключевой пары. Вы можете указать относительный или абсолютный путь. Это необязательный параметр. Если вы не укажете путь, файлы ключевой пары сохранятся в каталоге Misc.

Получение первичных прав администратора

Для получения первичных прав, необходимых при ручной настройке компонентов, используйте скрипт FirstAccesControl.ps1 (находится в корне дистрибутива Indeed AM Linux 9.0).

  1. Откройте скрипт для редактирования и укажите следующее:
    • $amServerBaseUrl — адрес Core Server;
    • $name — имя пользователя, которого вы хотите добавить в первичные администраторы;
    • $pass — пароль этого пользователя.
  2. Выполните скрипт.

При успешном выполнении скрипта пользователь будет добавлен как первичный администратор. После использования скрипт можно удалить.

Подсказка

В качестве пользователя в скрипте укажите того же пользователя, которого вы указываете в параметре RootAdministrator конфигурационного файла Core Server app-settings.json.

Настройка начальной аутентификации

Для начальной аутентификации в Core Server и приложения Management Console и User Console настройте провайдер Windows Password.

Для аутентификации рекомендуется использовать защищенное соединение по протоколу LDAPS с использованием 636 порта.

Настройка задается в конфигурационном файле initial-settings.json (расположен в распакованном архиве в каталоге Indeed AM Linux 9.0\am\core).

Значения для этой настройки представлены в виде строки [{"F":<domain-regex-pattern>,"P":<port>,"S":<tls-enabled>},...]. Чтобы сформировать значение для строки, используйте программу:

Пример использования программы
// Настройки для https://dotnetfiddle.net:
// Language: C#
// Project Type: Console
// Compiler: .NET 6

using System;
using System.Text.Json;
using System.Text.RegularExpressions;

public class Program
{
public static void Main()
{
Console.WriteLine(
JsonSerializer.Serialize(
JsonSerializer.Serialize(
new object[]
{
new
{
F = $"^{Regex.Escape("domain.com")}$",
P = 636,
S = true,
FH = "dc.domain.com"
},
})));
}
}

В примере определяется следующее правило подключения:

  • домен domain.com (по регулярному выражению ^domain.com$);
  • порт — 636;
  • протокол TLS включен.

В результате выполнения на консоль будет выведена строка, значение которой вы должны указать в файле initial-settings.json в параметре StringValue.

Отзыв лицензии

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

Лицензия освобождается с помощью автоматического отзыва лицензий, если пользователь:

  • будет удален из политики;
  • был отключен или перемещен из области действия политики;
  • был заблокирован или удален из Active Directory.

Чтобы настроить автоматический отзыв лицензии, настройте следующие параметры в файле app-settings.json:

  • в секции Licenses:
    • параметр Cleanup отвечает за включение автоматического отзыва лицензий. Если установить значение true , отзыв включается. Значение false отключает отзыв. Если не указать значение, отзыв включается.
    • параметр Interval определяет, с какой частотой будут освобождаться лицензии. Значение по умолчанию — 1:00:00:00 (раз в день).
    • параметр InactiveAtLeast определяет, при каком периоде отсутствия активности со стороны пользователя должен произойти отзыв закрепленной за ним лицензии. Значение по умолчанию — 1:00:00:00 (не было активности за весь день).