n

Cloud Signs

Подписание госключом

Виджет подписания документа госключом — всплывающая форма для ввода сведений о подписанном документе/файле отображении результата подписанного документа и его подписи. Форма оптимизирована для использования в любых браузерах и мобильных устройствах. Внутри виджета открывается iframe, который гарантирует безопасность передачи данных и не требует от ТСП сертификации для использования.

Demo widget

Демонстрация работы виджета представлена в по ссылке.
Для тестирования можно использовать как тестовое, так и промышленное приложение Госключ.

(добавить скриншот формы для заполнения)

Установка виджета

Для установки виджета необходимо прописать на сайте скрипт в раздел head:

<script src="https://widget.cloudsigns.ru/cloudsigns.min.js"></script>

 

Для появления возможности подписать документы необходимо зарегистрировать функцию-обработчик, которая будет вызываться по активному действию на странице, например — по клику на кнопке с id=signButton:


	const element = getElementById('signButton');

	element.addEventListener("click", () => {

	const widget = new CloudsignsWidget("signForm");

	widget.startSign({

		// выдаются при подключении
		clientKey: "some-client-key",
		templateKey: "some-template-key",

		// СНИЛС подписанта (кому будет направлено в Госключ)
		snils: "some-snils",

		// далее идут callback, вызываемые виджетом на различные события.

		// запустилось окно с подписанием документов
		onStart: () => {
			console.info("Request success!");
		},

		// при запуске окна с подписанием документов произошла ошибка (скорее всего - сетевая), работа виджета невозможна
		onError: (error) => {
			console.error("Request error", error);
		},

		// окно виджета закрыто до завершения процесса подписания 
		// (то есть нажат крестик или "закрыть" до получения подтверждения подписания или ошибки от ГК)
		onCancel: () => {
			console.error("Sign cancelled");
		},

		// документ успешно подписан, в data хранятся ссылки на подписанный файл и откреплённую подпись
		onSignSuccess: (data) => {
			console.info("Sign success!", data);
		},

		// ошибка при подписании документа (ошибка передачи в ГК, отказ в подписании в приложении ГК, или что-то иное)
		onSignError: (error) => {
			console.error("Sign error", error);
		}
	});
	});

 

Демонстрация работы виджета представлена по ссылке.

Параметры виджета:

Параметр Формат Применение Описание
clientKey String Обязательный Идентификатор клиента (клиентской системы), выданный при подключении к сервису (строка вида ck_xxxxxx)
snils String Обязательный СНИЛС получателя документа
TODO: expireInMinutes Integer Необязательный Время жизни документа (в течении которого его можно подписать), в минутах; если значение не указано , указано не положительное число, или указано больше 1440 (=24ч) — принимается равным 1440. Не рекомендуется указывать меньше 3 минут.

При закрытии окна виджета он может уведомить страницу о статусе подписываемого документа (на момент закрытия) посредством вызова указанной функции (или просто переходом на другую страницу):

Параметр Формат Применение Описание
onStart Function или String Необязательный Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного открытия окна с документов.
onError Function или String Необязательный Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после если при открытии окна с документом произошла ошибка.
onCancel Function или String Необязательный Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после отказа пользователя подписать документ. В случае указания адреса — пользователь будет направлен на указанную страницу.
onSignSuccess Function или String Необязательный Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного завершения подписания и закрытия пользователем окна виджета. В случае указания адреса — пользователь будет направлен на указанную страницу.
onSignError Function или String Необязательный Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана при технической ошибке подписания Госключом (например, невозможность передать в Госключ, недоступность внутренней инфраструктуры Минцифры и т.п.). В случае указания адреса — пользователь будет направлен на указанную страницу.

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

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

  1. Сайт работает по схеме HTTPS и поддерживает протокол TLS версии 1.2.
  2. На сайте отсутствует «mixed content», когда часть ресурсов загружается по HTTPS, а часть — по HTTP.
  3. Клиент открыл страницу подписания на сайте в браузере.

Сервис Cloudsigns спроектирован в расчёте на уровень безопасности пользователя и его данных, соответствующий стандартам DSI DSS — стандарта информационной безопасности, принятого в индустрии подписания документов (аналогичен стандарту PCI DSS для обработки платёжных данных).

Соответствие требованиям

Основное требование стандарта — максимально ограничить доступ к данным. Оптимальное решение — вообще не иметь к ним доступа, а вместо этого использовать сертифицированных провайдеров для проведения подписания. На практике это означает, что нельзя ни запрашивать, ни передавать подписи. Если при звонке клиент говорит, что не проходит платеж, и начинает диктовать номер, нужно его прервать и объяснить, почему вы не можете получать данные сигнатуры. Если присылает по почте или скайпу — удалять сообщение и сообщать, что передавать данные сигнатуры небезопасно.

CloudSigns — сертифицированный сервис-провайдер с максимальным уровнем соответствия требованиям Госключа.

Все инструменты CloudSigns спроектированы таким образом, что при их использовании вы автоматически соответствуете требованиям по безопасности. Дополнительных мер предпринимать не нужно.