Show / Hide Table of Contents

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

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

    Примечание

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

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

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

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

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

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

    Enable-DssAsyncOperationSettings
    

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

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

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

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

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

    Создание подписи в асинхронном режиме

    Последовательность шагов при подтверждение операции подписи в асинхронном режиме:

    1. Аутентификация пользователя на Центре Идентификации
    2. Загрузка документов для подписи
    3. Создание операции подписи на Сервисе Подписи
    4. Отправка запроса на подтверждение операции подписи
    5. Ожидание подтверждения операции в DSS SDK и подписи документов
    6. Выгрузка подписанного документа

    На шаге 3 для создания подписи с подтверждением в асинхронном режиме необходимо в вызове Signature передать дополнительные параметры:

    • IsAsync - true
    • Callback - URL-адрес для оповещения о заверщении операции подписи

    Пример запроса

    {
        "BinaryData": [{
            "RefId" : "37bcc23f-73d8-4cb9-8b54-9b47ad03fd52"
        }],
        "Signature" : 
        { 
            "CertificateId": "13",
            "ProcessingTemplateId": "1"
        },
        "IsAsync":"true",
        "Callback":"http://hostname/signresult"
    }
    

    На шаге 5 Сервис Подписи отправит Callback следующего формата:

    {
        "Operation": {
            "Id": "6ec9d54a-7f4d-4579-abe9-660ce241e185",
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "f7dbd740-9fad-4aea-88a7-39dfcc81c0ab",
                        "OriginalRefId": "37bcc23f-73d8-4cb9-8b54-9b47ad03fd52",
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 1582121878
        }
    }
    
    Back to top © ООО "КРИПТО-ПРО", 2000-2020