Indeed Phone Management Server
Indeed Phone Management Server (Phone Management Server ) — это веб-приложение, которое работает на базе IIS. Этот компонент предоставляет облегченное API для регистрации, изменения и удаления номеров в базе данных SQL.
Для регистрации, изменения и удаления номеров в базе данных SQL требуется установка Indeed AM Storage SMS OTP Provider.
Для работы с приложением требуется установить компонент Обычная проверка подлинности (Basic Authentication) для сервера IIS.
Файлы для установки
Файлы для Phone Management Server расположены в папке indeed AM <номер версии>/Indeed AM Phone Management Server/Distrib.
- Distrib\EA.PhoneManagementServer.deploy.cmd — файл .cmd, необходимый для установки компонента;
- Scripts <номер версии>\ — скрипты PowerShell с примером вызова каждого метода API;
- WebDeploy_amd64_en-US.msi — пакет для установки компонента WebDeploy 3.6 версии 10.0.1973.
Установка Phone Management Server
Для установки компонента требуется установить WebDeploy версии 10.0.1973 и выше.
Откройте командную строку с правами администратора.
Перейдите в папку Distrib компонента EAPhoneServer.
Запустите установку компонента через вызов команды:
EA.PhoneManagementServer.deploy.cmd /Y
После успешной установки в IIS Manager отобразится отдельное веб-приложение EAPhoneServer.
Настройка Phone Management Server
Откройте компонент EAPhoneServer в IIS Manager.
Откройте Проверка подлинности и включите параметр Обычная проверка подлинности. Отключите все остальные методы проверки подлинности.
Откройте Правила авторизации. Измените существующее правило или добавьте новое. В настройках укажите пользователя или группу пользователей, которым будет доступен вызов методов API.
ПримечаниеДанную настройку рекомендуется выполнить в целях обеспечения безопасного доступа к компоненту EAPhoneServer.
ИнформацияПри указании группы пользователей указывается значение атрибута name данной группы.
При указании пользователя указывается значение атрибута sAMAccountName или userPrincipalName.
Настройка политики
Политику необходимо настроить, чтобы предоставить сервисному пользователю необходимые права для работы.
В Management Console перейдите на страницу основной политики, которая распространяется на целевых пользователей системы.
Перейдите на вкладку Администраторы и добавьте сервисного пользователя для компонента Phone Management Server с ролью Администратор.
Настройка конфигурационного файла
Чтобы сохранить изменения в конфигурационном файле Phone Management Server, запустите редактор с правами администратора.
Откройте конфигурационный файл Web.config (находится в папке C:\inetpub\wwwroot\EAPhoneServer).
В теге
appSettings
выполните следующие настройки:В строке с параметром
key
со значением username задайте значение для параметраvalue
. В значении укажите имя пользователя в формате UPN, созданного для работы с Phone Management Server.ПримечаниеОт имени указанного пользователя будут выполняться запросы к API.
Пример<add key="username" value="eaphone@indeed.local" />
В строке с параметром
key
со значением password задайте значение для параметраvalue
. В значении укажите пароль пользователя.Пример<add key="password" value="Q1q2E3e4" />
В строке с параметром
key
со значением lognames задайте формат логирования имен пользователей. Поддерживаемые форматы:СоветЕсли необходимо указать несколько форматов, укажите их значения через запятую.
Id
— идентификатор пользователя в системе Indeed AM в формате rootUserCatalogProviderId_Guid;Name
— значение атрибута name из Active Directory;CanonicalName
— имя пользователя в формате Canonical-Name (myserver.demo.local/users/UserName);PrincipalName
— значение атрибута userPrincipalName из Active Directory;SamCompatibleName
— имя пользователя в формате domainName\UserName;DistinguishedName
— значение атрибута distinguishedName из Active Directory;Sid
— значение атрибута objectSid из Active Directory;Email
— значение атрибута mail из Active Directory или значение, указанное в конфигурационном файле сервера;Phone
— значение атрибута telephoneNumber из Active Directory или значение, указанное в конфигурационном файле сервера.Пример<add key="lognames" value="PrincipalName,Sid" />
Задайте URL для подключения к Indeed Log Server. Отредактируйте тег
logServer
:URL
— URL для подключения к Log Server в формате http(s)://полное_dns_имя_сервера/ls/api;CertificateThumbprint
— если закрытый ключ в реестре, а сертификат в хранилище компьютера;CertificateFilePath
— если ключевая пара в формате pfx;CertificateFilePassword
— пароль от файла pfx;Пример<logServer Url="http://dc2.new.loc/ls/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword="" />
Создайте папку для хранения локального кеша событий. По умолчанию задан путь D:\Temp\IndeedIdServerEventLog\EaPhoneEventCache. Создайте указанную по умолчанию папку, либо укажите любой другой локальный путь. Выдайте полный доступ для пользователя IIS_IUSRS на конечную папку.
Пример<logServerClient AppId="ea" Component="server" EventCacheDirectory="C:\inetpub\wwwroot\EAPhoneServer\EventCache" LogServerTargetConfigFile="" />
Для значения параметра
connectionString
укажите полный URL доступного Core Server или балансировщика в формате:http/https://<полное DNS-имя Core Server или балансировщика>/am/core/
Пример<add name="EAWebAPIURL" connectionString="http://dc2.new.loc/am/core/" />
Шифрование и дешифрование конфигурационного файла
Настройка рекомендована в целях обеспечения безопасности.
Для шифрования выполните следующую команду в командной строке с правами администратора:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pe "appSettings" -app "/EAPhoneServer" -prov "DataProtectionConfigurationProvider"
Для расшифровки выполните следующую команду в командной строке с правами администратора:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pd "appSettings" -app "/EAPhoneServer"
Удаление Phone Management Server
- Остановите сервер IIS с компонентом Phone Management Server.
- Откройте папку C:\inetpub\wwwroot.
- Удалите папку EAPhoneServer со всем содержимым.
- Удалите приложение EAPhoneServer в IIS Manager.
- Возобновите работу IIS.
Доступ к UI API
Для доступа к UI Phone Management Server выполните следующее:
- Перейдите по адресу: http(s)://<полное DNS-имя сервера с компонентом Phone Management Server>/EAPhoneServer/swagger.
- Выполните авторизацию под пользователем, который входит в группу, настроенную в разделе Правила авторизации. Для входа укажите имя пользователя в формате 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;
- Пример запроса:
- URL — http://AmIndeed.demo.local/EAPhoneServer/api/IID/CreatePhone
- Данные — ‘{ "Username": "User@demo.local", "Phone": "123456"}’
Успешная регистрация
В качестве примера используется формат имени 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) в параметре Телефон будут отображаться данные сервисного пользователя.
Изменение
Скрипт по работе с данным методом API доступен в этой статье базы знаний.
Для изменения номера телефона используется POST-запрос к методу API:
/api/IID/UpdatePhone
- Входные данные :
- Phone — номер телефона пользователя, который нужно зарегистрировать в системе;
- Username — имя пользователя в формате UPN, для которого нужно изменить номер телефона;
- Выходные данные: HTTP-ответ с кодом состояния HTTP;
- Пример запроса:
- URL — http://AmIndeed.demo.local/EAPhoneServer/api/IID/UpdatePhone
- Данные — ‘{ "Username": "User@demo.local", "Phone": "654321"}’
Успешное изменение
В качестве примера используется формат имени: 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;
- Пример запроса:
- URL — http://AmIndeed.demo.local/EAPhoneServer/api/IID/DeletePhone
- Данные — ‘{ "Username": "User@demo.local"}’
Успешное удаление
В качестве примера используется формат имени: DistinguishedName, SamCompatibleName.
При успешном удалении провайдера генерируется событие с уникальным идентификатором 1090.
Тело события содержит:
- Описание — телефонный номер успешно удален.
- Пользователь — в данном параметре указывается пользователь, для
которого был удален номер телефона. Формат имени пользователя
задается в конфигурационном файле в параметре
lognames
. - Инициатор — в данном параметре указывается пользователь, который
указан в качестве администратора компонента Phone Management Server в
конфигурационном файле. Формат имени пользователя задается в
конфигурационном файле в параметре
lognames
. - Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
Ошибка при удалении
При возникновении ошибки во время удаления провайдера генерируется событие с уникальным идентификатором 2075.
Тело события содержит:
Описание — ошибка удаления телефонного номера.
Пользователь — в данном параметре указывается пользователь, для которого был удален номер телефона. Формат имени пользователя задается в конфигурационном файле в параметре
lognames
.Инициатор — в данном параметре указывается пользователь, который указан в качестве администратора компонента Phone Management Server в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле в параметре
lognames
.Пользователь API — в данном параметре указывается пользователь, который был аутентифицирован по обычной проверке подлинности (Basic Authentication) перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
Описание ошибки — в данном параметре указывается подробное описание возникшей ошибки.
Инициатор ошибки — в данном параметре указывается пользователь, по причине которого возникла ошибка.
ПримечаниеВ случае возникновения ошибки при входе в систему или возникновения ошибки доступа (403) в данном параметре будут отображаться данные сервисного пользователя.