Статус: Новичок
Группы: Участники
Зарегистрирован: 25.09.2018(UTC) Сообщений: 6
|
Добрый день. Не удаётся выполнить подписание документа с подтверждением через rest-интерфейс. Алгоритм следующий: получаю токен через /STS/oauth/token. После этого отправляю запрос на /SignServer/rest/api/transactions со следующим содержанием:
Код:{
"OperationCode": {
"Action": "SignDocument",
"DisplayName": "Подпись документа",
"Uri": "http://dss.cryptopro.ru/identity/claims/action/SignDocument"
},
"Document": "MTIzNDU=",
"Parameters": [
{
"Name": "SignatureType",
"Value": "1"
},
{
"Name": "CertificateID",
"Value": "5010"
},
{
"Name": "DocumentInfo",
"Value": "Test doc"
},
{
"Name": "DocumentType",
"Value": "Txt"
},
{
"Name": "Hash",
"Value": "False"
}
]
}
Полностью запрос выглядит так:
POST https://dsslab/SignServer/rest/api/transactions HTTP/1.1 Accept: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlBPTTVGUWdiNExNdHRja3B2NUZSdU82NmlnZyJ9.eyJ1bmlxdWVfbmFtZSI6ImFyc2xhbm92IiwibmFtZWlkIjoiMDQyYzg5YzEtNjY1Zi00NjdmLWE4YWUtNDMxNmNjZTBiMTE4IiwiZHNzX2lzcyI6InJlYWxzdHMiLCJkc3NfdXVpZCI6IjQyNjhTTW1TSEtqcjlLYTlIa3dkY1pPbWVCOD0iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9tb2JpbGVwaG9uZSI6Ijc5MjczMjU1NzY5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMveDUwMGRpc3Rpbmd1aXNoZWRuYW1lIjoiQ0490KLQuNC80YPRgCIsInJvbGUiOiJVc2VycyIsImh0dHA6Ly9kc3MuY3J5cHRvcHJvLnJ1L2lkZW50aXR5L2NsYWltcy9hY3Rpb24vaXNzdWUiOiJ0ZmE6ZmFsc2UiLCJodHRwOi8vZHNzLmNyeXB0b3Byby5ydS9pZGVudGl0eS9jbGFpbXMvYWN0aW9uL3NpZ25kb2N1bWVudCI6InRmYTp0cnVlIiwiaHR0cDovL2Rzcy5jcnlwdG9wcm8ucnUvaWRlbnRpdHkvY2xhaW1zL2FjdGlvbi9zaWduZG9jdW1lbnRzIjoidGZhOmZhbHNlIiwiaHR0cDovL2Rzcy5jcnlwdG9wcm8ucnUvaWRlbnRpdHkvY2xhaW1zL2FjdGlvbi9kZWNyeXB0ZG9jdW1lbnQiOiJ0ZmE6ZmFsc2UiLCJodHRwOi8vZHNzLmNyeXB0b3Byby5ydS9pZGVudGl0eS9jbGFpbXMvYWN0aW9uL2NyZWF0ZXJlcXVlc3QiOiJ0ZmE6ZmFsc2UiLCJodHRwOi8vZHNzLmNyeXB0b3Byby5ydS9pZGVudGl0eS9jbGFpbXMvYWN0aW9uL2NoYW5nZXBpbiI6InRmYTpmYWxzZSIsImh0dHA6Ly9kc3MuY3J5cHRvcHJvLnJ1L2lkZW50aXR5L2NsYWltcy9hY3Rpb24vcmVuZXdjZXJ0aWZpY2F0ZSI6InRmYTpmYWxzZSIsImh0dHA6Ly9kc3MuY3J5cHRvcHJvLnJ1L2lkZW50aXR5L2NsYWltcy9hY3Rpb24vcmV2b2tlY2VydGlmaWNhdGUiOiJ0ZmE6ZmFsc2UiLCJodHRwOi8vZHNzLmNyeXB0b3Byby5ydS9pZGVudGl0eS9jbGFpbXMvYWN0aW9uL2hvbGRjZXJ0aWZpY2F0ZSI6InRmYTpmYWxzZSIsImh0dHA6Ly9kc3MuY3J5cHRvcHJvLnJ1L2lkZW50aXR5L2NsYWltcy9hY3Rpb24vdW5ob2xkY2VydGlmaWNhdGUiOiJ0ZmE6ZmFsc2UiLCJodHRwOi8vZHNzLmNyeXB0b3Byby5ydS9pZGVudGl0eS9jbGFpbXMvYWN0aW9uL2RlbGV0ZWNlcnRpZmljYXRlIjoidGZhOmZhbHNlIiwiaHR0cDovL2Rzcy5jcnlwdG9wcm8ucnUvaWRlbnRpdHkvY2xhaW1zL2FjdGlvbi9wcml2YXRla2V5YWNjZXNzIjoidGZhOmZhbHNlIiwiZHNzX2dyb3VwIjoiRGVmYXVsdCIsImh0dHA6Ly9kc3MuY3J5cHRvcHJvLnJ1L2lkZW50aXR5L2NsYWltcy9hY2Nlc3Nwb2xpY3kiOiIwIiwiaXNzIjoicmVhbHN0cyIsImV4cCI6MTUzNzg1MDcxNywibmJmIjoxNTM3ODQ4OTE3fQ.DVd74KMOdt5M8EU8q2Ln6b1umvjmojzmR0eFdkSr0kNbbNz73mokf8MhWkgPgcn23dttzK1Mf692mwExnbkkK8QUXjtrbwfhO1zQkJzmvv-82oVyic-QEI3nZqViYdvKTQJlc_5Ff50KXUE9cfvUvElDJskJGbn9Dfg6oJD7caKo3PpaXXzPY8GzNvsKwhHQvbJq0LvbziVDq0UtsJxj5e7-Jsj56auUOpYaYMxK5rLd2B7L0pDvpPQS9Goeyll6gC4RSOm9r_ZHB5ROmqsbmdSwCB6yE7nKp9ZiORKlgSMfRPfhKLOJ_ZlVIVOwUhaJCV0GiwOYai_I81oAKJGfJg Content-Type: application/json; charset=utf-8 Host: dsslab Content-Length: 406
{"OperationCode": { "Action": "SignDocument" , "DisplayName":"Подпись документа", "Uri":"http://dss.cryptopro.ru/identity/claims/action/SignDocument"}, "Document": "MTIzNDU=", "Parameters": [ {"Name":"SignatureType", "Value":"1"}, {"Name":"CertificateID", "Value":"5010"}, {"Name":"DocumentInfo","Value":"Test doc"}, {"Name":"DocumentType","Value":"Txt"},{"Name":"Hash","Value":"False"} ] }
Пробовал Action задавать числом, добавлять/убирать параметры подписи ит.п. В ответ возвращается {"Message":"invalid_operation"}. Также пробовал отправлять запрос {"Resource":"http://dsslab/SignServer/SignService.svc/federation"} на /STS/confirmation. В ответ сразу приходит токен, который я пытаюсь использовать для подписания документа, но получаю 403 ошибку (что, правда, ожидаемо, т.к. при запросе на confirmation я не знаю id транзакции). Без подтверждения документ подписывается нормально. Собственно, вопрос: как с использованием rest подписать документ с подтверждением (и правильно ли я передаю в этом случае параметры подписи). DSS находится на виртуальной машине, работает с тестовым УЦ.
|