Глубинные ссылки (Deep Links)
Мобильное приложение myDSS, позволяющее подтверждать операции подписи в КриптоПро DSS, может быть автоматически открыто (вызвано) непосредственно из клиентского приложения, установленного на мобильном устройстве пользователя. Для этого используются глубинные ссылки (Deep Links). В общем виде схема взаимодействия выглядит следующим образом:
Примечание
Некоторые блоки ожидания ответа на схеме изображены прозрачными с пунктирным контуром. Эти блоки представлены в общем виде и разделены для примера. В зависимости от реализации взаимодействия клиентского приложения и интегрируемой ИС с myDSS эти блоки могут быть объединены.
1. Пользователь инициирует операцию подписи в клиентском приложении на своем мобильном устройстве, связываясь с серверной частью интегрируемой с КриптоПро DSS системы.
1.1.Интегрируемая система передает необходимые сведения в КриптоПро DSS, где начинается
операция подписи.
Примечание
В зависимости от того, где хранится подписываемый документ, он будет передан либо по цепочке Клиентское приложение –> Интегрируемая ИС –> КриптоПро DSS, либо Интегрируемая ИС –> КриптоПро DSS. Изображение документа на схеме не устанавливает требований к его местонахождению.
2. Одновременно с п. 1 клиентское приложение при помощи Deep Link вызывает приложение myDSS.
2.1.Открывшееся на мобильном устройстве пользователя приложение myDSS запрашивает у КриптоПро
DSS информацию о подписываемом документе.
2.2.КриптоПро DSS отправляет в myDSS указанную в п. 2.1. информацию.
2.3.Получив информацию от КриптоПро DSS, myDSS отображает подписываемый документ пользователю
для проверки.
2.4.Пользователь просматривает сообщение и/или документ, убеждается, что хочет выполнить
данную операцию, и инициирует подтверждение операции в myDSS.
2.5.myDSS вычисляет необходимый для подтверждения операции код аутентификации.
2.6.myDSS отправляет код аутентификации в КриптоПро DSS.
2.6.1. КриптоПро DSS вычисляет код аутентификации и проверяет полученный код
аутентификации.
2.6.2. В случае совпадения полученных в п. 2.6.1. кодов аутентификации КриптоПро DSS
успешно подписывает документ.
2.7.КриптоПро DSS отправляет подписанный документ в интегрируемую систему.
Примечание
Перед вызовом myDSS клиентскому приложению рекомендуется удостовериться (получить ответ от КриптоПро DSS), что операция подписи запущена.
3. После отправки кода аутентификации в КриптоПро DSS приложение myDSS при помощи Deep Link вызывает клиентское приложение.
4. (Опционально) Интегрируемая система отправляет подписанный документ в клиентское приложение.
Примечание
Описанная в п. 2.7–3 цепочка КриптоПро DSS –> Интегрируемая ИС –> Клиентское приложение приводится для примера. Изображение подписанного документа на схеме не устанавливает требований к его местонахождению.
Префикс Deep Link для myDSS
mydss://
Формат URL для myDSS
Клиентское приложение вызывает myDSS следующим образом:
mydss://[operation]?[params]
где
operation = start_confirmation
params
:callback
- (обязательный параметр) url для возврата в вызывающее приложение, закодированный в соответствии с RFC 3986 (urlencode);user_id
- (необязательный параметр) идентификатор пользователя для подтверждения;transaction_id_list
- (необязательный параметр) операции для подтверждения, comma-separated, применяется только вместе сuser_id
.
Пример:
mydss://start_confirmation?callback=testapp%3A%2F%2Fmydss_callback&user_id=test-ebaad8fd-cafe-43e6-9fed-33ffb31c65a7&transaction_id_list=7b3bf903-55bf-4867-b224-294fd223afbf,858dfa54-3295-4b1a-9388-ff5534bc9590
В callback отправляется результат подтверждения следующим образом:
[callback_url]?mydss_result=[result]&error=[error]
где
result
success
- все операции обработаны;processed_partially
- обработано операций больше 0, но меньше общего количества;user_canceled
- отменено пользователем;error
- ошибка.
error
- 0, если result не равно
error
; - код ошибки с сервера;
- 17, если указанный в
user_id
идентификатор пользователя не зарегистрирован.
- 0, если result не равно
Пример:
testapp://mydss_callback?mydss_result=error&error=278