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 версии.
Предварительные требования
- Установите роль IIS на сервере, на котором вы планируете устанавливать Messages Proxy, одним из следующих способов:
- откройте Диспетчер серверов, выберите Локальный сервер и во вкладке Управление нажмите Добавить роли и компоненты;
- запустите скрипт \Misc\IISScripts\Indeed.Main.IIS.Install.MSServer.ps1.
- Установите .NET 6 через запуск dotnet-hosting-6.0.10-win.exe из папки Indeed AM <номер версии>/Indeed AM Idp дистрибутива.
Установка
- Выполните установку Indeed AM Messages Proxy через запуск соответствующего пакета.
- После завершения установки может потребоваться перезагрузка системы. Если программа установки предлагает выполнить перезагрузку, подтвердите данное действие.
- Удаление/Восстановление продукта осуществляется стандартным для поддерживаемых ОС способом через меню Панель управления.
Подготовка сертификатов для Messages Proxy и Core Server
В процессе установки модуля Indeed AM Messages Proxy по умолчанию включается требование SSL-сертификата, что, в свою очередь, требует настройки HTTPS.
На сервере Indeed AM Messages Proxy (сервер)
Для запроса сертификата от доменного центра сертификации Windows выполните следующие действия:
Откройте диспетчер сертификатов certlm.msc.
В каталоге Личное нажмите правой кнопкой мыши на Сертификаты и выберите Все задачи→Запросить новый сертификат.
В окне Регистрация сертификатов нажмите Далее→Далее, выберите созданный ранее шаблон сертификата веб-сервера и нажмите Требуется больше данных для подачи заявки на этот сертификат.
В появившемся окне Свойства сертификата добавьте следующие значения и нажмите OK:
- Имя субъекта: в поле Тип укажите значение Общее имя, а в поле Значение — полное имя компьютера (Srv01.indeed.local) или сокращенное (Srv01).
- Дополнительное имя: в поле Тип укажите значение Служба DNS, а в поле Значение — полное имя компьютера (Srv01.indeed.local).
Запустите Диспетчер служб IIS.
Перейдите на страницу Srv01(INDEED\Admin-indeed)→Сайты→Default Web Site и в разделе Действия нажмите Привязки.
Выберите строчку с https 443 и нажмите Изменить. В открывшемся окне Изменение привязки сайта в выпадающем списке SSL-сертификат выберите ваш сертификат и нажмите OK.
Выберите строчку с http 80 и нажмите Удалить.
Теперь в браузере можно открыть стартовую страницу IIS по адресу https://Srv01.indeed.local/ (соединение безопасное).
На Core Server (клиент)
Сгенерируйте сертификат клиентской аутентификации. За основу можно взять шаблон Компьютер в доменном центре сертификации Windows. Для этого на машине с Core Server:
Откройте диспетчер сертификатов certlm.msc.
В каталоге Личное нажмите правой кнопкой мыши на Сертификаты и выберите Все задачи→Запросить новый сертификат.
В окне Регистрация сертификатов нажмите Далее→Далее, выберите созданный ранее шаблон сертификата Компьютер.
Редактирование конфигурационного файла
Откройте на сервере Messages Proxy конфигурационный файл app-settings.Production.json из папки C:\inetpub\wwwroot\am\proxies\messages.
В поле
Scripts
укажите следующие значения:Path
— путь к программе, через которую запускается скрипт,Arguments
— параметры запуска скрипта, включая путь к скрипту,Timeout
— время, по истечении которого Messages Proxy вернет ошибку, если скрипт не выполнится. Значение по умолчанию — 00:00:20 (20 секунд).
ИнформацияВ поле
Scripts
можно добавить более одного скрипта, для этого нужно через запятую указать несколько блоков с параметрами для каждого скрипта. Также можно задать очередность запуска скриптов — последовательный (Sequential
) и одновременный (Parallel
) запуск. Если этот параметр не задан, то используется значение по умолчанию —Sequential
.В поле
LoggingPermissions
укажите параметры, которые определяют информацию для логирования. Возможные параметры:Source
— отправитель сообщения,Destination
— получатель сообщения,Error
— ошибки выполнения скрипта,Output
— сообщения при выполнении скрипта,None
(значение по умолчанию) — скрываются значения всех логируемых полей,All
— показываются значения всех логируемых полей.
Например, если в
LoggingPermissions
указан параметрSource
, то отправитель сообщения логируется (не скрывается). Все остальные параметры скрываются и заменяются на ***. Логи находятся в папке C:\inetpub\wwwroot\am\proxies\messages\Logs\<папка с датой>*.Поле
Publication
включает опциональный параметрDefaultSource
, содержащий имя отправителя SMS по умолчанию.Опционально можно настроить параметр для включения Swagger. В поле
Documentation
для параметраEnabled
укажите значениеtrue
. Swagger будет доступен по адресу /am/proxies/messages/documentation.
- В поле
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.
Выбор типа подключения
- Через GPO
- В реестре
Политика Выбор типа подключения для провайдера применяется к серверам Indeed AM и предназначена для выбора типа подключения Core Server (с помощью провайдера SMS OTP или Storage SMS OTP) к SMS-шлюзу.
Откройте политику Выбор типа подключения для провайдера. Политика расположена по следующему пути: Административные шаблоны→Indeed-ID→Id Providers→SMS OTP.
Установите значение политики Включено.
В параметрах выберите опцию Прокси сообщений для Messages Proxy.
- Откройте редактор реестра на сервере Indeed AM.
- Откройте раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Indeed-ID\BSPs\SMSOTP.
- Создайте параметр SmsSenderType с типом DWORD со значением 6.
Настройки типа подключения
- Через GPO
- В реестре
Политика Настройки прокси сообщений применяется к серверам Indeed AM и определяет настройки типа подключения.
Откройте политику Настройки прокси сообщений. Политика расположена по следующему пути: Административные шаблоны→Indeed-ID→Id Providers→SMS OTP.
Установите значение политики Включено.
Задайте следующие параметры:
- URL — адрес подключения к серверу;
- Отправитель — имя отправителя, которое будет отображаться при получении сообщения;
- Дополнительный текст перед отправкой OTP — произвольный текст сообщения, предшествующий одноразовому паролю;
- Отпечаток сертификата клиента — сертификат провайдера, указанный в настройках конфигурационного файла Messages Proxy app-settings.Production.json (поле
Authentication": {"Certificate": { "Thumbprint": "" } }
); - Отпечаток сертификата сервера — сертификат Messages Proxy для работы по протоколу HTTPS (настраивается в IIS).
- Откройте редактор реестра на сервере Indeed AM.
- Откройте раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Indeed-ID\BSPs\SMSOTP\MessagesProxy.
- Создайте следующие параметры:
- ServerUrl — адрес подключения к серверу;
- From (REG_SZ) — имя отправителя, которое будет отображаться при получении сообщения;
- messageOTP (REG_SZ) — произвольный текст сообщения, предшествующий одноразовому паролю;
- ClientCertificateThumbprint (REG_SZ) — сертификат провайдера, указанный в настройках конфигурационного файла Messages Proxy app-settings.Production.json (поле
Authentication": { "Certificate": { "Thumbprint": "" } }
); - ServerCertificateThumbprint (REG-SZ) — сертификат Messages Proxy для работы по протоколу HTTPS (настраивается в IIS).