Skip to main content
Version: Indeed Access Manager 8.2

Indeed AM Messages Proxy

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

Системные требования

  • Windows Server 2012 R2 и выше;
  • Internet Information Services 7.5 и выше со следующими модулями:
    • Веб-сервер (Web server);
    • Сжатие статического содержимого (Static Content Compression);
    • Ошибки HTTP (HTTP Errors);
    • Перенаправление HTTP (HTTP Redirection);
    • Проверка подлинности Windows (Windows Authentication);
    • Публикация WebDAV (WebDAV Publishing);
    • ASP.NET;
    • ASP;
    • Расширения ISAPI (ISAPI Extensions);
    • Фильтры ISAPI (ISAPI Filters);
    • Консоль управления службами IIS (IIS Management Console);
    • Сценарии и средства управления IIS (IIS Management Scripts and Tools);
    • Служба управления (Management Service).

Предварительная настройка

  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 <номер версии>/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).