Отправка callback-ов из DSS
Опубликовано Андрей Солдатов on 2022-07-06 14:50

Нижеуказанная информация актуальна для текущей сборки DSS 2.0.3892. 

В DSS реализована возможность отправки четырех видов колбэков, с применением различных модулей оповещения:

1. Колбэк с результатом подтверждения операции.

Где выполняется настройка модуля оповещения: Центр Идентификации (ЦИ).

Алгоритм настройки модуля оповещения:

#Настройка транспортного плагина модуля оповещения:
$transport = Add-DssStsPlugin -PluginTypeName "CryptoPro.DSS.Identity.Authentication.Notification.HttpTransportPlugin,CryptoPro.DSS.Identity.Authentication.Notification" -PluginType AuthenticationResult -Settings @{}

#Настройка плагина форматирования модуля оповещения:
Add-DssStsPlugin -PluginTypeName "CryptoPro.DSS.Identity.Authentication.Notification.AuthenticationResultFormatter,CryptoPro.DSS.Identity.Authentication.Notification" -PluginType Formatter -Settings @{}

#Добавление модуля оповещения:
Add-DssStsNotifier -TransportPluginID $transport.ID -NotifierType AuthenticationResultCallback -Settings @{}

#Перезагрузка пула приложения ЦИ:
Restart-DssStsInstance

При каких условиях происходит отправка колбэка:
Если в первом запросе к Сервису Подтверждения Операций DSS был передан параметр "CallbackUri", с указанием адреса колбэк-сервиса, то после подтверждения операции пользователем придёт оповещение о завершении транзакции.

Сообщение о завершении транзакции содержит:

  • Result - результат подтверждения транзакции (success или failed);
  • TransactionId - идентификатор транзакции на Сервисе Подтверждения операций (RefId);
  • Error - код ошибки;
  • ErrorDescription - описание ошибки.

2. Колбэк с оповещением о событиях инициализации мобильного приложения (МП) на базе DSS SDK.

Где выполняется настройка модуля оповещения: Центр Идентификации (ЦИ).

Алгоритм настройки модуля оповещения:

#Получение идентификатора системы myDSS:
Выполнить на сервере DSS командлет: Get-MyDssSystem

#Объявить переменные с указанием ID системы myDSS и адресом колбэк-сервиса:
$systemId = "ID системы myDSS"
$callback = "Адрес колбэк-сервиса"

#Настройка транспортного плагина модуля оповещения:
$transport = 
Add-DssStsPlugin -PluginTypeName "CryptoPro.DSS.Identity.Authentication.Notification.myDssCallbackPlugin,CryptoPro.DSS.Identity.Authentication.Notification" -PluginType MyDssCallback -Settings @{"Address"="$callback"}

#Добавление модуля оповещения:
Add-DssStsNotifier -TransportPluginID $transport.ID -NotifierType MyDssCallback -Settings @{ "myDssSystemId"="$systemId" } -Type "CryptoPro.DSS.Identity.Authentication.Notification.myDssCallbackNotifier,CryptoPro.DSS.Identity.Authentication.Notification"

#Перезагрузка пула приложения ЦИ:
Restart-DssStsInstance

При каких условиях происходит отправка колбэка:
Колбэк будет отправлен при возникновении событий из списка, представленного в руководстве.

3. Колбэк с оповещением о событии создания запроса на сертификат в МП на базе DSS SDK.

Где выполняется настройка модуля оповещения: Сервис Подписи.

Алгоритм настройки модуля оповещения:

#Получение идентификатора системы myDSS:
Выполнить на сервере DSS командлет: Get-MyDssSystem

#Объявить переменные с указанием ID системы myDSS и адресом колбэк-сервиса:
$systemId = "ID системы myDSS"
$callback = "Адрес колбэк-сервиса"

#Настройка транспортного плагина модуля оповещения:
$transport = 
Add-DssSignServerPlugin -PluginTypeName "CryptoPro.DSS.Identity.Authentication.Notification.myDssCallbackPlugin,CryptoPro.DSS.Identity.Authentication.Notification" -PluginType MyDssCallback -Settings @{"Address"="$callback"}

#Добавление модуля оповещения:
Add-DssSignServerNotifier -TransportPluginID $transport.ID -NotifierType MyDssCallback -Settings @{ "myDssSystemId"="$systemId" } -Type "CryptoPro.DSS.Identity.Authentication.Notification.myDssCallbackNotifier,CryptoPro.DSS.Identity.Authentication.Notification"

#Перезагрузка пула приложения Сервиса Подписи:
Restart-DssSignServerInstance

При каких условиях происходит отправка колбэка:
Колбэк будет отправлен при возникновении событий из списка, представленного в руководстве.

4. Колбэк с результатом подтверждения операции асинхронной подписи.

Где выполняется настройка модуля оповещения: Сервис Подписи.

#Настройка транспортного плагина модуля оповещения:
$transport = Add-DssSignServerPlugin -PluginTypeName "CryptoPro.DSS.Identity.Authentication.Notification.HttpTransportPlugin,CryptoPro.DSS.Identity.Authentication.Notification" -PluginType AuthenticationResult -Settings @{}

#Добавление модуля оповещения:
Add-DssSignServerNotifier -TransportPluginID $transport.ID -NotifierType AuthenticationResultCallback -Settings @{} -Type "CryptoPro.DSS.Identity.Authentication.Notification.AuthenticationResultNotifier,CryptoPro.DSS.Identity.Authentication.Notification"

#Перезагрузка пула приложения Сервиса Подписи:
Restart-DssSignServerInstance

При каких условиях происходит отправка колбэка:
Если в запросе на создание операции асинхронной подписи, направленном к Сервису Подписи, были переданы параметры:
- "Callback", с указанием адреса колбэк-сервиса;
- "IsAsync"="true".

То после подтверждения операции пользователем в мобильном приложении придёт оповещение, содержащее ID подписанного документа. 

(2 плюсик(ов))
Класс!
Не очень :(