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

Indeed Phone Management Server

Indeed Phone Management Server (Phone Management Server ) — это веб-приложение, которое предоставляет облегченное API для регистрации, изменения и удаления номеров в базе данных SQL.

Для регистрации, изменения и удаления номеров в базе данных SQL требуется установка Indeed AM Storage SMS OTP Provider.

Установка Phone Management Server

  1. Скачайте архив phone-management-<номер_версии>.tar.gz, загрузите его на целевой хост в необходимый каталог.

  2. Перейдите в каталог с архивом и распакуйте его с помощью команды:

    sudo tar -xf <имя архива>.tar.gz
  3. Перейдите в каталог phone-management, куда распаковался архив, и импортируйте образ Docker с помощью команды:

    sudo docker load -i <имя архива>.tar

Настройка сертификатов

  1. В каталоге phone-management создайте каталог ssl/.

  2. Добавьте в него следующие сертификаты:

    • <серверный сертификат>.pfx — серверный сертификат, выписанный на DNS-имя машины.
    • <публичный сертификат>.cer — публичный сертификат домена в формате Base64. Если публичный сертификат выдан не доменным удостоверяющим центром (УЦ), добавьте публичный сертификат стороннего УЦ.

Редактирование файла .env

  1. Откройте файл phone-management/.env.

  2. Задайте значения для следующих переменных:

    • Для переменной AM_UID укажите идентификатор пользователя, под которым будет работать Access Manager в Docker.
    • Для переменной AM_GID укажите идентификатор группы, под которой будет работать Access Manager в Docker.
    • Для переменной PHONE_SERVER_HTTPS_PORT укажите номер порта для обращения к Phone Management Server. Значение по умолчанию — 5443, при необходимости его можно изменить.
    • Для переменной PHONE_SERVER_CERTIFICATE укажите имя серверного сертификата, который был размещен ранее в каталоге phone-management/ssl/.
    • Для переменной PHONE_SERVER_CA укажите имя публичного сертификата домена, который был размещен ранее в каталоге phone-management/ssl/.

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

Для настройки Phone Management Server измените конфигурационный файл /phone-management/configs/app-settings.json.

Важно!

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

  1. В разделе PhoneManagement задайте значения следующих параметров:

    • В параметре Username укажите имя пользователя в формате UPN, созданного для работы с Phone Management Server. От имени этого пользователя будут выполняться запросы к API.

    • В параметре Password укажите пароль пользователя, созданного для работы с Phone Management Server.

    • В параметре ReplaceUpdateWithCreate задайте значение false или true. Если значение true, то вместо метода API Изменение для изменения номера телефона будут последовательно использоваться методы Удаление и Регистрация.

  2. В разделе AmServer в параметре Url задайте адрес Core Server в формате https://полное_dns_имя_сервера/am/core.

  3. В разделе LogServer в параметре Url укажите адрес Log Server в формате https://полное_dns_имя_сервера/ls/api.

  4. В разделе Documentation в параметре Enabled задайте значение true, чтобы включить доступ к UI API (Swagger).

  5. В разделе Server в параметре Password укажите пароль серверного сертификата.

    Пример

    "Server": {
    "Certificates": {
    "Default": {
    "Path": "/ssl/server.pfx",
    // highlight-gray-next-line
    "Password": "Password123"

    }
    }
    },

Настройка прав

Перед запуском приложения выдайте права пользователю, под которым планируете запускать Phone Management Server в Docker. Для этого:

  1. Создайте каталоги EventCache (хранение кеша), Logs (логи) и DataProtectionKeys (ключи шифрования), запустив из каталога /opt/phone-management следующую команду:

    sudo mkdir \
    EventCache/ Logs/ DataProtectionKeys/
  2. Сделайте владельцем пользователя, данные которого вы указали в файле .env в переменных AM_UID и AM_GID, через следующую команду:

    sudo chown -R <идентификатор пользователя>:<идентификатор группы> ./*

Настройка политики

Примечание

Политику необходимо настроить, чтобы предоставить сервисному пользователю необходимые права для работы с модулем. 

  1. В Management Console перейдите на страницу основной политики, которая распространяется на целевых пользователей системы.
  2. Перейдите на вкладку Администраторы и добавьте сервисного пользователя для компонента Phone Management Server с ролью Администратор или Оператор

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

  1. В терминале перейдите в каталог с утилитой для шифрования, расположенную в дистрибутиве Phone Management Server.

    cd /phone-management/protection
  2. Выдайте права для запуска скрипта protector.sh.

    sudo chmod 440 protector.sh
  3. Чтобы зашифровать конфигурационный файл, запустите скрипт protector.sh с параметром protect.

    sudo bash ./protector.sh protect
  4. Вернитесь в каталог /phone-management.

  5. Измените права доступа на файлы с ключами.

    sudo chmod 400 ./DataProtectionKeys/*
  6. Сделайте владельцем ключей шифрования пользователя, под которым запускается Phone Management в Docker, указав данные из переменных AM_UID и AM_GID.

    sudo chown -R <идентификатор пользователя>:<идентификатор группы> ./*

Запуск, удаление и обновление Phone Management Server

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

sudo docker-compose up -d

Доступ к UI API

Чтобы получить доступ к UI Phone Management Server:

  1. Перейдите по адресу: http(s)://<полное DNS-имя сервера с компонентом Phone Management Server>/EAPhoneServer/swagger.
  2. Выполните авторизацию под пользователем, под которыми будет работать Access Manager в Docker. Укажите имя пользователя в формате UPN.

Методы API Phone Management Server

Входные данные передаются в формате JSON. Для вызова метода API используется URL в формате: 

http/https://<полное DNS-имя сервера с компонентом Phone Management Server>/EAPhoneServer/<метод API>

Регистрация

Примечание

Скрипт для работы с данным методом API доступен в этой статье базы знаний.

Для регистрации номера телефона используется POST-запрос к методу API:

/api/IID/CreatePhone
  • Входные данные: 

    • Username — имя пользователя в формате UPN, для которого нужно зарегистрировать номер телефона;
    • Phone — номер телефона пользователя, который нужно зарегистрировать в системе;
  • Выходные данные: HTTP-ответ с кодом состояния HTTP;

  • Пример запроса:

Успешная регистрация
Примечание

В качестве примера используется формат имени PrincipalName, Sid.

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

Тело события содержит:

  • Описание — телефонный номер успешно зарегистрирован.
  • Пользователь — в данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.
  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.
  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации. 
  • Телефон — в данном параметре отображается номер телефона пользователя, который будет зарегистрирован. 
Ошибка при регистрации
Примечание

В качестве примера используется формат имени PrincipalName, Sid.

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

Тело события содержит: 

  • Описание — ошибка регистрации телефонного номера.

  • Пользователь — в данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации. 

  • Описание ошибки — в данном параметре указывается более подробное описание возникшей ошибки. 

  • Инициатор ошибки — в данном параметре указывается пользователь, по причине которого возникла ошибка. 

  • Телефон — в данном параметре отображается номер телефона пользователя, который будет зарегистрирован. 

    Примечание

    В случае возникновения ошибки при входе в систему или возникновения ошибки доступа (403) в параметре Телефон будут отображаться данные сервисного пользователя.

Изменение

Примечание

Если в конфигурационном файле Phone Management Server для параметра ReplaceUpdateWithCreate задано значение true, вместо этого метода будут последовательно использоваться методы удаления и регистрации номера телефона.

Скрипт по работе с данным методом API доступен в этой статье базы знаний.

Для изменения номера телефона используется POST-запрос к методу API:

/api/IID/UpdatePhone
  • Входные данные :

    • Phone — номер телефона пользователя, который нужно зарегистрировать в системе;
    • Username — имя пользователя в формате UPN, для которого нужно изменить номер телефона;
  • Выходные данные: HTTP-ответ с кодом состояния HTTP;

  • Пример запроса:

Успешное изменение
Примечание

В качестве примера используется формат имени: Id, Name, PrincipalName.

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

Тело события содержит:

  • Описание — телефонный номер успешно изменен.
  • Пользователь — в данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле в параметре LogNames
  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.
  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.  
  • Телефон — в данном параметре отображается измененный номер телефона пользователя. 
Ошибка при изменении

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

Тело события содержит: 

  • Описание — ошибка изменения телефонного номера.

  • Пользователь — в данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации. 

  • Описание ошибки — в данном параметре указывается подробное описание возникшей ошибки. 

  • Инициатор ошибки — в данном параметре указывается пользователь, по причине которого возникла ошибка. 

  • Телефон — в данном параметре отображается измененный номер телефона пользователя. 

    Примечание

    В случае возникновения ошибки при входе в систему или возникновения ошибки доступа (403) в параметре Телефон будут отображаться данные сервисного пользователя.

Удаление

Примечание

Скрипт по работе с данным методом API доступен в этой статье базы знаний.

Для удаления номера телефона используется POST-запрос к методу API: 

/api/IID/DeletePhone
  • Входные данные:

    • Username — имя пользователя в формате UPN, для которого нужно удалить номер телефона;
  • Выходные данные: HTTP-ответ с кодом состояния HTTP;

  • Пример запроса:

Успешное удаление
Примечание

В качестве примера используется формат имени: DistinguishedNameSamCompatibleName.

При успешном удалении провайдера генерируется событие с уникальным идентификатором 1090.

Тело события содержит:

  • Описание — телефонный номер успешно удален.
  • Пользователь — в данном параметре указывается пользователь, для которого был удален номер телефона. Формат имени пользователя задается в конфигурационном файле в параметре LogNames
  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.
  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.  
Ошибка при удалении
 

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

Тело события содержит: 

  • Описание — ошибка удаления телефонного номера.

  • Пользователь — в данном параметре указывается пользователь, для которого был удален номер телефона. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре LogNames.

  • Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации. 

  • Описание ошибки — в данном параметре указывается подробное описание возникшей ошибки. 

  • Инициатор ошибки — в данном параметре указывается пользователь, по причине которого возникла ошибка. 

    Примечание

    В случае возникновения ошибки при входе в систему или возникновения ошибки доступа (403) в данном параметре будут отображаться данные сервисного пользователя.

Сбор логов

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