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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Glumsik_onp  
#1 Оставлено : 29 августа 2023 г. 12:26:25(UTC)
Glumsik_onp

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.08.2023(UTC)
Сообщений: 1

Здравствуйте.
В ЕСИА для получения кода авторизации по эндпоинту /aas/oauth2/ac мы формируем client_secret такой командой
cryptcp -signf -dir "${dirName}" -thumbprint "${containerHash}" -norev -nochain "${tempFile}" -cert -der -strict -hashAlg "1.2.643.7.1.1.2.2" -detached -pin ${CERTIFICATE_PIN}. Дальше кодируем в формат base64 url safe. Получение кода происходит успешно.

Документация для /aas/oauth2/ac:
Цитата:
<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-
8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без
разделителей). <client_secret> должен быть закодирован в формате base64 url safe



Но получение кода авторизации по новому эндпоинту /aas/oauth2/v2/ac вызывает вопросы:
1) что подразумевается под алгоритмом подписания data hash?
2) что нужно подправить в команде что бы client_secret соответствовал новому эндпониту?

Документация для /aas/oauth2/v2/ac:
Цитата:
<client_secret> - подпись значений пяти параметров в кодировке UTF-8:
client_id, scope, timestamp, state, redirect_uri.
конкатенировать вышеуказанные параметры;
подписать полученную строку с использованием алгоритма подписания data hash с
использованием механизмов КриптоПРО CSP и сертификата информационной
системы;
закодировать полученное значение в URL Safe Base64.



Offline nickm  
#2 Оставлено : 29 августа 2023 г. 13:35:16(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,458

Сказал(а) «Спасибо»: 588 раз
Поблагодарили: 426 раз в 405 постах
Не разу не разработчик, но попробую "расшифровать" написанное:
Цитата:
конкатенировать вышеуказанные параметры client_id, scope, timestamp, state, redirect_uri

Получить строку из указанных параметров;
Цитата:
подписать полученную строку с использованием алгоритма подписания data hash с
использованием механизмов КриптоПРО CSP и сертификата информационной
системы

Высчитать hash полученной выше строки и подписать этот хэш;
Цитата:
закодировать полученное значение в URL Safe Base64.

Тут вроде как понятно.

Автор: Glumsik_onp Перейти к цитате
1) что подразумевается под алгоритмом подписания data hash?
2) что нужно подправить в команде что бы client_secret соответствовал новому эндпониту?

Перед Вашим подписанием получить хэш строки, в общем случае выглядит так
Код:
cryptcp -hash -dir "${dirName}" *.extension


А уже после её и подписать.

Отредактировано пользователем 29 августа 2023 г. 13:36:46(UTC)  | Причина: Не указана

Offline saaremaa  
#3 Оставлено : 4 сентября 2023 г. 20:42:16(UTC)
saaremaa

Статус: Новичок

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

присоединяюсь к вопросу.

Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes...lugi.ru/aas/oauth2/v2/ac ???

По возможности примерами к командной строке. Если есть кусок кода на Golang - это просто будет чудесно.

Все что выше перепробовали - получаем ошибку ESIA-007053.

При этом самописное решение работает, но использовать его нельзя в боевой системе.
Online Андрей *  
#4 Оставлено : 4 сентября 2023 г. 21:44:55(UTC)
Андрей *

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

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

Сказал «Спасибо»: 554 раз
Поблагодарили: 2251 раз в 1756 постах
Автор: saaremaa Перейти к цитате
присоединяюсь к вопросу.

Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes...lugi.ru/aas/oauth2/v2/ac ???

По возможности примерами к командной строке. Если есть кусок кода на Golang - это просто будет чудесно.

Все что выше перепробовали - получаем ошибку ESIA-007053.

При этом самописное решение работает, но использовать его нельзя в боевой системе.


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