0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 26
|
||||||
1 | ||||||
SOAP сервис ФСС. Подписывание запросов сертификатом09.10.2017, 15:10. Просмотров 16490. Ответов 40
Метки нет Все метки)
(
Доброго дня всем.
Есть задача наладить интеграцию с сервисом ФСС по Электронным больничным листам. Сам сервис находится тут https://docs-test.fss.ru/eln.html WSDL тут https://docs-test.fss.ru/FSSWS... nPort?WSDL По спецификации используется стандарт безопасности OASIS Web Service Security. Не могу разобраться как подписывать запросы сертификатом. Если добавить стандартную ссылку на Веб-службу и работать ней, то не принимает сертификат. Или я его не туда указываю.
Если кто то уже интегрировался с этим сервисом, скиньте пожалуйста код хотя бы получения номера больничного, дальше я уже думаю разберусь. Заранее благодарен.
0
|
|
09.10.2017, 15:10 | |
Сервис с самозаверенным сертификатом SOAP сервис на PHP SOAP запрос на ws сервис Сервис с методами SOAP и REST |
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|||||||||||
30.10.2018, 16:06 | 21 | ||||||||||
Заготовка
Вылетает на моменте signer.ComputeSignature(); Такое чувство, что не принимает шаблон или неправильно указываем саму подпись, методы типа signer.set_Signature() и signer.set_SigndeInfo в классе SignedXml отсутствуют...
0
|
11 / 11 / 1
Регистрация: 16.11.2011
Сообщений: 50
|
|
30.10.2018, 16:10 | 22 |
Доступ к закрытому ключу точно есть?
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|
30.10.2018, 16:16 | 23 |
Сертификат скопирован в контейнер, в личный кабинет через него пускает, единственное пароль от токена просит каждый раз. Вы про это?
зы просьба сильно не ругать с КП сталкиваюсь первый раз в жизни , и то косвенным образом.)
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
||||||
31.10.2018, 09:55 | 24 | |||||
Вываливается с такой ошибкой, в ключом походу все нормально, по крайней мере в BinarySecurityToken сертификат присутствует
0
|
11 / 11 / 1
Регистрация: 16.11.2011
Сообщений: 50
|
||||||
31.10.2018, 10:09 | 25 | |||||
У Вас ошибка при подписи во всех запросах или только в конкретном, если во всех, то посмотрите в сторону FSSSignedXml, он должен найти подписываемый узел
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|
31.10.2018, 10:57 | 26 |
Проблема в том, что переопределить метод как в c# нет возможности в нашей ERP-системе, сборка подключаемая...
0
|
11 / 11 / 1
Регистрация: 16.11.2011
Сообщений: 50
|
|
31.10.2018, 11:13 | 27 |
Здесь я Вам не подскажу, реализацией на плюсах не занимался
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
||||||
31.10.2018, 15:01 | 28 | |||||
Итак, переписали класс SignedXML, скомпилировали .dll, и подсунули ее в нашу сборку, теперь подхватывает его хорошо, и документ формируется как надо, единственное не понимает
Насколько понимаю он ищет элемент Body с таким же OGRN, который мы указываем в SignedInfo и ищем его через FSSSignedXml .GetIdElement() Танцы с бубном.
0
|
11 / 11 / 1
Регистрация: 16.11.2011
Сообщений: 50
|
||||||||||||||||
31.10.2018, 15:11 | 29 | |||||||||||||||
Да, так, но могут подписывается разные элементы внутри boby, такие как
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
||||||
31.10.2018, 15:27 | 30 | |||||
Банально ошибка в форматировании строки FSSSignedXml .GetIdElement(). Почему-то не принимал знак $:
![]()
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|||||||||||
01.11.2018, 09:20 | 31 | ||||||||||
При попытке отправить зашифрованный xml на сервер:
0
|
11 / 11 / 1
Регистрация: 16.11.2011
Сообщений: 50
|
|
01.11.2018, 12:45 | 32 |
Нет, в C# при работе с wcf сервисом ФСС, я не использую HttpWebRequest, единственное, что бросается в глаза, это
https://docs.fss.ru/WSInsurerC... onsLnPort?WSDL у меня https://docs-test.fss.ru/WSLnC... ionsLnPort
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|
01.11.2018, 13:11 | 33 |
Проблема была в следующем, нужно указать протокол по которому уходит запрос(узнали через fiddler), единственное у нас .NET 3.5 и на нем отсутствует протокол TSL 1.2(а он появился начиная с .NET 4.5), пришлось писать собственную реализацию:
Код
System.Net.ServicePointManager::set_SecurityProtocol(FSS.FSSSignedXml::SecurityProtocolType_Tls12()); Что насчет адреса запроса, если отловить запрос из АРМ ФСС на получение ЭЛН, то можно увидеть совершенно другой адрес: https://docs.fss.ru/ws-insurer... nPort?WSDL. В C# все отлично работает у нас.
0
|
0 / 0 / 0
Регистрация: 30.10.2018
Сообщений: 2
|
|
07.11.2018, 07:00 | 34 |
Адреса для запросов можно найти на странице ФСС, сейчас все адреса переведены на работу по протоколу v11, соответственно это адреса https://docs-test.fss.ru/WSLnC... nPort?WSDL и https://docs-test.fss.ru/ws-in... nPort?WSDL
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 22
|
|
14.11.2018, 19:38 | 35 |
Спасибо вам за пример! А у вас реализован процесс подписания и шифрования реестра?
0
|
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 1
|
|
30.11.2018, 10:37 | 36 |
Скажите а где можно получить ключевую пару (приватный,публичный ключи) для работы с тестовым контуром ФСС (https://docs-test.fss.ru/ws-in... ort?WSDL)?
Я получил в тестовом УЦ КриптоПро (https://www.cryptopro.ru/solutions/test-ca), Затем сформировал весь SOAP запрос (согласно спецификации http://cabinets-test.fss.ru/%D... 181112.doc) ФСС отвечает мне: ... - <S:Body wsu:Id="OGRN_1027739443236"> - <ns1:getPrivateLNDataResponse xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> - <ns1:FileOperationsLnUserGetPrivateLNDataOut> <ns1:REQUEST_ID>GETLNINS_4210000443_2018_11_30_00001</ns1:REQUEST_ID> <ns1:STATUS>0</ns1:STATUS> <ns1:MESS>ORA-20001: Отсутствует подпись головной организации</ns1:MESS> </ns1:FileOperationsLnUserGetPrivateLNDataOut> </ns1:getPrivateLNDataResponse> </S:Body> </S:Envelope> Может ФСС не нравится мой ключ которым я подписал блок текста внутри body. Поделитесь кто где брал ключи.
0
|
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 2
|
|
02.09.2019, 14:34 | 37 |
DTri, а есть ли пример кода для использования с сертификатами ГОСТ-2012?
0
|
0 / 0 / 1
Регистрация: 02.10.2016
Сообщений: 13
|
||||||
25.10.2019, 07:56 | 38 | |||||
Добрый день!
Опробовал подписание указанных болванок отсюда. В итоге 500 ошибка на сервере. Подправил в CryptoTools ГОСТ при подписании XML (у меня 2012) //signer.SignedInfo.SignatureMethod = CPSignedXml.XmlDsigGost3410UrlObsolete; signer.SignedInfo.SignatureMethod = CPSignedXml.XmlDsigGost3410_2012_256Url; Использовал обе болванки, указанные тут, пробовал создавать свой шаблон XML и читать с него. Никак не получается получить ответ.
0
|
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 2
|
||||||
20.01.2020, 17:06 | 39 | |||||
Вот такой код у меня работает с ГОСТ2012 и КриптоПро.Нет:
0
|
0 / 0 / 1
Регистрация: 02.10.2016
Сообщений: 13
|
|
26.01.2021, 06:41 | 40 |
У всех получается получать ЭЛН по спецификации 2.0?
У меня не получается. Удавалось получать только тестовый ЭЛН с тестового контура 2.0 с подписанием без шифрования. С шифрованием - не выходит, возникает 500 ошибка. Причем сегодня не работает даже без шифрования тот самый ЭЛН, который получал несколько дней назад (возникает исключение "404 Не найден". Что не найдено - URI или ЭЛН - непонятно). Если получать по спецификации 1.1 - без проблем. У кого работает по спецификации 2.0, какие там изменения в целом? Техподдержка не помогает отвечая, что "Техническая поддержка не дает консультаций и решений по разработке сторонних приложений"
0
|
26.01.2021, 06:41 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. SOAP-сервис из WSDL - как добавить WS-Adressing Правка SOAP запросов через PHP Нужно на Spring написать сервис логирования запросов Hibernate сучностей SOAP и set_time_limit - Как работать с настройкой вообще и вместе с SOAP в частности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |