Показать/Скрыть содержание

    Асинхронная подпись

    REST API Сервиса Подписи поддерживает режим "асинхронной подписи".

    Примечание

    "Асинхронная подпись" поддерживается только для операции подписи, выполняемой с подтверждением (мобильное приложение, OTP-via-SMS, OTP-via-Email и т.п).

    В режиме "асинхронной подписи" СЭП отправит Callback в вызывающую систему после того, как пользователь подтвердит подпись. Подписываемые документы будут подписаны и загружены в Сервис Обработки Документов.

    После получения Callback вызывающая система может выгрузить подписанные документы из Сервиса Обработки Документов.

    Настройка асинхронной подписи

    Включение режима асинхронной подписи

    По умолчанию режим асинхронной подписи отключен на Сервисе Подписи. Для его включения необходимо выполнить следующую команду:

    Enable-SignAsyncOperationSettings
    

    Настройка модуля оповещения для отправки Callback

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

    #Настройка транспортного плагина
    $plugin = Add-SignPlugin -PluginTypeName "CryptoPro.Plugins.Notification.Http.HttpTransportPlugin,CryptoPro.Plugins.Notification.Http" -PluginType AuthenticationResult -Settings @{}
    
    #Добавление модуля оповещения
    Add-SignNotifier -TransportPluginID $plugin.ID -NotifierType AuthenticationResultCallback -Settings @{} -Type "CryptoPro.Plugins.Notification.Http.AuthenticationResultNotifier,CryptoPro.Plugins.Notification.Http"
    

    При успешной регистрации в списке зарегистрированных модулей оповещения Сервиса Подписи будет модуль с типом AuthenticationResultCallback:

    Get-SignNotifier
    
    ID              : 6
    Type            : AuthenticationResultCallback
    Settings        : {[ThreadCount, 1]}
    IsEnabled       : True
    TransportPlugin : CryptoPro.Common.PowerShell.Objects.Plugin
    MessagePlugin   :
    

    Настройка групп доступности

    Если на Сервисе Подписи включена поддержка асинхронной подписи, то при запуске экземпляра Сервиса Подписи запускается обработчик очереди запросов на подпись.

    Обработчик очереди работает все время, пока запущены процессы Сервиса Подписи. В ряде случаев такое поведение может быть нежелательным. Например:

    • Сервер, на котором развернут экземпляр Сервиса Подписи, может быть временно выведен из эксплуатации и не должен принимать или обрабатывать запросы подписи. Одним из вариантов решения может быть остановка сервера приложений IIS или только пула приложений Сервиса Подписи.

    • СЭП развернут в кластере. Кластер может быть настроен так, что активно в каждый момент времени только одно плечо кластера, в то время как второе находится в ожидании.

    Для включения и отключения обработчиков очереди запросов на подпись можно использовать командлеты, входящие в модуль Сервиса Подписи:

    • Get-SignSignQueueAvailabilityGroup
    • Set-SignSignQueueAvailabilityGroup
    • Enable-SignSignQueueAvailabilityGroup
    • Disable-SignSignQueueAvailabilityGroup
    • Switch-SignSignQueueAvailabilityGroup

    Команды позволяют объединить экземпляры Сервисов Подписи в группы доступности для возможности включения/отключения обработчиков очереди запросов на подпись.

    Примечание

    Команды могут выполняться на любом из узлов кластера. Команды не требуют указания параметра DisplayName, так как они изменяют общие настройки СЭП, не связанные с каким-либо конкретным экземпляром Сервиса Подписи.

    Примечание

    После внесения изменений в настройки очередь запросов на подпись автоматически меняет свое состояние в течение 3-х секунд (переходит в активное или неактивное состояние). Выполнение команды Restart-SignSignServerInstance не требуется.

    Команда Get-SignSignQueueAvailabilityGroup позволяет просмотреть сведения обо всех экземплярах Сервиса Подписи на всех серверах или на указанном сервисе.

    Команда выводит следующие сведения об экземплярах:

    • Id - идентификатор экземпляра в группе доступности;
    • GroupId - идентификатор группы доступности;
    • IsEnabled - состояние очереди;
    • ServerName - имя сервера, на котором размещен экземпляр;
    • DisplayName - отображаемое имя экземпляра.
    Примечание

    Если в команде указать параметр ServerName, то вывод будет содержать только информацию об экземплярах на эказанном сервере.

    Примечание

    Параметр ServerName поддерживает подсказки значений имен серверов. Достаточно набрать имя параметра и с помощью TAB пролистать список имен серверов.

    Пример 1

    Get-SignSignQueueAvailabilityGroup
    
    
    Id          : 1
    GroupId     : 1
    IsEnabled   : True
    ServerName  : ATLASDSS1
    Displayname : atlasdss
    
    Id          : 2
    GroupId     : 2
    IsEnabled   : True
    ServerName  : ATLASDSS2
    Displayname : atlasdss
    

    Пример 2

    Get-SignSignQueueAvailabilityGroup -ServerName ATLASDSS1
    
    Id          : 1
    GroupId     : 1
    IsEnabled   : True
    ServerName  : ATLASDSS1
    Displayname : atlasdss
    

    Для включения экземпляра Сервиса Подписи в группу доступности используется командлет Set-SignSignQueueAvailabilityGroup. В параметрах команды необходимо указать назначаемый идентификатор группы доступности GroupId. Группа доступности назначается либо указанному экземпляру Сервиса Подписи (Id), либо всем экземплярам на указанном сервере (ServerName).

    Примечание

    Параметр ServerName поддерживает подсказки значений имен серверов. Достаточно набрать имя параметра и с помощью TAB пролистать список имен серверов.

    Пример 1

    Назначение группы доступности всем экземплярам Сервиса Подписи на указанном сервере.

    Set-SignSignQueueAvailabilityGroup -ServerName ATLASDSS1 -GroupId 2
    

    Пример 2

    Назначение группы доступности указанному экземпляру Сервиса Подписи.

    Set-SignSignQueueAvailabilityGroup -Id 1 -GroupId 2
    

    Для переключения групп экземпляров Сервиса Подписи используется командлет Switch-SignSignQueueAvailabilityGroup. В параметре GroupId указывается идентификатор группы, которую требуется сделать активной.

    Примечание

    При этом все остальные группы доступности делаются неактивными.

    Пример

    В данном примере группа с идентификатором 1 становится активной, при этом все остальные группы доступности переводятся в неактивное состояние.

    Switch-SignSignQueueAvailabilityGroup -GroupId 1
    

    Для включения/отключения отдельных серверов используются командлеты Enable-SignSignQueueAvailabilityGroup, Disable-SignSignQueueAvailabilityGroup.

    Пример

    Включение обработчиков очереди запросов подписи на указанном сервере.

    Enable-SignSignQueueAvailabilityGroup -ServerName ATLASDSS2
    

    Отключение обработчиков очереди запросов подписи на указанном сервере.

    Disable-SignSignQueueAvailabilityGroup -ServerName ATLASDSS2
    

    Пример настройки

    signserveravailabilitygroup.jpg

    На рисунке отображено разворачивание СЭП в кластере. Кластер состоит из двух ЦОДов. В каждом из ЦОДов развернуто два сервера СЭП. Кластер настроен таким образом, что один из ЦОДов находится в режиме Active, а второй в режиме Passive. Таким образом, в каждый момент времени только один из ЦОДов принимает и обрабатывает запросы на подпись.

    Соответственно сервера в каждом из ЦОДов должны быть объединены в кластер.

    Пример настройки групп доступности:

    Set-SignSignQueueAvailabilityGroup -ServerName DSS1_dc1 -GroupId 1
    Set-SignSignQueueAvailabilityGroup -ServerName DSS2_dc1 -GroupId 1
    
    Set-SignSignQueueAvailabilityGroup -ServerName DSS1_dc2_ -GroupId 2
    Set-SignSignQueueAvailabilityGroup -ServerName DSS2_dc2 -GroupId 2
    

    Таким образом, переключение между ЦОДами будет выполняться командой:

    ЦОД1 -> ЦОД2

    Switch-SignSignQueueAvailabilityGroup -GroupId 2
    

    ЦОД2 -> ЦОД1

    Switch-SignSignQueueAvailabilityGroup -GroupId 1
    

    При необходимости сервер в Активном ЦОДе может быть включен/отключен следующей командой:

    Disable-SignSignQueueAvailabilityGroup -ServerName DSS1_dc1
    
    Enable-SignSignQueueAvailabilityGroup -ServerName DSS1_dc1
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025