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 и выше.


  1. Откройте командную строку с правами администратора.
  2. Перейдите в папку Distrib компонента EAPhoneServer.
  3. Запустите установку компонента через вызов команды: 

    EA.PhoneManagementServer.deploy.cmd /Y


  4. После успешной установки в IIS Manager отобразится отдельное Web приложение EAPhoneServer.

Удаление компонента EAPhoneServer

  1. Остановите IIS сервер с компонентом EaPhone Server.
  2. Откройте папку C:\inetpub\wwwroot.
  3. Удалите папку “EAPhoneServer” со всем содержимым. 
  4. Удалите приложение “EAPhoneServer” в IIS Manager.

Настройка компонента 

  1. Откройте компонент EAPhoneServer в IIS Manager.
  2. Откройте "Проверка подлинности" и включите параметр "Обычная проверка подлинности". Все остальные методы проверки подлинности требуется отключить.
  3. Откройте "Правила авторизации". Измените существующее правило или добавьте новое. В настройках укажите пользователя или группу пользователей, которым будет доступен вызов методов API.

    Данную настройку рекомендуется выполнить в целях обеспечения безопасного доступа к компоненту EAPhoneServer.


    При указании группы пользователей указывается значение атрибута name данной группы. 

    При указании пользователя указывается значение атрибута sAMAccountName или userPrincipalName.


Настройка конфигурационного файла

Для сохранения изменений в конфигурационном файле приложения, требуется запустить редактор с правами администратора. 

  1. Откройте конфигурационный файл компонента Web.config (C:\inetpub\wwwroot\EAPhoneServer\Web.config).
  2. В теге appSettings выполните следующие настройки:

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


    1. В строке с параметром key, со значением username, задайте значение для параметра value. В значении укажите имя пользователя в формате UPN, созданного для работы с компонентом. 


      <add key="username" value="Admin-API@new.loc" />


    2. В строке с параметром key, со значением password, задайте значение для параметра value. В значении укажите пароль пользователя.

      <add key="password" value="Q1q2E3e4" />


    3. В строке с параметром 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" />


  3. Задайте url для подключения к лог серверу. Редактируем тег logServer.
    1. URL - url для подключения к log серверу в формате http(s)://полное_dns_имя_сервера/ils/api.
    2. CertificateThumbprint - если закрытый ключ в реестре, а сертификат в хранилище компьютера.
    3. CertificateFilePath - если ключевая пара в pfx.
    4. CertificateFilePassword - пароль от pfx.

      <logServer Url="http://dc2.new.loc/ils/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword="" />


  4. Создайте папку для хранения локального кэша событий. По умолчанию задан путь: D:\Temp\IndeedIdServerEventLog\EaPhoneEventCache. Создайте указанную по умолчанию папку, либо укажите любой другой локальный путь. Выдайте полный доступ для пользователя IIS_IUSRS на конечную папку. 

    <logServerClient AppId="ea" Component="server" EventCacheDirectory="C:\inetpub\wwwroot\EAPhoneServer\EventCache" LogServerTargetConfigFile="" />


  5. Для значения параметра connectionString укажите полный URL доступного сервера Indeed AM или балансировщика в формате:

    http/https://<Полное DNS имя сервера Indeed AM или балансировщика>/easerver/


    <add name="EAWebAPIURL" connectionString="http://dc2.new.loc/easerver/" />


  6. Шифрование и расшифровка параметров в теге appSettings.

    Настройка рекомендована в целях обеспечения безопасности.


    1. Для шифрования выполните следующую команду в командной строке с правами администратора:

      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pe "appSettings" -app "/EAPhoneServer" -prov "DataProtectionConfigurationProvider"

    2. Для расшифровки выполните следующую команду в командной строке с правами администратора:

      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pd "appSettings" -app "/EAPhoneServer"

Доступ у UI компонента

Для доступа к UI компонента выполните следующее:

  1. Откройте URL: http(s)://<Полное DNS имя сервера с компонентом EAPhoneServer>/EAPhoneServer/swagger
  2. Выполните авторизацию под пользователем который входит в группу, настроенную в "Правила авторизации". Для входа укажите имя пользователя в формате UPN.

Описание методов API компонента

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

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


Регистрация 


Для регистрации событий требуется заменить файл eaSchema.config на Log сервере , если используется SQL база данных. Или обновить компонент IndeedAM.Server.EventLog -  при использовании в качестве хранилища события Windows.


Скрипт по работе с данным методом API доступен по ссылке.


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

  1. Входные данные: 
    1. Username - Имя пользователя в формате UPN для которого следует зарегистрировать номер телефона. 
    2. Phone - Номер телефона пользователя, который следует зарегистрировать в системе.
  2. Выходные данные: HTTP ответ с кодом состояния HTTP.
  3. Пример запроса:
    1. URL - http://AmIndeed.demo.local/EAPhoneServer/api/IID/CreatePhone
    2. Данные - ‘{ "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), в данном параметре будут отображаться данные Сервисного пользователя.


Изменение

Скрипт по работе с данным методом API доступен по ссылке.

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

  1. Входные данные :
    1. Phone - Номер телефона пользователя, который следует зарегистрировать в системе.
    2. Username - Имя пользователя в формате UPN для которого следует изменить номер телефона.
  2. Выходные данные: HTTP ответ с кодом состояния HTTP.
  3. Пример запроса: 
    1. URL - http://AmIndeed.demo.local/EAPhoneServer/api/IID/UpdatePhone
    2. Данные - ‘{ "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), в данном параметре будут отображаться данные Сервисного пользователя.


Удаление

Скрипт по работе с данным методом API доступен по ссылке.

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

  1. Входные данные:
    1. Username - Имя пользователя в формате UPN для которого следует удалить номер телефона.
  2. Выходные данные: HTTP ответ с кодом состояния HTTP.
  3. Пример запроса:
    1. URL - http://AmIndeed.demo.local/EAPhoneServer/api/IID/DeletePhone
    2. Данные - ‘{ "Username": "User@demo.local"}’


Генерируемые события

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

Успешное удаление

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

  • Описание: Телефонный номер успешно удален.
  • Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames. 
  • Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
  • Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации.  

Ошибка при удалении 

При возникновении ошибки, во время удаления провайдера, генерируется событие с уникальным Id - 2075. Тело события содержит: 

  • Описание: Ошибка удаления телефонного номера.
  • Пользователь - В данном параметре указывается пользователь, для которого была выполнена регистрация. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
  • Сервисный пользователь - В данном параметре указывается пользователь, который указан в качестве администратора компонента EAPhoneServer в конфигурационном файле. Формат имени пользователя задается в конфигурационном файле, в параметре lognames.
  • Пользователь API - В данном параметре указывается пользователь, который был аутентифицирован по Basic аутентификации перед использованием метода API. Имя отображается в формате, который был указан при вводе в форму аутентификации. 
  • Описание ошибки - В данном параметре указывается более подробное описание возникшей ошибки. 
  • Инициатор ошибки - В данном параметре указывается пользователь, по причине которого возникла ошибка. 

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