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
Перед установкой компонента установите WebDeploy версии 10.0.1973 или выше и ознакомьтесь с системными требованиями.
Чтобы установить Phone Management Server:
Откройте командную строку с правами администратора.
Перейдите в папку Distrib компонента EAPhoneServer.
Чтобы запустить установку компонента, используйте команду:
```
EA.PhoneManagementServer.deploy.cmd /Y
```После успешной установки в Диспетчере IIS отобразится отдельное веб-приложение EAPhoneServer.
Настроить Phone Management Server
Откройте компонент EAPhoneServer в Диспетчере IIS.
Откройте Проверка подлинности и включите параметр Обычная проверка подлинности. Отключите все остальные методы проверки подлинности.
Откройте Правила авторизации. Измените существующее правило или добавьте новое. В настройках укажите пользователя или группу пользователей, которым будет доступен вызов методов API:
- При указании группы пользователей указывается значение атрибута name данной группы.
- При указании пользователя указывается значение атрибута sAMAccountName или userPrincipalName.
ПримечаниеДанная настройка рекомендуется для обеспечения безопасного доступа к компоненту EAPhoneServer.
Настроить политику
Чтобы предоставить сервисному пользователю необходимые права для работы, настройте политику. Для этого:
В Management Console перейдите на страницу основной политики, которая распространяется на целевых пользователей системы.
Перейдите на вкладку Администраторы и добавьте сервисного пользователя для компонента Phone Management Server с ролью Администратор или Оператор.
Редактировать конфигурационный файл
Откройте конфигурационный файл C:\inetpub\wwwroot\EAPhoneServer\Web.config от имени администратора.
В разделе
appSettings
задайте значения следующих параметров:В строке с параметром
key
со значением username задайте значение для параметраvalue
. В значении укажите имя пользователя в формате UPN, созданного для работы с Phone Management Server. От имени этого пользователя будут выполняться запросы к API.Пример<add key="username" value="eaphone@indeed.local" />
В строке с параметром
key
со значением password задайте значение для параметраvalue
. В значении укажите пароль пользователя, созданного для работы с Phone Management Server.Пример<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) в параметре Телефон будут отображаться данные сервисного пользователя.
Изменение
Если в конфигурационном файле Phone Management Server для параметра ReplaceUpdateWithCreate
задано значение true
, вместо этого метода будут последовательно использоваться методы удаления и регистрации номера телефона.
Скрипт по работе с данным методом 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) в данном параметре будут отображаться данные сервисного пользователя.