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, следуйте инструкции ниже.
Перейдите в мастер конфигурации и выберите сценарий Изменение конфигурации.
Нажмите Схема хостов и перейдите в настройки ранее добавленного хоста для Log Server.
В разделе Компоненты отключите Log Server (LS).
Нажмите Сохранить без проверки хоста.
Если на хосте расположен только Log Server, хост можно удалить.
Добавьте новый хост, выберите в компонентах Log Server и Key Server и укажите данные для подключения к новой базе данных, используя подсказки мастера конфигурации.
Компоненты можно разместить отдельно: создайте отдельные хосты для Log Server и Key Server.
Нажмите Далее.
Нажмите Базы данных и перейдите в настройки Key Server.
Отключите опцию База данных находится на одном сервере с базой данных Core Server.
Заполните информацию о выбранной СУБД, используя подсказки мастера конфигурации. Подробнее о ручном добавлении базы данных читайте в разделе Базы данных.
Нажмите Далее.
Сохраните две резервных копии мастера конфигурации: для основного Log Server и для Log Server с Key Server.
Нажмите Применение изменений и обновите конфигурацию хостов с Log Server и Key Server автоматически или вручную.
ВажноАвтоматическое обновление допускается только для тех хостов, где установлен Key Server и добавленный для него Log Server. Не обновляйте хост, для которого был отключен основной Log Server на шаге 3.
Чтобы завершить работу мастера, выполните следующую команду в терминале:
sudo bash ./setup.sh stop
Вручную
- Microsoft SQL
- PostgreSQL
Перейдите в каталог am/ls/targets и откройте конфигурационный файл DbTarget_0.config.
В строке
ConnectionStringукажите следующие данные:Data Source— DNS/IP-адрес сервера с базой данныхInitial Catalog— имя базы данныхUser ID— имя пользователя с правами доступа к базе данных Initial CatalogPassword— пароль пользователя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>
Перейдите в каталог am/ls/targets и откройте конфигурационный файл DbTarget_0.config.
В строке
ConnectionStringукажите следующие данные:Server— DNS/IP-адрес сервера с базой данныхDatabase— имя базы данныхUser ID— имя пользователя с правами доступа к базе данных DatabasePassword— пароль пользователяSSL Mode— режим SSL-подключения. Если после добавления параметра возникает ошибка 08P01: unsupported startup parameter: ssl_renegotiation_limit, добавьте параметрServer Compatibility Mode=Redshift
Пример
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>server=192.168.80.30;port=5432;user id=amservice;password=Q1w2e3r4;database=am_deb_db;SSL Mode=Require;Server Compatibility Mode=Redshift</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, false | true | Отсутствует |
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 | Лимит удаляемых строк | Число строк | 1000 | 1 |
BatchDeleteDelayMsec | Интервал между удалениями данных | Число миллисекунд | 1000 | 0 |
Описание конфигурационного файла
В этом разделе описаны параметры конфигурационного файла Key Server am/indeed-key/app-settings.json. Не изменяйте значения без необходимости. Неправильная конфигурация может привести к неработоспособности компонента.
| Параметр | Описание |
|---|---|
Server:Url | 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Пример для PostgreSQL |
Перезапуск Key Server
После редактирования конфигурационного файла необходимо перезапустить контейнер с приложением с помощью команды sudo docker compose up -d.
Шифрование конфигурационного файла
- Зашифровать
- Расшифровать
- В терминале перейдите в каталог с утилитой для шифрования am/protection.
cd /am/protection - Выдайте права для запуска скрипта
protector.sh.sudo chmod 500 protector.sh - Чтобы зашифровать конфигурационные файлы, запустите скрипт
protector.shс параметромprotect.sudo bash ./protector.sh protect
- В терминале перейдите в каталог с утилитой для шифрования am/protection.
cd /am/protection - Выдайте права для запуска скрипта
protector.sh.sudo chmod 500 protector.sh - Чтобы расшифровать конфигурационные файлы, запустите скрипт
protector.shс параметромunprotect.sudo bash ./protector.sh unprotect
Проверка состояния сервера
Для проверки рабочего состояния сервера в контейнере 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 находится в разделе Сбор логов серверных компонентов.