Перейти к основному содержимому
Версия: Indeed Access Manager 9.3

Indeed Core Server

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

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

Core Server кеширует данные при получении пользователя, группы, контейнера, сценариев авторизации и бизнес логики. Основные запросы в каталог — получение пользователя, группы, контейнера по ID — отдаются из кеша. Все остальные запросы — по имени, по телефону, email — только обновляют кеш данными из каталога. Первый запрос пользователя по ID также обновляет кеш, последующие берутся из кеша. Время жизни объекта в кеше — 10 минут.

Установка Core Server

Системные требования

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

Для корректной работы компонента Core Server необходимо выполнить следующие шаги:

  1. Отредактируйте конфигурационный файл Core Server.
  2. Запустите контейнер с приложением.
  3. Настройте начальную аутентификацию.
  4. При необходимости задайте опциональные настройки.

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

Для настройки Core Server внесите изменения в конфигурационный файл am/core/app-settings.json.

Важно!

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

  1. В блоке Behavior для параметра Administration в строке RootAdministrator укажите имя привилегированного пользователя.

    Примечание

    Пользователь, заданный в этом параметре, автоматически получит права первичного администратора при первой аутентификации в Management Console.

Укажите имя привилегированного пользователя в формате UserId_GUID.

Где:

  • UserId — произвольный уникальный идентификатор каталога (параметр Id). Идентификатор может состоять только из букв и цифр, спецсимволы не поддерживаются.
  • GUID — уникальный идентификатор пользователя из Active Directory.

Получить GUID можно с помощью команды на контроллере домена:

Get-ADUser -Filter 'Name -like "<User logon name>"' | FT Name,ObjectGUID -A
  1. Задайте каталог конечных пользователей, для этого измените следующие строки в параметре `UserCatalog`.
Пример настройки каталога
      "Administration": {
"RootAdministrator": "UserId_15511150-6804-4bf2-ac7c-b8a8520ea357"
}
},
"UserCatalog": {
"RootProvider": "UserId",
"Providers": {
"Ldap": [
{
"Id": "UserId",
"Domain": "second.com",
"Port": 636,
"SecureSocketLayer": true,
"LdapServerType": "ActiveDirectory",
"ContainerPath": "CN=users,DC=second,DC=com",
"UserName": "admin@second.com",
"Password": "password"
}
]
},
  • RootProvider — идентификатор корневого пользовательского каталога. Также с помощью этого параметра вы можете объединить несколько каталогов через правило OR.
  • Id — произвольный уникальный идентификатор каталога. Если вы планируете использовать базу данных от версии Access Manager 8.2.x, идентификаторы каталога должны совпадать.
  • Domain — имя домена или имя конкретного контроллера домена Active Directory, в котором находится каталог.
  • Port — порт для соединения по протоколу LDAPS/LDAP, по умолчанию задано значение 636.
Важно!

Не рекомендуется использовать незащищенное LDAP-соединение ("Port": 389, "SecureSocketLayer": false). При таком соединении ваши данные не защищены.

  • SecureSocketLayer — опция для включения или отключения SSL для защищенного соединения, по умолчанию указано значение true.
  • LdapServerType — настройка определяет тип LDAP-сервера, задайте значение ActiveDirectory.
  • ContainerPath — путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен.
  • UserName — имя сервисной учетной записи для подключения к каталогу пользователей.
  • Password — пароль сервисной учетной записи.
Важно!

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

  1. В блоке Storage в секции SensitiveDataEncryption параметры Algorithm и Key заполняются автоматически при генерации ключа.

    Чтобы сгенерировать ключ, запустите скрипт am/tools/tool_encryption_db.sh. Для просмотра и выбора алгоритма, можно вывести справку.

    sudo bash ./tool_encryption_db.sh --help
    sudo bash ./tool_encryption_db.sh -a Aes
    Примечание

    Если при обновлении вы используете базу данных от Access Manager 8.x, укажите значения Algorithm и Key из конфигурационного файла Core Server для Access Manager 8.x (C:\inetpub\wwwroot\am\core\Web.config, тег encryptionSettings). Таким образом вы избежите повторного шифрования базы данных.

  2. Укажите параметры базы данных.

    Измените следующие строки в блоке Storage для параметра Provider:

    • Type — укажите тип используемой СУБД — Mssql.

    • ConnectionString — укажите следующие данные:

      • Data Source — IP-адрес сервера базы данных.
      • Initial Catalog — имя базы данных.
      • User ID — имя пользователя, который имеет полные права для базы данных.
      • Password — пароль пользователя.
      • TrustServerCertificate — доверие серверному сертификату. Убедитесь, что задано значение True для подключения Microsoft SQL к серверу.
      Пример
      "Provider": {
      "Type": "Mssql",
      "ConnectionString": "Data Source=[Db host address];Initial Catalog=[AM Db];User ID=[Db service account];Password=[Db service password];TrustServerCertificate=True;"
      },
  3. В параметре Authentication для параметра Sign поля publicKey и privateKey заполняются автоматически при генерации публичного и секретного ключа для подписи токена пользователя.

    Чтобы сгенерировать публичный и секретный ключи, запустите скрипт am/tools/tool_keygen.sh:

    sudo bash ./tool_keygen.sh
    Пример
    "Authentication": {
    "Token": {
    "Sign": {
    "privateKey": "значение секретного ключа",
    "publicKey": "значение публичного ключа"
    }
    },

Запуск контейнера

Для создания и запуска контейнера выполните следующую команду:

sudo docker-compose up -d

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

Примечание

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

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

Чтобы настроить начальную аутентификацию, необходимо сформировать значение параметра StringValue в конфигурационном файле am/core/initial-settings.json:

  1. Перейдите в каталог am/tools/initial_settings и откройте для редактирования файл initial_settings.json.

    • В поле Filter укажите регулярное выражение.

    • (Опционально) Если LDAPS-сертификат не позволяет устанавливать соединение по имени домена (не задано Дополнительное имя субъекта), в поле FallbackHost укажите значение своего домена. При использовании параметра FallbackHost увеличивается нагрузка на данный контроллер домена.

    Пример файла initial_settings.json
     {
    "Filter": "^domain1\\.com$",
    "Port": 636,
    "Secure": true,
    "FallbackHost": "dc.domain1.com"
    },
    {
    "Filter": ".*(\\.domain2.com)|(\\.domain3)$",
    "Port": 389,
    "Secure": false
    },
    {
    "Filter": "^domain4\\.com$",
    "Port": 636,
    "Secure": true,
    "FallbackHost": "dc.domain4.com"
    }

  2. Сохраните файл initial_settings.json.

  3. Перейдите в каталог am/tools/initial_settings и запустите скрипт tool_initial_settings.sh.

В результате выполнения скрипта в конфигурационном файле am/core/initial-settings.json записывается значение параметра StringValue.

Пример параметра StringValue
[{\u0022F\u0022:\u0022^domain\\\\.com$\u0022,\u0022P\u0022:636,\u0022S\u0022:true,\u0022FH\u0022:\u0022dc.domain.com\u0022}]

Включить/Отключить шифрование конфигурационного файла

  1. В терминале перейдите в каталог с утилитой для шифрования am/protection.
    cd /am/protection
  2. Выдайте права для запуска скрипта protector.sh.
    sudo chmod 500 protector.sh
  3. Чтобы зашифровать конфигурационные файлы, запустите скрипт protector.sh с параметром protect.
    sudo bash ./protector.sh protect
  4. Чтобы расшифровать конфигурационные файлы, запустите скрипт protector.sh с параметром unprotect.
    sudo bash ./protector.sh unprotect

Проверка состояния сервера

Чтобы проверить состояние сервера, в браузере введите адрес Core Server в формате https://<полное_dns_имя_сервера>/am/core.

Автоматически вы будете перенаправлены на https://<полное_dns_имя_сервера>/am/core/api/v6/healthCheck/index.

Страница обновляется автоматически каждые 60 секунд.

На странице доступна следующая информация о состоянии сервера:

  • статус доступности каталога пользователей, время обработки запроса к нему;
  • статус хранилища, время обработки запроса к нему;
  • список установленных провайдеров аутентификации, их статус и время загрузки;
  • статус компонента Indeed Log Server;
    Важно!

    Чтобы не получать ошибки при проверке состояния, рекомендуется использовать версию Log Server 9.3 и выше.

  • список ошибок при наличии.
Информация

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

Пример результата проверки
User Catalog{
"PreviousCheckSucceeded": true,
"CheckState": "Succeeded",
"CheckStartDate": "2025-02-27T11:18:53.4937754+00:00",
"CheckDuration": "00:00:00.0088105"
}

Storage{
"PreviousCheckSucceeded": true,
"CheckState": "Succeeded",
"CheckStartDate": "2025-02-27T11:18:53.4947917+00:00",
"CheckDuration": "00:00:00.0033496"
}

Authentication Providers{
"PreviousCheckSucceeded": false,
"CheckState": "Succeeded",
"CheckStartDate": "2025-02-27T11:12:53.5523742+00:00",
"CheckDuration": "00:00:00.0089791"
}

LogServer{
"PreviousCheckSucceeded": false,
"CheckState": "Succeeded",
"CheckStartDate": "2025-02-27T11:12:53.5643188+00:00",
"CheckDuration": "00:00:00.0457894"
}

Сбор логов

Информация по включению логирования и сбору логов компонента Core Server находится в разделе Сбор логов серверных компонентов.

Опциональные настройки