- Created by Vladislav Fomichev, last modified on Sep 16, 2020
Id
Информация
Для настройки компонента требуется установить компонент "Обычная проверка подлинности" .
Для использования компонента потребуется указать пользователя с правами администратора с системе Indeed AM для групп прав:
- Управление аутентификаторами пользователя.
- Регистрация аутентификаторов.
Indeed AM Phone Management Server - это Web-приложение, которое работает на базе IIS. Данный компонент предоставляет облегченное API для регистрации, изменения и удаления номеров в базе данных SQL.
Информация
Для для регистрации, изменения и удаления номеров в базе данных SQL требуется установка Indeed AM Storage SMS OTP Provider.
Информация
Файлы для EAPhone Management Server расположены: indeed AM\Indeed AM Phone Management Server\Distrib\
- Distrib\EA.PhoneManagementServer.deploy.cmd - Cmd файл необходимый для установки компонента.
- Scripts\ - Power Shell скрипты с примером вызова каждого метода API.
- WebDeploy_amd64_en-US.msi - Пакет для установки компонента WebDeploy версии 10.0.1973
Установка компонента
Информация
Для установки компонента требуется установить WebDeploy версии 10.0.1973 и выше.
- Откройте командную строку с правами администратора.
- Перейдите в папку Distrib компонента EAPhoneServer.
Запустите установку компонента через вызов команды:
EA.PhoneManagementServer.deploy.cmd /Y
- После успешной установки в IIS Manager отобразится отдельное Web приложение EAPhoneServer.
Удаление компонента EAPhoneServer
- Остановите IIS сервер с компонентом EaPhone Server.
- Откройте папку C:\inetpub\wwwroot.
- Удалите папку “EAPhoneServer” со всем содержимым.
- Удалите приложение “EAPhoneServer” в IIS Manager.
Настройка компонента
- Откройте компонент EAPhoneServer в IIS Manager.
- Откройте "Проверка подлинности" и включите параметр "Обычная проверка подлинности". Все остальные методы проверки подлинности требуется отключить.
Откройте "Правила авторизации". Измените существующее правило или добавьте новое. В настройках укажите пользователя или группу пользователей, которым будет доступен вызов методов API.
Информация
Данную настройку рекомендуется выполнить в целях обеспечения безопасного доступа к компоненту EAPhoneServer.
Информация
При указании группы пользователей указывается значение атрибута name данной группы.
При указании пользователя указывается значение атрибута sAMAccountName или userPrincipalName.
Настройка конфигурационного файла
Информация
Для сохранения изменений в конфигурационном файле приложения, требуется запустить редактор с правами администратора.
- Откройте конфигурационный файл компонента Web.config (C:\inetpub\wwwroot\EAPhoneServer\Web.config).
В теге appSettings выполните следующие настройки:
Информация
От имени указанного пользователя будут выполняться запросы к API.
В строке с параметром key, со значением username, задайте значение для параметра value. В значении укажите имя пользователя в формате UPN, созданного для работы с компонентом.
Пример<add key="username" value="Admin-API@new.loc" />
В строке с параметром 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 для подключения к лог серверу. Редактируем тег logServer.
- URL - url для подключения к log серверу в формате http(s)://полное_dns_имя_сервера/ils/api.
- CertificateThumbprint - если закрытый ключ в реестре, а сертификат в хранилище компьютера.
- CertificateFilePath - если ключевая пара в pfx.
CertificateFilePassword - пароль от pfx.
Пример<logServer Url="http://dc2.new.loc/ils/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword="" />
Создайте папку для хранения локального кэша событий. По умолчанию задан путь: D:\Temp\IndeedIdServerEventLog\EaPhoneEventCache. Создайте указанную по умолчанию папку, либо укажите любой другой локальный путь. Выдайте полный доступ для пользователя IIS_IUSRS на конечную папку.
Пример<logServerClient AppId="ea" Component="server" EventCacheDirectory="C:\inetpub\wwwroot\EAPhoneServer\EventCache" LogServerTargetConfigFile="" />
Для значения параметра connectionString укажите полный URL доступного сервера Indeed AM или балансировщика в формате:
http/https://<Полное DNS имя сервера Indeed AM или балансировщика>/easerver/
Пример<add name="EAWebAPIURL" connectionString="http://dc2.new.loc/easerver/" />
Шифрование и расшифровка параметров в теге appSettings.
Информация
Настройка рекомендована в целях обеспечения безопасности.
Для шифрования выполните следующую команду в командной строке с правами администратора:
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"
Доступ у UI компонента
Для доступа к UI компонента выполните следующее:
- Откройте URL: http(s)://<Полное DNS имя сервера с компонентом EAPhoneServer>/EAPhoneServer/swagger
- Выполните авторизацию под пользователем который входит в группу, настроенную в "Правила авторизации". Для входа укажите имя пользователя в формате UPN.
Описание методов API компонента
Информация
Входные данные передаются в формате JSON. Для вызова метода API используется URL в формате:
http/https://<Полное DNS имя сервера с компонентом EAPhoneServer>/EAPhoneServer/<метод API>
Регистрация
Информация
Для регистрации событий требуется заменить файл eaSchema.config на Log сервере , если используется SQL база данных. Или обновить компонент IndeedAM.Server.EventLog - при использовании в качестве хранилища события Windows.
Для регистрации номера телефона используется 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
Успешная регистрация
При успешной регистрации провайдера генерируется событие с уникальным Id - 1088. Тело события содержит:
- Описание: Телефонный номер успешно зарегистрирован.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
Ошибка при регистрации
При возникновении ошибки, во время регистрации провайдера, генерируется событие с уникальным Id - 2073. Тело события содержит:
- Описание: Ошибка регистрации телефонного номера.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
- Описание ошибки - В данном параметре указывается более подробное описание возникшей ошибки.
Инициатор ошибки - В данном параметре указывается пользователь, по причине которого возникла ошибка.
Информация
В случае возникновения ошибки при логоне в систему или возникновения ошибки доступа(403), в данном параметре будут отображаться данные Сервисного пользователя.
Изменение
Для изменения номера телефона используется 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.
Успешное изменение
При успешном изменении провайдера генерируется событие с уникальным Id - 1089. Тело события содержит:
- Описание: Телефонный номер успешно изменен.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
Ошибка при изменении
При возникновении ошибки, во время изменения провайдера, генерируется событие с уникальным Id - 2074. Тело события содержит:
- Описание: Ошибка изменения телефонного номера.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
- Описание ошибки - В данном параметре указывается более подробное описание возникшей ошибки.
Инициатор ошибки - В данном параметре указывается пользователь, по причине которого возникла ошибка.
Информация
В случае возникновения ошибки при логоне в систему или возникновения ошибки доступа(403), в данном параметре будут отображаться данные Сервисного пользователя.
Удаление
Для удаления номера телефона используется POST запрос к методу API: /api/IID/DeletePhone
- Входные данные:
- Username - Имя пользователя в формате UPN для которого следует удалить номер телефона.
- Выходные данные: HTTP ответ с кодом состояния HTTP.
- Пример запроса:
- URL - http://AmIndeed.demo.local/EAPhoneServer/api/IID/DeletePhone
- Данные - ‘{ "Username": "User@demo.local"}’
Генерируемые события
Информация
В качестве примера используется формат имени: DistinguishedName, SamCompatibleName.
Успешное удаление
При успешном удалении провайдера генерируется событие с уникальным Id - 1090. Тело события содержит:
- Описание: Телефонный номер успешно удален.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
Ошибка при удалении
При возникновении ошибки, во время удаления провайдера, генерируется событие с уникальным Id - 2075. Тело события содержит:
- Описание: Ошибка удаления телефонного номера.
- Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
- Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.
- Описание ошибки - В данном параметре указывается более подробное описание возникшей ошибки.
Инициатор ошибки - В данном параметре указывается пользователь, по причине которого возникла ошибка.
Информация
В случае возникновения ошибки при логоне в систему или возникновения ошибки доступа(403), в данном параметре будут отображаться данные Сервисного пользователя.
- No labels