Skip to main content

Indeed AM Messages Proxy

Indeed AM Messages Proxy (Messages Proxy) — это веб-приложение, которое работает на базе IIS. Messages Proxy предоставляет Web API для отправки OTP при помощи запуска внешних модулей (скрипты, бинарные исполняемые модули). В отличие от SMS Proxy, Messages Proxy не подключается к SMPP-шлюзу, а только запускает скрипты (любой исполняемый файл).

Файлы для установки

Файлы для установки Messages Proxy расположены в папке Indeed AM <Номер версии>\Indeed AM Messages Proxy:

  • <Номер версии>\IndeedAM.Proxies.Messages-<номер версии>.x64.ru-ru.msi — пакет для установки Indeed AM Messages Proxy x64 версии;
  • <Номер версии>\IndeedAM.Proxies.Messages-<номер версии>.x86.ru-ru.msi — пакет для установки Indeed AM Messages Proxy x86 версии.

Предварительные требования

  1. Установите роль IIS на сервере, на котором вы планируете устанавливать Messages Proxy, одним из следующих способов:
    • откройте Диспетчер серверов, выберите Локальный сервер и во вкладке Управление нажмите Добавить роли и компоненты;
    • запустите скрипт \Misc\IISScripts\Indeed.Main.IIS.Install.MSServer.ps1.
  2. Установите .NET 6 через запуск dotnet-hosting-6.0.10-win.exe из папки Indeed AM <номер версии>/Indeed AM Idp дистрибутива.

Установка

  1. Выполните установку Indeed AM Messages Proxy через запуск соответствующего пакета.
  2. После завершения установки может потребоваться перезагрузка системы. Если программа установки предлагает выполнить перезагрузку, подтвердите данное действие.
  3. Удаление/Восстановление продукта осуществляется стандартным для поддерживаемых ОС способом через меню Панель управления.

Подготовка сертификатов для Messages Proxy и Core Server

В процессе установки модуля Indeed AM Messages Proxy по умолчанию включается требование SSL-сертификата, что, в свою очередь, требует настройки HTTPS.

На сервере Indeed AM Messages Proxy (сервер)

Для запроса сертификата от доменного центра сертификации Windows выполните следующие действия:

  1. Откройте диспетчер сертификатов certlm.msc.

  2. В каталоге Личное нажмите правой кнопкой мыши на Сертификаты и выберите Все задачи→Запросить новый сертификат.

  3. В окне Регистрация сертификатов нажмите Далее→Далее, выберите созданный ранее шаблон сертификата веб-сервера и нажмите Требуется больше данных для подачи заявки на этот сертификат.

  4. В появившемся окне Свойства сертификата добавьте следующие значения и нажмите OK:

    • Имя субъекта: в поле Тип укажите значение Общее имя, а в поле Значение — полное имя компьютера (Srv01.indeed.local) или сокращенное (Srv01).
    • Дополнительное имя: в поле Тип укажите значение Служба DNS, а в поле Значение — полное имя компьютера (Srv01.indeed.local).
  5. Запустите Диспетчер служб IIS.

  6. Перейдите на страницу Srv01(INDEED\Admin-indeed)→Сайты→Default Web Site и в разделе Действия нажмите Привязки.

  7. Выберите строчку с https 443 и нажмите Изменить. В открывшемся окне Изменение привязки сайта в выпадающем списке SSL-сертификат выберите ваш сертификат и нажмите OK.

  8. Выберите строчку с http 80 и нажмите Удалить.

Информация

Теперь в браузере можно открыть стартовую страницу IIS по адресу https://Srv01.indeed.local/ (соединение безопасное).

На Core Server (клиент)

Сгенерируйте сертификат клиентской аутентификации. За основу можно взять шаблон Компьютер в доменном центре сертификации Windows. Для этого на машине с Core Server:

  1. Откройте диспетчер сертификатов certlm.msc.

  2. В каталоге Личное нажмите правой кнопкой мыши на Сертификаты и выберите Все задачи→Запросить новый сертификат.

  3. В окне Регистрация сертификатов нажмите Далее→Далее, выберите созданный ранее шаблон сертификата Компьютер.

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

  1. Откройте на сервере Messages Proxy конфигурационный файл app-settings.Production.json из папки C:\inetpub\wwwroot\am\proxies\messages.

  2. В поле Scripts укажите следующие значения:

    • Path — путь к программе, через которую запускается скрипт,
    • Arguments — параметры запуска скрипта, включая путь к скрипту,
    • Timeout — время, по истечении которого Messages Proxy вернет ошибку, если скрипт не выполнится. Значение по умолчанию — 00:00:20 (20 секунд).
    Информация

    В поле Scripts можно добавить более одного скрипта, для этого нужно через запятую указать несколько блоков с параметрами для каждого скрипта. Также можно задать очередность запуска скриптов — последовательный (Sequential) и одновременный (Parallel) запуск. Если этот параметр не задан, то используется значение по умолчанию — Sequential.

  3. В поле LoggingPermissions укажите параметры, которые определяют информацию для логирования. Возможные параметры:

    • Source— отправитель сообщения,
    • Destination— получатель сообщения,
    • Error — ошибки выполнения скрипта,
    • Output— сообщения при выполнении скрипта,
    • None (значение по умолчанию) — скрываются значения всех логируемых полей,
    • All — показываются значения всех логируемых полей.

    Например, если в LoggingPermissions указан параметр Source, то отправитель сообщения логируется (не скрывается). Все остальные параметры скрываются и заменяются на ***. Логи находятся в папке C:\inetpub\wwwroot\am\proxies\messages\Logs\<папка с датой>*.

  4. Поле Publication включает опциональный параметр DefaultSource, содержащий имя отправителя SMS по умолчанию.

  5. Опционально можно настроить параметр для включения Swagger. В поле Documentation для параметра Enabled укажите значение true. Swagger будет доступен по адресу /am/proxies/messages/documentation.

  1. В поле Authentication": { "Certificate": { "Thumbprint": "" } } укажите отпечаток сертификата (клиента), по которому провайдер (SMS или Storage SMS) может быть аутентифицирован в Messages Proxy для отправки сообщений. Можно использовать несколько сертификатов от нескольких клиентов, в таком случае поле будет называться "Thumbprints".
Пример конфигурационного файла
{
"MessagesProxy": {
"Scripts": [
{
"Path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"Arguments":
[
"/c", "C:\\inetpub\\wwwroot\\am\\proxies\\messages\\script.bat",
"{0:Source}",
"{0:Content}",
"{0:Phone}",
"{0:RawObjectId}",
"{0:Sid}",
"{0:DistinguishedName}",
"{0:PrincipalName}",
"{0:SamCompatibleName}",
"{0:Email}",
"{0:CustomParameter}"
],
"Timeout": "00:00:10"
}
],
"LoggingPermissions": "Source"
},
"Publication": {
"DefaultSource": "Indeed sender"
},
"Documentation": {
"Enabled": false
},
"Debug": {
"ExceptionResponsesEnabled": false
},
"Authentication": {
"Certificate": {
"Thumbprint": "124b3c62f4da3ce8bb271dc4990e354d118daa0g"
}
},
"ReverseProxyIntegration": {
"BasePath": "/am/proxies/messages"
},
"Localization": {
"DefaultCulture": "en-US"
}
}

Скрипт

В файле со скриптом происходит чтение параметров, переданных из Messages Proxy. Параметры записываются в файл C:\distr\ps.json (параметр fileName из примера скрипта Powershell). При использовании Messages Proxy через SMS-провайдер OTP будет передаваться в параметре Content.

Пример скрипта Powershell

$body = @(
@{
Source = $args[0]
Content = $args[1]
Phone = $args[2]
RawObjectId = $args[3]
Sid = $args[4]
DistinguishedName = $args[5]
PrincipalName = $args[6]
SamCompatibleName = $args[7]
Email = $args[8]
CustomParameter = "I am PS"
}
)

$body | ConvertTo-Json | Out-File "C:\distr\ps.json"

Invoke-WebRequest -Method Post -Uri 'http://Srv01.indeed.local:82/api/sms' -Body ($body|ConvertTo-Json) -ContentType 'application/json'

Start-Sleep -Seconds 5

Настройка провайдера SMS OTP/Storage SMS OTP

С помощью групповых политик выполните настройку провайдера SMS OTP или Storage SMS OTP для отправки OTP через Messages Proxy. Перед настройкой групповых политик добавьте шаблоны политик Indeed AM в список административных шаблонов. Файлы шаблонов политик входят в состав дистрибутива Messages Proxy и расположены в каталоге Misc.

Выбор типа подключения

Политика Выбор типа подключения для провайдера применяется к серверам Indeed AM и предназначена для выбора типа подключения Core Server (с помощью провайдера SMS OTP или Storage SMS OTP) к SMS-шлюзу.

  1. Откройте политику Выбор типа подключения для провайдера. Политика расположена по следующему пути: Административные шаблоны→Indeed-ID→Id Providers→SMS OTP.

  2. Установите значение политики Включено.

  3. В параметрах выберите опцию Прокси сообщений для Messages Proxy.

Настройки типа подключения

Политика Настройки прокси сообщений применяется к серверам Indeed AM и определяет настройки типа подключения.

  1. Откройте политику Настройки прокси сообщений. Политика расположена по следующему пути: Административные шаблоны→Indeed-ID→Id Providers→SMS OTP.

  2. Установите значение политики Включено.

  3. Задайте следующие параметры:

    • URL — адрес подключения к серверу;
    • Отправитель — имя отправителя, которое будет отображаться при получении сообщения;
    • Дополнительный текст перед отправкой OTP — произвольный текст сообщения, предшествующий одноразовому паролю;
    • Отпечаток сертификата клиента — сертификат провайдера, указанный в настройках конфигурационного файла Messages Proxy app-settings.Production.json (поле Authentication": {"Certificate": { "Thumbprint": "" } });
    • Отпечаток сертификата сервера — сертификат Messages Proxy для работы по протоколу HTTPS (настраивается в IIS).