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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Mikle.gb  
#11 Оставлено : 10 февраля 2022 г. 12:38:24(UTC)
Mikle.gb

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

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

Автор: Mironov Перейти к цитате
Попробуем воспроизвести на ниш стендах.


Коллеги, у меня аналогичная проблема. Получаю токен через post на sts/oauth/token, ищу сертификат пользователя через get на SignServer/rest/api/certificates - всё ок.
А дальше любая попытка начать транзакцию подписания документе через post на SignServer/rest/api/transactions даёт ответ 400 {"Message":"invalid_operation"}
на любой запрос, если в нём есть хоть один символ (в т.ч. пример запроса из хелпа http://dss.cryptopro.ru/...oints/transaction.html).
Если же тело запроса пустое - отвечает {"Message":"An error has occurred."}
Планирую подавать запрос вида
Код:
{
"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"},
      {"Name": "PdfSignatureAppearance",   "Value": "ewo  взято из примера в хелпе ... fQo="},
      {"Name": "PdfSignatureTemplateId",   "Value": "1"}
 ],
 "Document": "JVB тестовый pdf ... Rgo="
}

джейсон валидный - ошибка либо в настройках, либо в сочетании параметров, либо какой-то ещё шаг пропущен... но по ответу DSS определить это невозможно(

У тестового пользователя, которым хочу подписать документ, включена вторичная аутентификация по email (единственный способ), подтверждение на подпись документа включено.
В моих фантазиях DSS должен начать транзакцию и послать на почту пользователя второй фактор, далее я сделаю POST на "STS/confirmation" с указанием id транзакции и полученным фактором, после чего получу подписанный документ запросом post на "SignServer/rest/api/documents". Поправьте пжл, если ошибаюсь, и помогите диагностировать причину ошибки с началом транзакции.

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

Offline Андрей Солдатов  
#12 Оставлено : 10 февраля 2022 г. 12:58:01(UTC)
Андрей Солдатов

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

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

Сказал «Спасибо»: 5 раз
Поблагодарили: 70 раз в 66 постах
Добрый день.
Ознакомьтесь, пожалуйста, с полной последовательностью действий, необходимых для подтверждения операции через второй фактор.
Хоть данный раздел руководства и составлен на примере подтверждения через СМС - с e-mail все будет аналогично.

Если ошибка все равно будет сохраняться - создайте, пожалуйста, обращение на нашем портале поддержки.
Инструкция по работе с порталом.

В обращении приложите полную цепочку выполняемых запросов и возвращаемых ответов.
А также приложите журналы администратора ЦИ и Сервиса Подписи DSS + ссылку на данную ветку форума.

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

Техническую поддержку оказываем тут.
Наша база знаний.
Offline Mikle.gb  
#13 Оставлено : 10 февраля 2022 г. 13:28:00(UTC)
Mikle.gb

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

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

Автор: Андрей Солдатов Перейти к цитате
Добрый день.
Ознакомьтесь, пожалуйста, с полной последовательностью действий
...
А также приложите журналы администратора ЦИ и Сервиса Подписи DSS + ссылку на данную ветку форума.


Добрый.
C указанным разделом знаком, там не вижу ничего по своей проблеме. Пользователь настроен как указано; авторизация и получение сертификатов работает, затык на пункте "1.1 POST Запрос на создание транзакции подписи на Сервисе Подписи" - пример не работает, ошибка {"Message":"invalid_operation"} там не описана.
Собственно, я прикладной программист - я хочу пользоваться сервисом, а не разбираться в нюансах работы чужой системы:(

По поводу обращения в техподдержку уточните пжл:
1) Как получить "журналы администратора ЦИ и Сервиса Подписи DSS" - видимо, запросить у админов DSS за небольшой период, в течение которого выполнялась проблемная операция?
2) Авторизация на портале должна пройти с той же учёткой, что и на этом форуме? не пускает почему-то.
3) в "телеграмме" можно обращаться с тем же успехом, что и на портале?

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

Offline Андрей Солдатов  
#14 Оставлено : 10 февраля 2022 г. 13:40:12(UTC)
Андрей Солдатов

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

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

Сказал «Спасибо»: 5 раз
Поблагодарили: 70 раз в 66 постах
1. Да, запросить у администраторов DSS.
2. Нет. Для работы на портале нужно использовать УЗ с нашего основного сайта, не с форума.
3. Для разбора нетипичных проблем, где требуется пересылать большое количество информации, логов - лучше все же писать на портал.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Mikle.gb  
#15 Оставлено : 10 февраля 2022 г. 14:44:29(UTC)
Mikle.gb

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

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

Написал на портал с логами и примерами запросов, после опишу здесь причину и решение.
Offline Mikle.gb  
#16 Оставлено : 14 февраля 2022 г. 14:49:56(UTC)
Mikle.gb

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

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

В общем - причина странных ответов ("invalid_operation", {"Message":"The request is invalid.","ModelState":{"transaction":["Unexpected character encountered while parsing value: B. Path '', line 0, position 0."]}}, "ModelState":{"transaction":["Unexpected character encountered while parsing value: %. Path '', line 0, position 0."]}) в неправильно сформированных заголовках.
Когда поставил fiddler и посмотрел, что выдаёт код реально - ужаснулся и начал разбираться.
Выяснил, что ДСС весьма чувствителен к заголовку Content-Type - он должен быть строго "application/json"; если появляется application/x-www-form-urlencoded - ждите странных сообщений. А поскольку высокоуровневые компоненты сами многое решают за нас - shit happends даже при попытке явного указания заголовка ("Content-Type: application/json, application/x-www-form-urlencoded" тоже оказалось для дсс неприемлемо).
Пример рабочего кода на XE8:
Код:

	TRESTRequest *r2= new TRESTRequest((TComponent *)Sender);
	TRESTClient *cl2= new TRESTClient((TComponent *)Sender);
cl2->ProxyServer= "127.0.0.1";	cl2->ProxyPort= 8888; // это для фидлера
	r2->Client= cl2; r2->Response= resp;
	cl2->BaseURL= "https://dss.host.ru/SignServer/rest/api/transactions";
	r2->Method= rmPOST;
	r2->Params->AddItem("Authorization", "Bearer " +token, pkHTTPHEADER)->Options << poDoNotEncode;
	r2->AddBody( strReqJs, ctAPPLICATION_JSON);
	r2->Execute();


Добавлю, что для успешного открытия транзакции требуется параметр {"Name":"TSPAddress","Value":"https://dss.host.ru/TSP/tsp.srf"}

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

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.