- Offline подтверждение транзакции
- Асинхронное подтверждение транзакции
- Безопасность
- Внимание!
- Загрузка mydss
- Подтверждение операции на сервисе подписи
- Подтверждение транзакции подписи на сервисе подтверждения операций
- Получение подписанного документа на сервисе подписи
- Примечание
- Синхронное подтверждение транзакции
- Создание транзакции подписи на сервисе подписи
- Юридическая значимость подписи
Offline подтверждение транзакции
Offline сценарий может использоваться как альтернативный способ подтверждения или отклонения транзакции.
Сценарий может использоваться когда мобильное приложение не имеет доступа в Интернет, либо по каким либо причинам не смогло загрузить с сервера
данные транзакции (сопровождающий текст, подписываемый документ)
Интегрируемая система должна отобразить пользователю QR-код (Image), полученный при первом обращении к Сервису Подтверждения Операций, и предоставить пользователю интерфейс
для ручного ввода кода подтверждения (отказа) транзакции.
Пример запроса
Асинхронное подтверждение транзакции
Если в первом запросе к Сервису Подтверждения Операций пользователь указал CallbackUri, то после подтверждения операции
на мобильном устройстве пользователя придёт оповещение о завершении транзакции.
Сообщение о завершении транзакции содержит:
Result
– результат подтверждения транзакции (success или failed)TransactionId
– идентификатор транзакции на Сервисе Подтверждения операций (RefId
)Error
– код ошибкиErrorDescription
– описание ошибки
Примеры ответа на CallbackUri
Оповещение о подтверждении операции:
{
"Result":"success",
"TransactionId":"aa1a4a5d-bb4d-456b-87da-31818604fcd8",
"Error":"",
"ErrorDescription":null}
Оповещение об отказе (пользователь в мобильном приложении Отказался от подтверждения операции):
{
"Result":"failed",
"TransactionId":"2fbd0a40-77be-4a40-a688-a0249bba16a6",
"Error":null,
"ErrorDescription":null}
Оповещение об истечении строка действия транзакции.
{
"Result":"failed",
"TransactionId":"bc0ffdee-7143-439f-bf6b-d1400725d8f1",
"Error":"transaction_expired",
"ErrorDescription":"Срок действия транзакции истёк"}
Если пользователь подтвердил операцию на мобильном устройстве, необходимо обратиться на Сервис Подтверждения Операций
для получения нового AccessToken. В запросе передаётся идентификатор RefId.
Пример запроса
Безопасность
Приложение myDSS выполняет визуализацию электронного документа и формирование подтверждения на его подписание в КриптоПро DSS.
Криптографическая аутентификация и защита канала между приложением и сервером КриптоПро DSS гарантируют, что только легальный пользователь сможет воспользоваться ключами подписи.
Ключи электронной подписи пользователей хранятся в сертифицированном КриптоПро HSM в неизвлекаемом виде.
Внимание!
В Offline сценарии на мобильном устройстве пользователя не может быть отображён
подписываемый документ. Отобразить возможно только сопровождающий операцию текст.
Загрузка mydss
Для загрузки приложения отсканируйте QR-код или перейдите по одной из ссылок ниже.
Подтверждение операции на сервисе подписи
Предварительные условия
В подтверждении транзакции задействованы следующие сервисы DSS:
Примечание
У Администратора DSS необходимо получить значение параметров client_id и resource.
resource – идентификатор Сервиса Подписи, имеет вид:
urn:cryptopro:dss:signserver:<SignServerAppName>
Подтверждение транзакции подписи на сервисе подтверждения операций
Для подтверждения транзакции, созданной на Сервисе Подписи, пользователь отправляет запрос содержащий:
CallbackUri
– адрес для оповещения о завершении транзакции (опционально).TransactionTokenId
– идентификатор транзакции, созданной на сервисе подписи.Resource
– идентификатор Сервиса Подписи.ClientId
– идентификатор OAuth клиента.ClientSecret
– пароль OAuth клиента (для неконфиденциальных клиентов данный параметр не указывается).
Получение подписанного документа на сервисе подписи
Для получения подписанного документа необходимо отправить запрос Сервису Подписи на конечную точку /documents.
Примеры запросов
Примечание
При обработке ответа Сервиса Подтверждения Операций вызывающее приложение должно смотреть на значение двух флагов:
IsFinal и IsError. Если получен ответ с IsError – true, то дальнейшее подтверждение транзакции не возможно. Если получен ответ с IsFinal – false, то подтверждение транзакции ещё не завершено.
Синхронное подтверждение транзакции
В синхронном режиме пользователь должен периодически опрашивать Сервис Подтверждения Операция, ожидая
завершение подтверждения транзакции (флаг IsFinal = true).
Пример запроса
Создание транзакции подписи на сервисе подписи
После прохождения аутентификации пользователь инициирует подписание документа.
Для подтверждения любых операций на Сервисе Подписи используется метод /transactions
В запросе необходимо указать:
Юридическая значимость подписи
Документ и другие действия пользователя заверяются квалифицированной электронной подписью, что обеспечивает неотказуемость действий. Пользователь не только подтверждает содержание документа, но и в дальнейшем не имеет возможности отказаться от совершенного действия.