Перейти к основному содержимому
Версия: 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 находится в разделе Сбор логов серверных компонентов.