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

Indeed Core Server

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

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

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

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

Информация

В этом разделе описаны дополнительные настройки для Core Server, которые не являются обязательными для установки компонента. Конфигурационный файл am/core/app-settings.json можно изменить в любой момент.

Описание конфигурационного файла​

Важно

В этом разделе описаны параметры конфигурационного файла Core Server am/core/app-settings.json. Не изменяйте значения без необходимости. Неправильная конфигурация может привести к неработоспособности компонента.

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

Параметры каталога пользователей​

ПараметрОписание
Behavior:
Administration:
RootAdministrator
Имя привилегированного пользователя в формате UserId_GUID.

Где:
  • UserId — произвольный уникальный идентификатор каталога (параметр Id). Идентификатор может состоять только из букв и цифр, спецсимволы не поддерживаются.
  • GUID — уникальный идентификатор пользователя из Active Directory.
Получить GUID можно с помощью команды на контроллере домена:
Команда
Get-ADUser -Filter 'Name -like "<User logon name>"' | FT Name,ObjectGUID -A
Примечание: Пользователь, заданный в этом параметре, автоматически получит права первичного администратора при первой аутентификации в Management Console.
UserCatalogВ параметре задается каталог конечных пользователей.
Пример настройки каталога
"Administration": {
"RootAdministrator": "UserId_15511150-6804-4bf2-ac7c-b8a8520ea357"
},
"UserCatalog": {
"RootProvider": "UserId",
"Providers": {
"Ldap": [
{
"Id": "UserId",
"Domain": "second.com",
"Servers": [],
"Port": "636",
"SecureSocketLayer": "True",
"LdapServerType": "ActiveDirectory",
"ContainerPath": "CN=users,DC=second,DC=com",
"UserName": "admin@second.com",
"Password": "password",
"SendTimeoutSeconds": "60",
"ConnectionTimeoutSeconds": "20",
"AdditionalSettings": {
"LdapSkipTcpConnectionCheck": "true",
"LdapSkipForcedBindTimeout": "true"
},
"UserMapRules": {
"Attributes": {
"SamCompatibleName": "sn"
}
}
}
]
},
  • RootProvider — идентификатор корневого пользовательского каталога. Также с помощью этого параметра вы можете объединить несколько каталогов через правило OR.
  • Id — произвольный уникальный идентификатор каталога. Если вы планируете использовать базу данных от версии Access Manager 8.2.x, идентификаторы каталога должны совпадать.
  • Domain — имя домена или имя конкретного контроллера домена, в котором находится каталог.
  • Servers — список контроллеров домена, к которым подключается Core Server. В версии 9.7 параметр не используется.
  • Port — порт для соединения по протоколу LDAPS/LDAP, по умолчанию задано значение 636.
  • SecureSocketLayer — опция для включения или отключения SSL для защищенного соединения, по умолчанию указано значение true.
  • LdapServerType — настройка определяет тип LDAP-сервера, задайте значение ActiveDirectory.
  • ContainerPath — путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен.
  • UserName — имя сервисной учетной записи для подключения к каталогу пользователей.
  • Password — пароль сервисной учетной записи.
  • SendTimeoutSeconds — таймаут LDAP-запроса (поиск и другие операции), в секундах. Значение по умолчанию — 30.
  • ConnectionTimeoutSeconds — таймаут подключения к контроллеру домена, в секундах. Используется в проверке TCP-доступности и принудительном таймауте Bind. Если обе проверки отключены, параметр ни на что не влияет. Значение по умолчанию — 10.
  • AdditionalSettings:LdapSkipTcpConnectionCheck — отключает проверку TCP-доступности контроллера перед LDAP-подключением. Если задано значение false, недоступный контроллер отсекается за ConnectionTimeoutSeconds, а не за системный таймаут операционной системы (около 130 секунд). Значение по умолчанию — true.
  • AdditionalSettings:LdapSkipForcedBindTimeout — отключает принудительный таймаут Bind. Если задано значение false, Bind запускается через Task.Run, и зависшая операция прерывается по ConnectionTimeoutSeconds. Значение по умолчанию — false.
  • SamCompatibleName — имя атрибута LDAP со значением sn для формирования совместимого имени пользователя (sAMAccountName). Используйте для работы модуля RDP Windows Logon с каталогом пользователей РЕД АДМ.
Важно: Не рекомендуется использовать незащищенное LDAP-соединение ("Port": 389, "SecureSocketLayer": false). При таком соединении ваши данные не защищены.

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

Общие параметры​

ПараметрОписание
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). Таким образом вы избежите повторного шифрования базы данных.
Storage:
Provider
Параметры подключения к базе данных.
Microsoft SQL
  • Type — тип используемой СУБД — Mssql.
  • ConnectionString — укажите следующие данные:
    • Data Source — IP-адрес сервера базы данных.
    • Initial Catalog — имя базы данных.
    • User ID — имя пользователя, который имеет полные права для базы данных.
    • Password — пароль пользователя.
    • TrustServerCertificate — доверие серверному сертификату. Убедитесь, что задано значение True для подключения Microsoft SQL к серверу.
"Provider": {
"Type": "Mssql",
"ConnectionString": "Data Source=192.168.1.22,57974;Initial Catalog=IndeedAM9log;User ID=IndeedAMservice;Password=Q12345qq;TrustServerCertificate=true;"
},
PostgreSQL
  • Type — тип используемой СУБД — PostgreSql.
  • ConnectionString — укажите следующие данные:
    • server — IP-адрес сервера базы данных.
    • port — используемый порт. По умолчанию — 5432.
    • user id — имя пользователя, который имеет полные права для базы данных.
    • password — пароль пользователя.
    • database — база данных, содержащая данные об Indeed Core Server.
    • SSL Mode — для подключения с использованием SSL.
"Provider": {
"Type": "PostgreSql",
"ConnectionString": "server=192.168.80.30;port=5432;user id=amservice;password=password;database=AMdebian2;SSL Mode=Require"
},
Если после добавления параметра SSL Mode возникает ошибка 08P01: unsupported startup parameter: ssl_renegotiation_limit, добавьте в конец строки параметр Server Compatibility Mode=Redshift.
Authentication:
Token:
Sign
Поля publicKey и privateKey заполняются автоматически при генерации ключей для подписи токена пользователя. Чтобы сгенерировать ключи, запустите скрипт am/tools/tool_keygen.sh:
sudo bash ./tool_keygen.sh
Пример
"Authentication": {
"Token": {
"Sign": {
"privateKey": "значение закрытого ключа",
"publicKey": "значение открытого ключа"
}
}
}
Authentication:
bruteForceProtection
Защита от перебора. В строке bruteForceProtection через запятую укажите значения модулей, для которых вы хотите включить защиту от перебора.
Подробнее о параметре — в разделе Включение защиты от перебора.
UserCatalog:
Providers:
Ldap
Настройка LDAP-фильтров при поиске. Подробнее о параметре — в разделе LDAP-фильтр при поиске пользователей и групп в службе каталогов

Вместо ручной настройки рекомендуется настраивать фильтрацию в мастере конфигурации.
Licenses:
Cleanup
Настройка механизма автоматического освобождения лицензий. В теге Cleanup укажите значение true для параметра Enabled и задайте значение для параметра Interval.
Подробнее о параметрах — в разделе Настройка механизма отзыва лицензий.
Behavior:
Authentication:
RequirePolicy:
Enabled

Behavior:
Enrollment:
RequirePolicy:
Enabled
Настройка прав пользователей, не состоящих в политике.
В параметре Authentication для параметра Enabled укажите значение false, чтобы разрешить пользователю аутентификацию в User Console.
В параметре Enrollment для параметра Enabled укажите значение false, чтобы разрешить пользователю самостоятельно обучать аутентификаторы.
Подробнее о параметрах — в разделе Настройка прав пользователей вне политики.

Параметры кеширования​

Core Server хранит сессии и временные данные в кеше. Кеш может храниться в оперативной памяти хоста или в отдельной базе данных PostgreSQL, общей для всех серверов Core Server. Распределенный кеш настраивается в мастере конфигурации — шаг Базы данных.

ПараметрФорматОписание
Cache:
Provider
stringЗаполняется мастером конфигурации. Провайдер кеширования. Если настроен распределенный кеш, задается значение PostgreSql.

Значение по умолчанию: InMemory.
Возможные значения: InMemory или PostgreSql.
Cache:
InMemory
—Секция настроек провайдера InMemory. Используется, если распределенный кеш не настроен.
Cache:
PostgreSql:
ConnectionString
stringСтрока подключения к базе данных распределенного кеша. Обязательный параметр для провайдера PostgreSql.
Cache:
PostgreSql:
SchemaName
stringСхема базы данных для таблицы кеша. Обязательный параметр, не может быть пустым. Имя может содержать латинские буквы, цифры и символ подчеркивания, не может начинаться с цифры, максимальная длина — 63 байта.

Значение по умолчанию: public.
Cache:
PostgreSql:
TableName
stringНазвание таблицы для хранения кеша. Обязательный параметр, не может быть пустым. Имя может содержать латинские буквы, цифры и символ подчеркивания, не может начинаться с цифры, максимальная длина — 63 байта. Длина ключа кеша не превышает 449 символов.

Значение по умолчанию: cache.
Cache:
PostgreSql:
CreateIfNotExists
booleanАвтоматическое добавление таблицы кеша в базу данных, если эта таблица отсутствует.

Значение по умолчанию: false.
Cache:
PostgreSql:
UseWAL
booleanИспользование протокола предварительной записи (Write-Ahead Logging). Значение true ускоряет работу кеша, но делает репликацию базы данных невозможной.

Значение по умолчанию: false.
Cache:
PostgreSql:
ExpiredItemsDeletionInterval
TimeSpanИнтервал удаления просроченных записей из базы данных.

Значение по умолчанию: 00:30:00 (30 минут).
Возможные значения: от 00:05:00 (5 минут), без верхней границы.
Cache:
PostgreSql:
DefaultSlidingExpiration
TimeSpanСкользящий срок действия записи кеша. Применяется только к записям, для которых не задан ни скользящий, ни абсолютный срок. Срок хранится в базе данных в секундах, доли секунды отбрасываются.

Значение по умолчанию: 00:20:00 (20 минут).
Cache:
ExpirationTimeouts
—Секция сроков действия записей кеша для отдельных сервисов: UserService, StoreCredentials, AuthenticationTemplate, AuthenticationSession и ClientCacheUpdateInfo.

Значения AuthenticationTemplate:AbsoluteExpiration и AuthenticationSession:AbsoluteExpiration не должны превышать значение UserService:AbsoluteExpiration.
Cache:
ExpirationTimeouts:
<сервис>:
SlidingExpiration
TimeSpanСкользящий срок действия записи кеша для сервиса.

Значение по умолчанию: не задано.
Возможные значения: больше 00:00:00, без верхней границы.
Cache:
ExpirationTimeouts:
<сервис>:
AbsoluteExpiration
TimeSpanАбсолютный срок действия записи кеша для сервиса.

Значение по умолчанию: 00:15:00 (15 минут).
Возможные значения: больше 00:00:00, без верхней границы.

Дополнительные параметры конфигурации​

В конфигурационном файле am/core-server.docker-compose.yml доступны дополнительные параметры для расширенной настройки, описанные в разделе Настройка времени ожидания для LDAP-соединения.

Перезапуск контейнера​

После редактирования конфигурационного файла необходимо перезапустить контейнер с приложением с помощью команды sudo docker compose up -d.

Шифрование конфигурационного файла​

Чтобы зашифровать или расшифровать чувствительные данные в конфигурационных файлах, используйте утилиту protector.sh.

Подробнее — в разделе Шифрование конфигурационных файлов.

Сбор логов​

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