Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро ЭЦП (усовершенствованная ЭЦП)
»
Проблемы с авторизацией по сертификату в системе диадок. Сертификат получен через КриптоПро Плагин
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Решаю задачу: 1) Получить установленные локально сертификаты на страницу корпоративного сайта в нашей сети, выбрать сертификат и передать его на наш api ( https://github.com/pavenkostanislav/GetingCertificatesList) , 2) Авторирзироваться по SDK C# в системе Диадок для дальнейшего документоооборота ( http://api-docs.diadoc.ru/ru/latest/howto/example_authorization.html#sdk), 3) Подписываться неформализованный Протокол с индивидуальным количеством подписантов. Текущая реализация: 1) Список сертификатов получен через КриптоПро плагин Код:var oStore = cadesplugin.CreateObject("CAdESCOM.Store");
oStore.Open();
Получены данные сертификата: Код:body
'subject': cert.SubjectName;
'thumbprint': cert.Thumbprint;
'privateKey': cert.PrivateKey;
'signature': cert.Export(CADESCOM_ENCODE_BASE64);
Отправляю через Angular 2 серилизованной JSON строкой на наш api: Код:let body = JSON.stringify(cert);
let headers = new Headers();
this.http.post('api/diadoc/Authenticate', body, { headers: headers }).map(res => res.json());
на сервере получаю: Код:var requestX509 = JsonConvert.DeserializeObject<EasyCert>(JsonConvert.SerializeObject(body), JsonSettings.RuDateTimeFormat);
var x509 = new System.Security.Cryptography.X509Certificates.X509Certificate2();
x509.Import(Convert.FromBase64String(requestX509.Signature));
И пользуясь DiadocSDK C# v. 1.45.2 отправляю Вам Код:var _diadocApi = new Diadoc.Api.DiadocApi(DiadocConstants.DiadocClientId, DiadocConstants.DiadocApiUrl, new Diadoc.Api.Cryptography.WinApiCrypt());
var authTokenCert = _diadocApi.Authenticate(x509.RawData);
Цитата:Приходит ошибка 401 Вопросы: Прошу помочь коррек тно создать экзампляр ЭП на сервере, предварительно передав туда данные через КриптоПро плагинЗараннее спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Цитата:_diadocApi.Authenticate(x509.RawData); Клиент в браузере отдельно с закрытым ключом + плагин, ... магия ... аутентификация (к diadocApi) на сервере без закрытого ключа (связанного с переданным сертификатом)? или что? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Цитата:И пользуясь DiadocSDK C# v. 1.45.2 отправляю Вам Кому? СКБ Контур? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Автор: Андрей * Цитата:_diadocApi.Authenticate(x509.RawData); Клиент в браузере отдельно с закрытым ключом + плагин, ... магия ... аутентификация (к diadocApi) на сервере без закрытого ключа (связанного с переданным сертификатом)? или что? Если я правильно понял замечание: Принцип работы: Пльзователь имеет КриптоПрошный ключ и работает в самописном вэб-приложении. Ключик вставлен у него на рабочем компьютере, а сертификат зарегестрирован в системе у текущего пользователя. Проблема именно в закрытом ключе, мне не удалось корректно серилизовать в JSON privatekey в таком виде который смог бы получить на сервере
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Автор: Андрей * Цитата:И пользуясь DiadocSDK C# v. 1.45.2 отправляю Вам Кому? СКБ Контур? Передавалось СКБ Контур
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Автор: pavenko_sv Проблема именно в закрытом ключе, мне не удалось корректно серилизовать в JSON privatekey в таком виде который смог бы получить на сервере Вообще для чего? Прокси-сервер с "закрытыми" ключами пользователей? Если пользователь (по логике программиста) отдавал бы свой закрытый ключ на какой-то внутренний сервер, то что мешает на этом сервере иметь дубликат и уже работать "с контейнером на сервере"? Вы API СКБ Контур понимаете? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Автор: Андрей * Автор: pavenko_sv Проблема именно в закрытом ключе, мне не удалось корректно серилизовать в JSON privatekey в таком виде который смог бы получить на сервере Вообще для чего? Прокси-сервер с "закрытыми" ключами пользователей? Если пользователь (по логике программиста) отдавал бы свой закрытый ключ на какой-то внутренний сервер, то что мешает на этом сервере иметь дубликат и уже работать "с контейнером на сервере"? Да задача очень даже небезопасная, но наверное стоит сделать фэйс кирпичом и сказать не я придумываю такие задачи. По факту хочется реализовать свой UI для Диадока Автор: Андрей * Автор: pavenko_sv Вы API СКБ Контур понимаете? Что именно я мог упустить? Сейчас мной реализован интегратор на C# DiadocConnectorДумаю такого примера достаточно чтобы считать что понимаю "API СКБ Контур" Но там С# запуск от конкретного имени пользователя консольного приложения. С JS всё иначе, тут либо с нашего http в их httpS передавать запросы что в принципе невозможно, либо пытаться сделать некоторые "танцы с бубном" как вариант передаю на свой апи json чтобы уже дальше Диадоковской Dll-кой запросы строить. Или по факту вызывать методы. Авторизация на языке C# есть - работает.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Возможно Вы предложите иное решение? Как я могу авторизироватося в СКБ Контур по сертификату полученному через Ваш плагин?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Автор: pavenko_sv Возможно Вы предложите иное решение? Как я могу авторизироватося в СКБ Контур по сертификату полученному через Ваш плагин? в SDK Диадока разве нет? У них же реализовано это в браузере. Меняйте под себя. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2017(UTC) Сообщений: 70 Откуда: Нижний Новгород Сказал «Спасибо»: 39 раз
|
Автор: Андрей * Автор: pavenko_sv Возможно Вы предложите иное решение? Как я могу авторизироватося в СКБ Контур по сертификату полученному через Ваш плагин? в SDK Диадока разве нет? У них же реализовано это в браузере. Меняйте под себя. У меня нет и я не нашёл описания как работает их Контуровский COM-объект Но даже если и получилось бы в диадоке нет нужного нам функционала. В дальнейшем мы хотил Подписывать блолее чем 3-мя подписями один неформализованный протокол и это я планировал реалиовать через ваш плагин
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро ЭЦП (усовершенствованная ЭЦП)
»
Проблемы с авторизацией по сертификату в системе диадок. Сертификат получен через КриптоПро Плагин
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close