Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Mikle.gb  
#1 Оставлено : 15 февраля 2022 г. 16:44:42(UTC)
Mikle.gb

Статус: Участник

Группы: Участники
Зарегистрирован: 10.02.2022(UTC)
Сообщений: 16
Ангола
Откуда: Луэна

Здравствуйте!
Стоит задача подписывать PDF через dss, технические вопросы решены (запросы, заголовки и тд). Встаёт вопрос настройки самого процесса - как параметры могут/не могут сочетаться с другими параметрами и значениями из сертификата/настроек dss.
Существует ли где-то такого рода документация? По нижеприведённым примерам не нашёл ни в доке, ни на форуме, ни в базе знаний. Какие значения можно передавать сервису - в доке есть, а вот

Пример1: успешно передаю на подпись документ с параметрами
{"OperationCode": 2,
"Parameters": [
{"Name": "SignatureType", "Value": "PDF"},
{"Name": "CertificateID", "Value": "17668"},
{"Name": "PDFFormat", "Value": "CAdES"},
{"Name": "PDFCertificationLevel", "Value": "CERTIFIED_NO_CHANGES_ALLOWED"},
{"Name": "PDFReason", "Value": "Reason"},
{"Name": "DocumentInfo", "Value": "testPdf.pdf"},
{"Name": "DocumentType", "Value": "pdf"},
{"Name": "IsDetached", "Value": "false"},
{"Name": "CADESType", "Value": "BES"},
но при попытке получить подписанный документ получаю ответ 500 с ошибками:
{"error_description":"Ошибка при подписи документа:\r\nтип подписи PDF, параметры: [PDFFormat, CAdES], [PDFCertificationLevel, CERTIFIED_NO_CHANGES_ALLOWED], [PDFReason, Reason], [DocumentInfo, testPdf.pdf], [IsDetached, false], [CADESType, BES], [TSPAddress, https://dss.host.ru/TSP/tsp.srf], [PdfSignatureAppearance, ...], [PdfSignatureTemplateId, 1].
\r\nВложенное сообщение:
\r\nНедопустимое значение ключа [CADESType]. Ожидалось: [XLT1]. Предоставлено: [BES].","error":"InternalError"}

Любопытно, почему недоступен простейший BES? Это связано с настройками сертификата подписывающего, или настройками сервера, или чем-то ещё? Просто поменять bes на xlt1 можно, конечно, но дальше хуже.

Пример 2: ок, ставлю XLT1 вместо BES, получаю ответ
Недопустимое значение ключа [IsDetached]. Ожидалось: [true]. Предоставлено: [false]

Вот тут уже всё сложнее: дело в том, что я хочу получить подпись приаттаченную к файлу и с визуализацией штампа в pdf (параметр PdfSignatureAppearance). Тут надо разобраться, почему не получается. С другими параметрами подписи тоже не идёт:
{"error_description":"Ошибка при подписи документа:\r\nтип подписи PDF, параметры: [PDFFormat, CMS], ... [IsDetached, false], [CADESType, BES]
\r\nНедопустимое значение ключа [IsDetached]. Ожидалось: [true]. Предоставлено: [false]

и существует ли общий способ решать подобные вопросы... подбирать параметры методом тыка - не самое продуктивное времяпрепровождение...
Offline Андрей Солдатов  
#2 Оставлено : 15 февраля 2022 г. 17:08:26(UTC)
Андрей Солдатов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 12.03.2019(UTC)
Сообщений: 326
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поблагодарили: 69 раз в 65 постах
Добрый день.
Вы передаете некорректные параметры для создания транзакции подписи формата PDF.
Список параметров доступен в документации разработчика.

P.S. OperationCode для PDF-подписи = 3
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Mikle.gb  
#3 Оставлено : 15 февраля 2022 г. 17:26:22(UTC)
Mikle.gb

Статус: Участник

Группы: Участники
Зарегистрирован: 10.02.2022(UTC)
Сообщений: 16
Ангола
Откуда: Луэна

Автор: Андрей Солдатов Перейти к цитате
Вы передаете некорректные параметры для создания транзакции подписи формата PDF.

В этом я не сомневаюсь:) помогите пжл корректное сочетание параметров найти.

Автор: Андрей Солдатов Перейти к цитате
OperationCode для PDF-подписи = 3"

Похоже Вы его с чем-то перепутали: OperationCode это же тип транзакции? судя по https://dss.cryptopro.ru...ver/structs/opcodes.html
Код:
Поле		Тип		Описание
OperationCode	DSSAction	Идентификатор операции, для которой формируется транзакция.
Имя		Код	Описание
Issue		1	Подтверждение входа пользователя
SignDocument	2	Подпись документа
SignDocuments	4	Подпись пакета документов

если я посылаю
{"OperationCode": 3,
"Parameters": [
{"Name": "SignatureType", "Value": "PDF"},
{"Name": "CertificateID", "Value": "17668"},
то получаю в ответ {"Message":"invalid_operation"}

Отредактировано пользователем 15 февраля 2022 г. 17:27:27(UTC)  | Причина: Не указана

Offline Андрей Солдатов  
#4 Оставлено : 15 февраля 2022 г. 17:32:03(UTC)
Андрей Солдатов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 12.03.2019(UTC)
Сообщений: 326
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поблагодарили: 69 раз в 65 постах
Да, пардон.
Но в любом случае - параметры транзакций стоит скорректировать, в соответствие со списком.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Mikle.gb  
#5 Оставлено : 15 февраля 2022 г. 18:17:14(UTC)
Mikle.gb

Статус: Участник

Группы: Участники
Зарегистрирован: 10.02.2022(UTC)
Сообщений: 16
Ангола
Откуда: Луэна

Проблема в том, что в данном списке не описано реальное влияние параметров на результат...
Вот живой пример: в моём запросе в "Parameters": я исправляю CADESType с BES на XLT1, IsDetached с false на true - и внезапно получаю подписанный пдф. Вроде задача решена, а осадочек остался...

Чем отличается BES от XLT1 - это, конечно, вопрос моей неграмотности. Но уж IsDetached - это издевательство какое-то... В моём представлении, "detached" - это хранение подписи в отдельном .sig файле (например, так подписывались xml в кадастре). Здесь же "IsDetached"="true", но подпись в файле. В документации ни слова.


И чтоб два раза не вставать, подскажите пжл ещё один нюанс.
Если я получаю второй фактор по электронке - у меня есть сутки (86400 секунд), чтобы дождаться письма, распарсить его и передать код ОТП для подтверждения подписи:
"Value":"Код подтверждения отправлен на ваш адрес электронной почты"},"TextChallenge":[{"Label":"Подпись документа. testPdf.pdf. Тип подписи: PDF. Сертификат: Lotus_DSS_Test.","ExpiresIn":86400

Следующим запросом на POST https://dss.akbars.ru/STS/confirmation я отправляю полученный код и ловлю в ответ токен подписанного документа:
"RefId": "930e86f8-3565-4fc9-8072-875fc10ee7ba", "Value": "04963"}] }}

А вот как реализуется работа с мобильным приложением? Там есть подтверждение операции напрямую с мобильного устройства, или пользователь (аналогично email), просто получает код подтверждения и должен как-то передавать его в моё приложение?
И если есть прямое подтверждение с мобилы - то как я получу документ, необходимо свой адрес для обратного вызова передавать при формировании транзакции (CallBackUri)?
Offline Андрей Солдатов  
#6 Оставлено : 15 февраля 2022 г. 21:30:38(UTC)
Андрей Солдатов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 12.03.2019(UTC)
Сообщений: 326
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поблагодарили: 69 раз в 65 постах
Касательно параметров подписи типа "PDF" при создании транзакции:
- IsDetached передавать не нужно. Подпись типа "PDF" в любом случае не подразумевает detached.
- CADESType передавать не нужно. Вместо этого передается PDFFormat со значением CMS|CAdEST|CAdES. Подробнее о данных параметрах, как писал ранее, можно прочитать в руководстве.

Пример body-запроса на создание транзакции подписи типа "PDF", CAdES-X Long Type 1, с вторичной аутентификацией и текстовым шаблоном отображаемой подписи:
{
"OperationCode":2,
"Parameters":
[
{"Name":"SignatureType","Value":"PDF"},
{"Name":"CertificateID","Value":"ID сертификата"},
{"Name":"DocumentInfo","Value":"test.pdf"},
{"Name":"DocumentType","Value":"pdf"},
{"Name":"PDFFormat","Value":"CAdES"},
{"Name":"TSPAddress", "Value":"Адрес службы TSP},
{"Name":"PdfSignatureTemplateId", "Value":"1"},
{"Name":"PdfSignatureAppearance", "Value":"Шаблон отображаемой подписи"}
],
"Document":"PDF-документ для подписи"
}

Касательно подтверждения операции через мобильное приложение:
После отправки запроса для подтверждения транзакции сервиса подписи на сервисе подтверждения операций пользователю в мобильное устройство будет направлено push-уведомление о новой операции. У пользователя будет время, определенное параметром (Get-DssStsProperties).OtpConfirmationTimeOut ЦИ DSS (в Вашем случае - 86400 секунд). В течение этого времени пользователь может либо подтвердить, либо отклонить операцию.

Сценарий получения документа зависит от выбранного сценария - синхронный|асинхронный.
Подробнее - в руководстве.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Mikle.gb  
#7 Оставлено : 21 февраля 2022 г. 16:17:19(UTC)
Mikle.gb

Статус: Участник

Группы: Участники
Зарегистрирован: 10.02.2022(UTC)
Сообщений: 16
Ангола
Откуда: Луэна

Спасибо, всё работает.

В целом последовательность такая (оставлю для лентяев вроде меня)


зы Добавлю ещё, что обтекания логотипа текстом нет - нужно подбирать позиционирование логотипа в штампе и "выделять место" для него параметром margin в текстовых блоках штампа.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.