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

Indeed Key Server

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

Indeed Key Server (Key Server) — это сервер, необходимый для реализации аутентификации пользователей через Indeed Key Provider. С помощью Key Server отправляются push-уведомления и одноразовые пароли из мобильного приложения Indeed Key.

Core Server устанавливает связь с Key Server по URL-адресу, а Key Server — с мобильным приложением Indeed Key по протоколу HTTPS.

Для записи событий сервера необходима отдельная база данных Microsoft SQL или PostgreSQL.

Информация

В этом разделе описаны дополнительные настройки для Key Server, которые не являются обязательными для установки компонента.

Настройка событий сервера

Установка и настройка осуществляется на хосте с Log Server.

Для записи событий Key Server выберите один из вариантов:

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

Настроить события на отдельной базе данных

Key Server поддерживает работу с базами данных PostgreSQL и Microsoft SQL.

Чтобы создать отдельную базу данных и сервисную учетную запись, следуйте инструкции в разделе Хранилище данных.

Примечание

После создания базы данных (после первого запроса) можно понизить привилегии для пользователя. Достаточно права db_owner для созданной базы данных.

Через мастер конфигурации

Важно

Мастер конфигурации не поддерживает установку отдельного Log Server для Key Server. Если вам необходимо добавить отдельный Log Server для событий Key Server, следуйте инструкции ниже.

  1. Перейдите в мастер конфигурации и выберите сценарий Изменение конфигурации.

  2. Нажмите Схема хостов и перейдите в настройки ранее добавленного хоста для Log Server.

  3. В разделе Компоненты отключите Log Server (LS).

  4. Нажмите Сохранить без проверки хоста.

    Если на хосте расположен только Log Server, хост можно удалить.

  5. Добавьте новый хост, выберите в компонентах Log Server и Key Server и укажите данные для подключения к новой базе данных, используя подсказки мастера конфигурации.

    Компоненты можно разместить отдельно: создайте отдельные хосты для Log Server и Key Server.

  6. Нажмите Далее.

  7. Нажмите Базы данных и перейдите в настройки Key Server.

  8. Отключите опцию База данных находится на одном сервере с базой данных Core Server.

  9. Заполните информацию о выбранной СУБД, используя подсказки мастера конфигурации. Подробнее о ручном добавлении базы данных читайте в разделе Базы данных.

  10. Нажмите Далее.

  11. Сохраните две резервных копии мастера конфигурации: для основного Log Server и для Log Server с Key Server.

  12. Нажмите Применение изменений и обновите конфигурацию хостов с Log Server и Key Server автоматически или вручную.

    Важно

    Автоматическое обновление допускается только для тех хостов, где установлен Key Server и добавленный для него Log Server. Не обновляйте хост, для которого был отключен основной Log Server на шаге 3.

  13. Чтобы завершить работу мастера, выполните следующую команду в терминале:

    sudo bash ./setup.sh stop

Вручную

  1. Перейдите в каталог am/ls/targets и откройте конфигурационный файл DbTarget_0.config.

  2. В строке ConnectionString укажите следующие данные:

    • Data Source — DNS/IP-адрес сервера с базой данных
    • Initial Catalog — имя базы данных
    • User ID — имя пользователя с правами доступа к базе данных Initial Catalog
    • Password — пароль пользователя
    • TrustServerCertificate — настройка доверия серверному сертификату (значение True — подключение Microsoft SQL к серверу)
    Пример
    <?xml version="1.0" encoding="utf-8"?>
    <Settings>
    <ConnectionString>Data Source=192.168.1.22,57974;Initial Catalog=IndeedAM9log;User ID=IndeedAMservice;Password=Q12345qq;TrustServerCertificate=true;</ConnectionString>
    </Settings>

Просмотр событий Key Server

Для хранения событий Key Server доступны все типы хранилищ, которые поддерживает Log Server.

В зависимости от типа хранилища события Key Server можно просматривать следующими способами:

  • Для событий в базе данных используйте сторонние средства мониторинга или SQL-запросы.
  • Для хранилища Syslog используйте сторонние средства мониторинга с поддержкой Syslog. 
  • В Management Console — во вкладке События отображаются события, записанные в базу данных для Log Server.

Сервис очистки старых данных

В файле am/indeed-key/app-settings.json можно задать параметры сервиса очистки старых данных.

Пример
"CleanAkData": {
"Enabled": true,
"FirstRunTime": "00:00",
"Interval": "1.00:00:00",
"AkDataLifeTime": "1.00:00:00",
"BatchDeleteLimitRows": 1000,
"BatchDeleteDelayMsec": 1000
}

Описание атрибутов примера

Имя атрибутаОписаниеЗначениеЗначение по умолчаниюМинимально допустимое значение
EnabledФлаг включения сервисаtrue, falsetrueОтсутствует
FirstRunTimeВремя первого запуска сервисаСтрока в формате времени hh:mm (ЧЧ:ММ)00:00 (полночь)Отсутствует
IntervalИнтервал запуска сервисаВременной интервал1.00:00:00 (ДД:ЧЧ:MM:CC)00:10:00 (10 минут)
AkDataLifeTimeВремя жизни данныхВременной интервал1.00:00:00 (ДД:ЧЧ:MM:CC)00:10:00 (10 минут)
BatchDeleteLimitRowsЛимит удаляемых строкЧисло строк10001
BatchDeleteDelayMsecИнтервал между удалениями данныхЧисло миллисекунд10000

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

Важно

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

ПараметрОписание
Server:
Url
URL-адрес для подключения к Key Server.
Пример
"Server": {
"Url": "http(s)://[Server address]:{port}",
"Logon": {
"Delay": "00:05:00"
}
}
Где:
  • [Server address] — значение переменной INDEED_KEY_EXTERNAL_ENDPOINT_NAME, заданное в файле am/.env.
  • {port} — значение переменной INDEED_KEY_HTTPS_PORT_EXTERNAL, заданное в файле am/.env.
Примечание: URL-адрес Key Server должен быть доступен с мобильного телефона.
TrustedClientsПроизвольный уникальный идентификатор. Значение идентификатора должно совпадать со значением в настройке Доверенный ID Indeed Key Server в Management Console.
Подсказка
При изменении параметра рекомендуется перейти в Management Console в раздел Конфигурация → Аутентификаторы → Indeed Key → Серверные настройки и, помимо настройки доверенного ID Indeed Key Server, задать внутренний URL-адрес Indeed Key Server.

Также в разделе Настройки регистрации при выборе способа регистрации по email заполните обязательные поля и сохраните изменения.
Storage:
ConnectionString
Строка подключения к базе данных.
Пример для Microsoft SQL
"Storage": {
"Provider": {
"Type": "Mssql",
"ConnectionString": "Data Source=[Db host address];Initial Catalog=[AM Db];User ID=[Db service account];Password=[Db service password];TrustServerCertificate=True;"
}
}
Пример для PostgreSQL
"Storage": {
"Provider": {
"Type": "PostgreSql",
"ConnectionString": "server=192.168.80.30;port=5432;user id=amservice;password=Q1w2e3r4;database=IndeedKey"
}
}

Перезапуск Key Server

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

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

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

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

Для проверки рабочего состояния сервера в контейнере Docker используйте метод Healthcheck:

http(s)://<dns_имя_сервера>:<порт>/healthcheck/isHealthy

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

  • Статус компонента Key Server, время обработки запроса к нему
  • Статус последнего запроса
  • Список ошибок при наличии
Пример результата проверки
{
"Entries": {
"Storage": {
"Data": {
"HealthCheckStatus": {
"PreviousCheckSucceeded": true,
"CheckState": "Succeeded",
"CheckStartDate": "2025-03-17T11:07:55.9606294+00:00",
"CheckDuration": "00:00:00.0014040"
}
},
"Description": null,
"Duration": "00:00:00.0000052",
"Exception": null,
"Status": 2,
"Tags": []
}
},
"Status": 2,
"TotalDuration": "00:00:00.0003921"
}

Сбор логов

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