Настраиваем авторизацию сайта через ЕСИА.
Проблема: После перехода по сформированной ссылке с подписью переходим на страницу авторизации, вводим данные, получаем ошибку «Ошибка авторизации», в адресе страницы есть подробности
error_description=ESIA-007005%3A+The+client+is+not+authorized+to+request+an+access+token+using+this+method
Имеется машина с докером.
Установлен докер контейнер https://hub.docker.com/r/required/cryptopro
Установлен корневой сертификат, сертификат клиента, стоит пробный ключ для КриптоПро.
Цепочки сертификатов проверены методом копирования (https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2)
cryptcp -copycert -thumbprint "$thumbprint" -df tt.cer
На выходе
Certificate chains are checked
Для ЕСИА требуется подпись в формате PKCS#7 detached signature в кодировке UTF8, затем кодированная в url safe base64
Погуглив, нашел такой вариант:
csptest -sfsign -sign -detached -base64 -add -alg "GOST12_256" -in message -out sig
Файл подписывается, проверяю
csptest -sfsign -verify -detached -base64 -add -alg "GOST12_256" -in message -signature sig
На выходе:
Detached Signature was verified OK
Вопрос — в чем может быть проблема? Куда копать?
UPD: Есть сервис, который умеет подписывать этим же сертификатом, написан на Java и с его подписью ЕСИА авторизует. Сравнив нашу ссылку и ссылку сервиса — нашли отличия только в строке client_secret, то есть в подписи.
Получение данных об организациях возможно только при использовании offline-режима получения данных о пользователе. Этот процесс включает следующие шаги:
1. Проведение аутентификации пользователя с помощью offline-режима, по результатам которого у вызывающей системы будет следующая информация:
- идентификатор (oid) организации, по которой необходимо получить детальную информацию. Для получения oid можно воспользоваться блоком о ролях пользователя (roles), который доступен при наличии разрешения «Просмотр списка организаций пользователя» (usr_org);
- актуальное значение ключа доступа «scsToken».
2. Вызов специального сервиса ESIA-Bridge, позволяющего получить данные об организации. Для этого необходимо выполнить HTTP-запрос методом POST на адрес точки получения данных об организации (/blitz/bridge/organization). Особенности запроса:
- в теле (body) запроса необходимо указать параметры “token” (значение актуального ключа доступа), “oid” (идентификатор организации) и “redirect_url” (адрес обработчика успешной аутентификации на стороне вызывающей системы);
- в заголовке (http header) необходимо указать параметр “Content-Type” со значением “application/x-www-form-urlencoded”.
Пример запроса на получение данных об организации:
POST https://esia.client.testcase.ru/blitz/bridge/organization Content-Type: application/x-www-form-urlencoded token=MIrS8LUZNHHh-8gBjzoBbHaI5qvsCIF3I3qDjh7mOMif5L90z2SAYYO9UN2talPmqiavxzjfE5CpAhV4S2t_kWyV6UHqskUIIT1B-EFFJmLAYEYnUbuD60ehbydOJVYsGmrjvaLzSwY6oqI3GKxgZaROq-9qwafgw5bgSdjCI18NU_QJHr2oRzumxwTEbLO5QKeQNekSVZeM_71q8t7l8Lh8PonOFl9Kiz2__00HT73QKIi_alE6qdzytPeS0tv68bcRdiUU2w6pzW6oIyQ6EJgpdn6zj3ff2dPiJ9pJE0oOVqcgzQHdq7_1UezpFw9qoQPEJSpAGrIH5ewhG8__k8mtz_EASApmjK20stkBdqeyFS9s21unHDmlvd13yh7Fk0ijm0vWl_iNAeCai-H_tozj7YH65L8eXqiq5sdkl2HmQHiEPOwWsmS1JivjgdqGHiaqVEiu5oXT_fEm6hrFj7nsxeedDVUGJ14FBYGgGU_Sgpf5ql2rHrJyz9hVr3MR|MTQxODMxMjc2Mg|U0gxQVMxMjhDQkM|6dkboBYuF4Y7ZtlHztSkjg|4n9D_efCPLv3fFl_JLTz5YgENWc&oid=1000323157&redirect_url=http://localhost:9000/ofCb
Возможные варианты ответа ESIA-Bridge на такой запрос:
- если ключ доступа не позволяет получить данные указанной организации, то в ответе содержится ссылка (link) с запросом для получения корректного ключа доступа. Пример ответа:
{
“redirect” : {
“link” : “/blitz/bridge/entrance?redirect_url=http://localhost:9000/ofCb&oids=1000323157&mode=offline&state=dfa6e47e-576b-460e-9476-ce9597415188“,
“state” : “dfa6e47e-576b-460e-9476-ce9597415188"
}
}
Все, что требуется системе, – направить браузер пользователя по ссылке из ответа, указав корректный hostname ESIA-Bridge. Переход по этой ссылке инициирует в ЕСИА получение разрешения на доступ к данной организации. После того, как пользователь даст разрешение, ESIA-Bridge вернет пользователя по адресу, указанному в redirect_url и поставит новую сессионную cookie с новым ключом доступа tokenSCS. Получив обновленный ключ доступа, система должна повторно вызвать сервис получения данных об организации.
- если ключ доступа позволяет получить данные указанной организации, то в ответе будет получен json со следующими данными:
- обновленный ключ доступа scsToken, при этом старый ключ перестает действовать;
- сведения об организации согласно спецификациям ЕСИА.
Пример ответа, содержащего в себе данные организации, ее сотрудников и филиалов:
{
"orgResponse": {
"scsToken": "esMNcjW0qPQ51zcTMiI8w881PiaMUfHBdNGjLo0-V2Tu8U8NGbP86tVxDXeoPQIOyjiQwz2K4ml0ymIqajcvmxoEpOc7IVs-sux0QKS4GKWxAUFBhcB-odAZJVTS_Sl0oZB8Xn5rKJh2p3zS92v-JbMVWzwL0OS6LB58If0vLIu1gdgwqKq1ee7B7vSsc8te|MTUxMzk4MzQ5MA|U0gxQVMxMjhDQkM|ls9NJJklcIDvAtQr_DgZ0w|_7qL6n1KC_M5da77ohg03FRAxwQ",
"organization": {
"stateFacts": [
"Identifiable"
],
"eTag": "8DF580E06129CA1190B283E6764D68ADD88CBDB9",
"oid": 1000323157,
"shortName": "ООО "РЕАК СОФТ"",
"fullName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "РЕАК СОФТ"",
"type": "AGENCY",
"ogrn": "1147746651733",
"inn": "7715434658",
"leg": "12200",
"kpp": "771501001",
"agencyTerRange": "00",
"agencyType": "10.FED",
"oktmo": "45359000",
"contacts": {
"stateFacts": [
"hasSize"
],
"size": 3,
"eTag": "711FD22A0ADEA3FB05BEB780FF6E2B25F9BF39A1",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "326468E0BC693CE48B87646B758EE54FB0737010",
"id": 14283140,
"type": "OFX",
"vrfStu": "NOT_VERIFIED",
"value": "+7(342)2875843"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "3288F9165AD8A0C2D956DB8CA9B3799BD7CECE18",
"id": 14283139,
"type": "OPH",
"vrfStu": "NOT_VERIFIED",
"value": "+7(342)2409435*984398"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "BA3D328687D1538B7AFF0CC153E704738BC78253",
"id": 14240474,
"type": "OEM",
"vrfStu": "NOT_VERIFIED",
"value": "mvanin@reaxoft.ru"
}
]
},
"addresses": {
"stateFacts": [
"hasSize"
],
"size": 2,
"eTag": "7B82EB88BCA0425E2BC3B6914AFC6F9D0702DF3B",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "5E2BA4DB9268FED5079B2F5B5463E9FFE3CC4E50",
"id": 27443,
"type": "OPS",
"region": "Пермский",
"city": "Пермь",
"addressStr": "Пермский край, Пермь город, Комсомольский проспект",
"countryId": "RUS",
"zipCode": "614000",
"street": "Комсомольский",
"house": "31В",
"flat": "37"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "8CA439D7A477D899C0E67E513B2B72C4B4F962E3",
"id": 16378,
"type": "OLG",
"region": "г МОСКВА",
"addressStr": "г МОСКВА,ул РИМСКОГО ",
"countryId": "RUS",
"zipCode": "127566",
"street": "ул РИМСКОГО ",
"house": "95",
"flat": "36"
}
]
},
"employees": {
"stateFacts": [
"LastPage",
"FirstPage",
"Paginated"
],
"pageSize": 100,
"pageIndex": 1,
"elements": [
{
"stateFacts": [
"EntityRoot"
],
"eTag": "E7ECC603BCEC866C6ACD0738A077CA39BADA9EFA",
"prnOid": 1000299331,
"orgOid": 1000323157,
"position": "Руководитель",
"chief": true,
"person": {
"stateFacts": [
"EntityRoot"
],
"eTag": "5B64DACFE84502F3B4A73F66A3F4D07F23360ACB",
"firstName": "Михаил",
"lastName": "Юрьев",
"middleName": "Владимирович",
"birthDate": "13.11.1981",
"gender": "M",
"citizenship": "RUS",
"snils": "123-456-789 58",
"inn": "123456789012",
"updatedOn": 1492174836,
"status": "REGISTERED",
"verifying": false,
"rIdDoc": 3303
},
"blocked": false
},
{
"stateFacts": [
"EntityRoot"
],
"eTag": "D90F86B8FAE7DB8567D3679D97309AF821D5025D",
"prnOid": 1000323269,
"orgOid": 1000323157,
"chief": false,
"person": {
"stateFacts": [
"EntityRoot"
],
"eTag": "CBB725A26583BBD55980751FAE85FAD2BC828833",
"firstName": "Петр",
"lastName": "Петров",
"middleName": "Петрович",
"birthDate": "11.11.1981",
"birthPlace": "Москва",
"gender": "M",
"citizenship": "RUS",
"snils": "000-333-444 39",
"updatedOn": 1513856314,
"status": "REGISTERED",
"verifying": false
},
"blocked": false
},
{
"stateFacts": [
"EntityRoot"
],
"eTag": "48C5A569574766A15287584DC057897BF20B9BF5",
"prnOid": 1000348301,
"orgOid": 1000323157,
"chief": false,
"person": {
"stateFacts": [
"EntityRoot"
],
"eTag": "3A4A8EA83413C3076B34485561BB6FDE518C58D8",
"firstName": "Семен",
"lastName": "Иванов",
"middleName": "Петрович",
"birthDate": "14.03.1996",
"birthPlace": "Москва",
"gender": "M",
"trusted": true,
"citizenship": "RUS",
"snils": "000-555-444 39",
"inn": "520791835020",
"updatedOn": 1513937119,
"status": "REGISTERED",
"verifying": false,
"rIdDoc": 38957
},
"blocked": false
}
]
},
"branches": {
"stateFacts": [
"LastPage",
"FirstPage",
"Paginated"
],
"pageSize": 100,
"pageIndex": 1,
"eTag": "B854C2B28B54083C063C9319950B148A1D87EDCB",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "BDD1049E273023D50516686F7FF4CD14CC938150",
"brhOid": 1000355069,
"name": "Московский",
"kpp": "435354354",
"leg": "30002",
"contacts": {
"stateFacts": [
"hasSize"
],
"size": 3,
"eTag": "BB7C4789C938FBF59F60744EC31215239D20B94F",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "5649E98457FAD7C4B38B091EABAAE497D7C24666",
"id": 14283146,
"type": "OEM",
"vrfStu": "NOT_VERIFIED",
"value": "test@example.com"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "E3B691F0DC97A07F271F337EF6000F671299E1C6",
"id": 14283149,
"type": "OPH",
"vrfStu": "NOT_VERIFIED",
"value": "+7(495)8736847*684764"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "D3A1E4715F456DD2D54544E387B6159DB6E486D4",
"id": 14283150,
"type": "OFX",
"vrfStu": "NOT_VERIFIED",
"value": "+7(499)9990930"
}
]
},
"addresses": {
"stateFacts": [
"hasSize"
],
"size": 1,
"eTag": "8051E7E5247D83DEBFA5FFAC9410C81D1E5E1597",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "EC676F9CDB0F1344A8EED5444A8CC0DEB98D994C",
"id": 27445,
"type": "OPS",
"region": "Москва",
"addressStr": "Москва город, Московско-Минской Дивизии площадь",
"countryId": "RUS",
"zipCode": "121096",
"street": "Московско-Минской Дивизии",
"house": "6",
"flat": "67"
}
]
}
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "9438AF6F3D163DFD6A258078BC3F77D337A44B3E",
"brhOid": 1000355068,
"name": "Дальневосточный",
"kpp": "948745837",
"leg": "30001",
"contacts": {
"stateFacts": [
"hasSize"
],
"size": 3,
"eTag": "FBBF6052BCF619EF40E2B2D888DC294AB9776BDB",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "C725D7760632612B18CBEDE303ADBA8612340488",
"id": 14283143,
"type": "OEM",
"vrfStu": "NOT_VERIFIED",
"value": "none@example.com"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "8CE333D782D4D75A8600210BBB1E78F73B2EC5F4",
"id": 14283145,
"type": "OFX",
"vrfStu": "NOT_VERIFIED",
"value": "+7(34343)90586"
},
{
"stateFacts": [
"Identifiable"
],
"eTag": "69344CDC7A35BD367284CB119ED237D2DBA30590",
"id": 14283144,
"type": "OPH",
"vrfStu": "NOT_VERIFIED",
"value": "+7(343)3354654*235642"
}
]
},
"addresses": {
"stateFacts": [
"hasSize"
],
"size": 1,
"eTag": "3786BD82486EF0DE78B9B4BF4594B00D5C660F3D",
"elements": [
{
"stateFacts": [
"Identifiable"
],
"eTag": "E56F04079933C955AC0C24DC8DD5E1722F912224",
"id": 27444,
"type": "OPS",
"region": "Хабаровский",
"addressStr": "Хабаровский край, Николаевский район, Нижнее Пронге поселок, Школьная улица",
"area": "Николаевский",
"settlement": "Нижнее Пронге",
"countryId": "RUS",
"zipCode": "682444",
"street": "Школьная",
"house": "40"
}
]
}
}
]
}
}
}
}
После получения ответа рекомендуется сохранить данные обновленного ключа доступа scsToken. Это позволит в будущем обновить данные об организации, ее сотрудниках и филиалах в offline-режиме, т.е. без участия пользователя.
Здравствуйте!
Установил:
КриптоПро CSP 5.0 для Windows
КриптоПро .NET 1.0.7132.0 (NET-x64-rus.msi)
КриптоПро .NET SDK 1.0.7132.0 (NETSDK-x64-rus.msi)
Мне необходимо авторизовать пользователей на сайте через ESIA
Пишу программу которая на вход получает строку типа:
fullname birthdate2020.01.24 08:48:17 +0100MICC01565f8ba7023-fa2b-4365-901b-e6062d4d2933
Мне эту строку нужно подписать чтоб использовать для формирования URL.
В качестве примера взял:
cpdn.cryptopro.ru/default.asp?url=content/cpnet/ht…
Далее из байт я делаю base64 url safe. Получается URL типа: (base64 я обрезал для удобства просмотра)
https://esia-portal1.test.gosuslugi.ru/aas/oauth2/ac?client_id=MICC01565&client_secret=MIIUjQYJKoZIhvcNAQcCoIIUfjCCFHoCAQExDjAMBggqhQMHAQECAgUAMAsGCSqGSIb3DQEHAaCCEKMwgggEMIIHsaADAgECAhEDTIvMesQM-oDpESJGsDMu_zAKBggqhQMHAQEDAjCCASgxIDAeBgkqhkiG9w0BCQEWEW9vYjUxQG1haWwub3JiLnJ1MRgwFgYFKoUDZAESDTEwNjU2MTIwMzI4OTIxGjAYBggqhQMDgQMBARIMMDA1NjEyMDQ1ODQwMQswCQYDVQQGEwJSVTEzMDEGA1UECAwqNTYg0J7RgNC10L3QsdGD0YDQs9GB0LrQsNGPINC-0LHQu9Cw0YHRgtGMMR0wGwYDVQQHDBTQsy4g0J7RgNC10L3QsdGD0YDQszExMC8GA1UECQwo0YPQuy4g0JzQsNGA0YjQsNC70LAg0JbRg9C60L7QstCwLCDQtC40MjEcMBoGA1UECgwT0JPQkdCj0JcgItCc0JjQkNCmIjEcMBoGA1UEAwwT0JPQkdCj0JcgItCc0JjQkNCmIjAeFw0xOTAzMTQwNjIyNTVaFw0yMDAzMTQwNjMyNTVaMIIBRzEgMB4GCSqGSIb3DQEJARYRb29iNTFAbWFpbC5vcmIucnUxGjAYBggqhQMDgQMBARIMMDA1NjEyMDQ1ODQwMRgwFgYFKoUDZAESDTdA5oHuDmvpS3Vy5mN6g2Xj&redirect_uri=https://pp.io/&scope=fullname+birthdate&response_type=code&state=57b9ae3d-52a1-4f49-8b48-87c5d8784167&access_type=offline×tamp=2020.01.24+08:56:58++0100
При переходе по данной ссылке ESIA мне возвращает:
error_description: ESIA-007005: The client is not authorized to request an access token using this method.
state: 57b9ae3d-52a1-4f49-8b48-87c5d8784167
error: unauthorized_client
Может я взял не тот пример для подписи?
Заранее большое спасибо!
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
ESIA-007005 Подключение к ЕСИА ГОСТ 3410 сертификата (.NET Core web app)
|
Aifar |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Здравствуйте Нужен client_secret: Пробовал и SignCms: Код:
И чтением из файла: Код:
Первый вопрос: правильно ли так подписывать? Да еще и в логах тестовой технологической среды записи: ALTESTO — идентификатор тестовой информационной системы (мнемоника) Второй вопрос: Но что может означать «aas feature»? Буду благодарен любой помощи Сертификат — усиленный гост 3410 с удостоверяющего центра. Но и с самоподписанным из DotnetCoreSampleProject ошибка не меняется Отредактировано пользователем 11 апреля 2022 г. 17:01:53(UTC) |
![]() |
|
|
Aifar |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
1. Подписывание правильное Только теперь падает в исключении при отправке запроса маркера доступа на https://esia-portal1.tes…suslugi.ru/aas/oauth2/te Win32Exception: Предоставленный функции токен неправилен Казалось бы просто ошибка проверки удаленного сертификата — сохраняешь с сайта сертификат, добавляешь в доверенные центры сертификации, но нет. Все равно падает. |
![]() |
|
|
two_oceans |
|
|
Статус: Эксперт Группы: Участники Сказал(а) «Спасибо»: 110 раз |
Автор: Aifar Казалось бы просто ошибка проверки удаленного сертификата — сохраняешь с сайта сертификат, добавляешь в доверенные центры сертификации, но нет. Все равно падает. Если сертификат сайта не самоподписанный, то ой! В доверенные надо будет добавить не сам сертификат сайта, а сертификат УЦ, выдавшего сертификат сайта. Впрочем и после этого возможны нюансы — например, сертификат на один домен, а отвечает с эти сертификатом сайт на другом домене. |
![]() |
|
|
Aifar |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Автор: two_oceans Автор: Aifar Казалось бы просто ошибка проверки удаленного сертификата — сохраняешь с сайта сертификат, добавляешь в доверенные центры сертификации, но нет. Все равно падает. Если сертификат сайта не самоподписанный, то ой! В доверенные надо будет добавить не сам сертификат сайта, а сертификат УЦ, выдавшего сертификат сайта. Впрочем и после этого возможны нюансы — например, сертификат на один домен, а отвечает с эти сертификатом сайт на другом домене. Нашел в сертификате ссылку на их УЦ, скачал их сертификат, поставил. Не сильно помогло. Также падает: Код:
Должны ли запросы отправляться с сервера у которого тоже действительный сертификат? У меня сейчас Kestrel с самоподписанным для https стоит Отредактировано пользователем 6 мая 2022 г. 12:43:02(UTC) |
![]() |
|
|
Aifar |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Сертификаты не помогли. Сделал по примеру из https://stackoverflow.co…could-not-be-established Просто добавил в конструктор Код:
|
![]() |
|
| Пользователи, просматривающие эту тему |
|
Guest |
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
ESIA-007005 Подключение к ЕСИА ГОСТ 3410 сертификата (.NET Core web app)
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Настраиваем авторизацию сайта через ЕСИА.
Проблема: После перехода по сформированной ссылке с подписью переходим на страницу авторизации, вводим данные, получаем ошибку «Ошибка авторизации», в адресе страницы есть подробности
error_description=ESIA-007005%3A+The+client+is+not+authorized+to+request+an+access+token+using+this+method
Имеется машина с докером.
Установлен докер контейнер https://hub.docker.com/r/required/cryptopro
Установлен корневой сертификат, сертификат клиента, стоит пробный ключ для КриптоПро.
Цепочки сертификатов проверены методом копирования (https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2)
cryptcp -copycert -thumbprint "$thumbprint" -df tt.cer
На выходе
Certificate chains are checked
Для ЕСИА требуется подпись в формате PKCS#7 detached signature в кодировке UTF8, затем кодированная в url safe base64
Погуглив, нашел такой вариант:
csptest -sfsign -sign -detached -base64 -add -alg "GOST12_256" -in message -out sig
Файл подписывается, проверяю
csptest -sfsign -verify -detached -base64 -add -alg "GOST12_256" -in message -signature sig
На выходе:
Detached Signature was verified OK
Вопрос — в чем может быть проблема? Куда копать?
UPD: Есть сервис, который умеет подписывать этим же сертификатом, написан на Java и с его подписью ЕСИА авторизует. Сравнив нашу ссылку и ссылку сервиса — нашли отличия только в строке client_secret, то есть в подписи.
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
ЕСИА версия 2.90, код авторизации
|
foke |
|
|
Статус: Новичок Группы: Участники
|
Здравствуйте. Изменилось описание формирования параметра client_secret. До версии 2.90: Цитата: <client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF- Версия 2.90: Цитата: <client_secret> — подпись значений пяти параметров в кодировке UTF-8: В версии <2.90 с «подпись запроса в формате PKCS#7 detached signature» разобрались, работает. В версии 2.90 неясно, что такое «подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP»? Использование прежнего java-кода формирования подписи параметра client_secret (с учётом прочих обновлений параметров, описанных в инструкции) приводит к ошибке «ESIA-007005: The client is not authorized to request an access token using this method.», что по моему опыту соответствует некорректно сформированному client_secret. На данный момент сгенерированный url получения кода авторизации выглядит следующим образом: Цитата: https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac Отредактировано пользователем 31 мая 2022 г. 22:15:29(UTC) |
![]() |
|
|
saaremaa |
|
|
Статус: Новичок Группы: Участники
|
У вас получилось что-нибудь с получением кода авторизации? Тоже зависли на этом моменте и не знаем куда двигаться. Поддержка Минцифры только пересылает отрывки из методички. Дополнение от 07.07.2022: Цитата: К Вашему запросу SCR#2946679 добавлен комментарий: Добрый день! По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования: Кто добавил: СКУФ Служебный/ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО «РОСТЕЛЕКОМ» после формирования подписи с помощью GOST3411_2012_256withGOST3410_2012_256 получили корректный client_secret Библиотеки на языке Golang: https://github.com/Theo730/gogost Отредактировано пользователем 7 июля 2022 г. 13:01:22(UTC) |
![]() |
|
|
two_oceans |
|
|
Статус: Эксперт Группы: Участники Сказал(а) «Спасибо»: 110 раз |
Автор: saaremaa По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования: Добрый день. Сначала конечно замечание, что не шифрования, а подписания, так как в сообщениях выше процитированы места, где ясно говорится «подпись», «подписать». Что же до указанной ссылки на библиотеку Го, похоже на несертифицированное решение с самостоятельной реализацией криптографических примитивов. Для тестов с тестовыми ключами конечно никто Вам ничего особо не скажет. Используя же несертифицированное решение с гитхаба в продакшене с «боевыми» ключами, Вы принимаете на себя риски возможных штрафов за неправильное обращение со СКЗИ и ключевой информацией. Будьте бдительны, не все работающие решения можно использовать по закону. |
![]() |
|
|
forumname |
|
|
Статус: Новичок Группы: Участники
|
Автор: foke подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP Я правильно понимаю, что сначала вычисляем hash с помощью алгоритма GOST3411_2012_256, а потом подписываем вычисленное значение алгоритмом GOST3410_2012_256? Или нужно как-то иначе использовать механизмы КриптоПро CSP? |
![]() |
|
|
navrocky |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle: Код:
Отредактировано пользователем 19 октября 2022 г. 13:53:54(UTC) |
![]() |
|
|
|
JsutUser
оставлено 11.11.2022(UTC) |
|
EugeneNSK |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Автор: navrocky Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle: Код:
Тоже столкнулся с проблемой формирования client_secret при получении кода доступа (через v2/ac). Для JCP/JCSP использую: Код:
|
![]() |
|
|
dzibzeev |
|
|
Статус: Новичок Группы: Участники
|
Коллеги! А у кого-нибудь получилось с использованием cryptcp -signf подписать секрет клиента для второй версии API(v2/ac) ЕСИА? Вот так мы сейчас создаем подпись для ЕСИА(код на go): command := exec.Command(s.cmd, «-signf», С первой версией все прекрасно работает, с v2 не хочет работать. ЕСИА возвращает ошибку ESIA-007053: OAuthErrorEnum.clientSecretWrong |
![]() |
|
|
MESHOK |
|
|
Статус: Новичок Группы: Участники
|
Находите имя своего ключа: csptest -keys -enum_cont -verifycontext -fqcn |
![]() |
|
| Пользователи, просматривающие эту тему |
|
Guest |
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
ЕСИА версия 2.90, код авторизации
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.






1 пользователь поблагодарил navrocky за этот пост.