ym88659208ym87991671
User-info | Документация SmartMarket
Skip to main content

User-info

Ресурс /oauth/user-info

Ресурс /oauth/user-info предназначен для получения детальной информации о Клиенте.

Информация передаваемая в составе user-info согласуется с менеджером при регистрации Приложения Партнера.

Перечень параметров, которые могут быть включены в состав user-info, см. в разделе Область сведений и атрибуты.

Направления взаимодействия, описанные в разделе, выделены на схеме красным.

Параметры запроса

ПараметрТипОписание
AuthorizationHeaderОбязательный параметр. В параметре передаётся тип (token_type) и значение (access_token) полученные в ответ на запрос ресурса /oauth/token

Пример запроса

GET/ic/sso/api/v2/oauth/user-info 
Host: https://edupirfintech.sberbank.ru:9443
Authorization: Bearer CD6A56FD-A9C7-4152-AA1D-FA57E550F6AC-1

Параметры ответа

В ответ на запрос будет сформирован JWT токен.

В соответствии со спецификации JSON Web Token (JWT) JWT токен представлен структурой вида:

  • Алгоритм подписи и тип токена (Header);

  • Полезная нагрузка (Payload);

  • Электронная подпись (Signature).

Каждая часть ответа, разделенная точкой должна декодироваться отдельно. Для декодирования User-info следует воспользоваться алгоритмом Base64URL Encoding. Для проверки подписи в поле User-info на стороне клиента, необходимо вычислить подпись публичным ключом Банка, декодировав блок Header и Payload по Base64URL (содержимое между двумя точками). Далее необходимо сравнить полученное значение c блоком Электронная подпись (содержимое после второй точки), декодированным по Base64URL.

Пример ID Token

id_tokenОписание

eyJ0eXAiOiJKV1QiLCJhbGciOiJnb3N0MzQuMT AtMjAxMiJ9.eyJzdWIiOiI1OGMzMzE2ZTBmMDg yYzk1ZjZlZDE1ZGZlNzdmNzZkOTljNjI2ZGVhM mQ4ZTJmZWYyNDcyMzM5Y2QyNzMzNWQzIiwiaXN Db3JwQ2FyZEhvbGRlciI6ZmFsc2UsIm9yZ0twc CI6IjU3NzE0NTg4NCIsImlzcyI6Imh0dHA6Ly9 zYnQtb2Fmcy02Mzg6OTA4MC9pY2RrIiwiT3JnT mFtZSI6ItCe0JDQniBcItCi0LXRgdGCINCh0LH QtdGA0JHQuNC30L3QtdGBIElEXCIiLCJidXlPb kNyZWRpdE1tYiI6ZmFsc2UsImJyYW5jaCI6eyJ uYW1lIjoi0J_Rg9Cx0LvQuNGH0L3QvtC1INCw0 LrRhtC40L7QvdC10YDQvdC-0LUg0L7QsdGJ0LX RgdGC0LLQviBcItCh0LHQtdGA0LHQsNC90Log0 KDQvtGB0YHQuNC4XCIiLCJhZGRyZXNzIjpudWx sLCJjb2RlIjpudWxsfSwib3JnSWQiOjI0NTM0M DMsImluZGl2aWR1YWxFeGVjdXRpdmVBZ2VuY3k iOjEsInVzZXJTaWduYXR1cmVUeXBlIjoi0JXQt NC40L3RgdGC0LLQtdC90L3QsNGPINC_0L7QtNC _0LjRgdGMIiwic3VtbU9mZmVyU21hcnRDcmVka XQiOjAsIm9yZ0xhd0Zvcm1TaG9ydCI6ItCe0JD QniIsIm9yZ0FjdHVhbEFkZHJlc3MiOiIxNDEwM DIsIFJVU1NJQU4gRkVERVJBVElPTiwg0JzQvtG B0LrQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0 YwsINCc0YvRgtC40YnQuNC90YHQutC40LksINC zLtCU0L7Qu9Cz0L7Qv9GA0YPQtNC90YvQuSwg0 YPQuy7QnNC40YDQsCwg0LQuMSwg0LrQsi4zMjU iLCJIYXNoT3JnSWQiOiIzNzgyNTA4ODQ3NDFkM DkyYjE1YmU2YWM4NDM3MmI4YTUxZTk2OTQ3ZGQ 1YTcwMDU1MzRjZmU2M2Q0OTFlNjU4IiwiaXNJZ GVudGlmaWVkIjp0cnVlLCJub25DbGllbnQiOmZ hbHNlLCJkYm9Db250cmFjdHMiOlt7Im51bWJlc iI6IjQwNmMxNThhLTFmOWQtNDBhNC05ZGYxLTJ kY2M5YTQ0MDc5MiIsImRhdGUiOiIyMDIxLTA5L TEwIiwiZmluYW5jZUJsb2NrIjpmYWxzZX1dLCJ oYXNBY3RpdmVDcmVkaXRMaW5lIjpmYWxzZSwiZ W1haWwiOiJhdmFuZ2FyZEBzYmJpZC5ydSIsInJ lc2lkZW50Ijp0cnVlLCJvZmZlckV4cGlyYXRpb 25EYXRlIjoiMjAyMi0wMy0wOVQwOToyNTo1MSs wMzAwIiwib3JnR3VpZCI6ImRjNWM5YTc0LTRjO DctNGY3YS05N2JmLTQ0OGJmN2MwZWEzZiIsIml ubiI6IjAxMDI1NzM4NzUiLCJvcmdKdXJpZGljY WxBZGRyZXNzIjoiMTQxMDAyLCBSVVNTSUFOIEZ FREVSQVRJT04sINCc0L7RgdC60L7QstGB0LrQs NGPINC-0LHQu9Cw0YHRgtGMLCDQnNGL0YLQuNG J0LjQvdGB0LrQuNC5LCDQsy7QlNC-0LvQs9C-0 L_RgNGD0LTQvdGL0LksINGD0Lsu0JzQuNGA0LA sINC0LjEsINC60LIuMzI1IiwiYWN0aXZlIjoxL CJvcmdGdWxsTmFtZSI6ItCe0YLQutGA0YvRgtC -0LUg0LDQutGG0LjQvtC90LXRgNC90L7QtSDQv tCx0YnQtdGB0YLQstC-IFwi0KLQtdGB0YLQvtC y0LDRjyDQvtGA0LPQsNC90LjQt9Cw0YbQuNGPI NCh0LHQtdGA0JHQuNC30L3QtdGBIElEXCIiLCJ 1c2VyR3VpZCI6Ijg3NDJkNWMyLWUwOGMtNGQ1M i04MGIyLWRmMmM1YWY2OTgzMiIsInVzZXJJZCI 6MTY5OTYyOSwib3JnVW5jb25maXJtZWQiOmZhb HNlLCJhdWQiOiI2MzIyOTQiLCJ1c2VyUm9sZXM iOlsiYmFua0NsaWVudCIsInNwZWNpYWxpc3RTd HJ1Y3R1cmFsRGVwb3NpdCJdLCJ1c2VyQ3J5cHR vVHlwZSI6IlNNUyIsInVzZXJHcm91cHMiOiLQo NGD0LrQvtCy0L7QtNC40YLQtdC70YwiLCJzYmJ vbDMiOnRydWUsIm9yZ09ncm4iOiI1MTg2MDY5O DU0MTE5Iiwib2ZmZXJTbWFydENyZWRpdCI6ZmF sc2UsIm5hbWUiOiLQntC90LjQutGB0L7QstGL0 Lkg0JDQstCw0L3Qs9Cw0YDQtCDQkdC-0LTRgNC 40LnRj9GA0L7QstC40YciLCJpbnF1aXJ5T3JkZ XIiOnRydWUsInBob25lX251bWJlciI6Ijc1NTU 1NTU1NTU1Iiwib3JnTGF3Rm9ybSI6ItCe0YLQu tGA0YvRgtC-0LUg0LDQutGG0LjQvtC90LXRgNC 90L7QtSDQvtCx0YnQtdGB0YLQstC-IiwiYWNjb 3VudHMiOlt7ImNvcnJBY2NvdW50TnVtYmVyIjo iMzAxMDE4MTA0MDAwMDAwMDAyMjUiLCJhY2Nvd W50TnVtYmVyIjoiMjY4MTI4MTAzMjUyMTAwMDA xNTYiLCJiaWMiOiIwNDQ1MjUyMjUifSx7ImNvc nJBY2NvdW50TnVtYmVyIjoiMzAxMDE4MTA0MDA wMDAwMDAyMjUiLCJhY2NvdW50TnVtYmVyIjoiO DYxMTI4MTA2MjMwMDA1NDY2NDQiLCJiaWMiOiI wNDQ1MjUyMjUifV19.DPbjqNKZRbu6wdniUQ83 mY8i2Z9Ou3EWyR1VjNqVn5F3Eh_haFP7hOyy-G XJBrKDnnpIJSXw_DH4u1Z3TRFgrA

Заголовок. Алгоритм и тип токена

{ "typ": "JWT", "alg": "gost34.10-2012" }]

Полезная нагрузка

{ "sub": "58c3316e0f082c95f6ed15dfe77f76d99c626dea2d8e2fef2472339cd27335d3", "isCorpCardHolder": false, "orgKpp": "577145884", "iss": "http://sbt-oafs-638:9080/icdk", "OrgName": "ОАО \"Тест СберБизнес ID\"", "buyOnCreditMmb": false, "branch": { "name": "Публичное акционерное общество \"Сбербанк России\"", "address": null, "code": null }, "orgId": 2453403, "individualExecutiveAgency": 1, "userSignatureType": "Единственная подпись", "summOfferSmartCredit": 0, "orgLawFormShort": "ОАО", "orgActualAddress": "141002, RUSSIAN FEDERATION, Московская область, Мытищинский, г.Долгопрудный, ул.Мира, д.1, кв.325", "HashOrgId": "378250884741d092b15be6ac84372b8a51e96947dd5a7005534cfe63d491e658", "isIdentified": true, "nonClient": false, "dboContracts": [ { "number": "406c158a-1f9d-40a4-9df1-2dcc9a440792", "date": "2021-09-10", "financeBlock": false } ], "hasActiveCreditLine": false, "email": "avangard@sbbid.ru", "resident": true, "offerExpirationDate": "2022-03-09T09:25:51+0300", "orgGuid": "dc5c9a74-4c87-4f7a-97bf-448bf7c0ea3f", "inn": "0102573875", "orgJuridicalAddress": "141002, RUSSIAN FEDERATION, Московская область, Мытищинский, г.Долгопрудный, ул.Мира, д.1, кв.325", "active": 1, "orgFullName": "Открытое акционерное общество \"Тестовая организация СберБизнес ID\"", "userGuid": "8742d5c2-e08c-4d52-80b2-df2c5af69832", "userId": 1699629, "orgUnconfirmed": false, "aud": "632294", "userRoles": [ "bankClient", "specialistStructuralDeposit" ], "userCryptoType": "SMS", "userGroups": "Руководитель", "sbbol3": true, "orgOgrn": "5186069854119", "offerSmartCredit": false, "name": "Ониксовый Авангард Бодрийярович", "inquiryOrder": true, "phone_number": "75555555555", "orgLawForm": "Открытое акционерное общество", "accounts": [ { "corrAccountNumber": "30101810400000000225", "accountNumber": "26812810325210000156", "bic": "044525225" }, { "corrAccountNumber": "30101810400000000225", "accountNumber": "86112810623000546644", "bic": "044525225" } ] }

Электронная подпись

<Массив байт электронной подписи>

В user-info включаются обязательные системные и дополнительные атрибуты пользователя для Приложения Партнера.

Обязательные системные атрибуты: sub, iss, aud. Если банку не удается предоставить какие-то данные, то такой атрибут отсутствует в ответе. Проверка электронной подписи (3-я часть ответа) является опциональной и может выполняться Партнером при необходимости проверки неизменности данных user-info.

Коды возврата

В случае возникновения ошибок при вызове ресурса /v2/oauth/token в ответ будут возвращены следующие параметры:

ПараметрОписание
errorКод возникшей ошибки
error_descriptionОписание возникшей ошибки

Перечень исключений:

http-codeerrorerror_descriptionОписание причины
406SSOREQUESTED_FORMAT_NOT_ACCEPTABLE_EXCEPTIONВ соответствии с текущими настройками сервиса с clientId={0} необходимо запрашивать ответ в формате JSONДля Приложения Партнера установлен запрет на прием запросов с http-заголовком Accept со значением application/jose
406SSOREQUESTED_FORMAT_NOT_ACCEPTABLE_EXCEPTIONВ соответствии с текущими настройками сервиса с clientId={0} необходимо запрашивать ответ в формате JWE Compact SerializationДля Приложения Партнера установлен запрет на прием запросов с http-заголовком Accept со значением application/json
400invalid_requestMissing authorization headerОтсутствует обязательный параметр заголовка Authorization
400invalid_requestIncorrect authorization methodВ параметре заголовка Authorization указан некорректный тип (должен быть Bearer)
401invalid_tokenAccess Token '<значение полученного токена>' not foundПереданный токен не найден. Например, потому что истек срок его действия или пользователь отозвал согласие на передачу данных

Также могут быть получены следующие параметры в ответе при обращении к серверу:

ПараметрОписание
errorCodeКод возникшей ошибки
errorMsgОписание возникшей ошибки

Данный тип параметров возвращается, если на сервере возникли следующие исключения:

http-codeerrorCode/errorMsgОписание причины
403requestForbidden

The server configuration prohibits executing a request to the endpoint {0}
На данном сервере запрещен вызов указанного ресурса. Например, вызов ресурса /v2/oauth/token осуществляется на домен https://sbi.sberbank.ru:9443, а должен осуществляться на домен https://fintech.sberbank.ru:9443
403certificateNotFound

The certificate was not whitelisted for client_id={0}
Не пройдена проверка сертификата по белому списку

Получение User Info в зашифрованном виде

danger

Для получения значений в зашифрованном виде, необходимо согласовать настройки со своим менеджером. Выпустить сертификаты и зарегистрировать на токене (РутокенTLS и VPNKeyTLS). Предоставить в Банк следующую информацию: Алиас криптопрофиля и Серийный номер TLS-сертификата, который будет использоваться при шифровании.

При запросе информации о клиенте получаем сформированный не ошибочный ответ (код ответа 200) будет представлен в JOSE в представлении JWE Compact Serialization. При этом в ответе также будет содержаться http-заголовок Content-Type со значением application/jwt.

JWE Compact Serialization состоит из 5 частей, разделитель между частями - символ '.'

В нашем случае структура JWE Compact Serialization будет иметь следующий вид:

BASE64URL(UTF8(JWE Protected Header)) || '.' '.' '.' || BASE64URL(JWE Ciphertext) || '.'

Защищенный заголовок (Protected Header) будет иметь следующий вид:

{
"typ": "JWT",
"cty": "JWT",
"enc": "gost28147-89",
"kid": "UUID TLS-сертификата, который был использован при шифровании"
}

Параметр enc содержит алгоритм, по которому был зашифрован ответ, в нашем случае gost28147-89. Параметр cty содержит тип содержимого, в нашем случае JWT.

Пример зашифрованного User Info и расшифроки его заголовка

Пример JWE Compact Serialization

eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJlbmMiOiJnb3N0MjgxNDctODkiLCJraWQiOiI3Nzg2QTRCQkI1ODhCNkFBNDgxMSJ9...MIIHkAYJKoZIhvcNAQcDoIIHgTCCB30CAQCgggSfoIIEmzCCBJcwggRGoAMCAQICCneGpLu1iLaqSBEwCAYGKoUDAgIDMIIBEzELMAkGA1UEBhMCUlUxLzAtBgNVBAoMJtCe0JDQniAi0KHQsdC10YDQsdCw0L3QuiDQoNC-0YHRgdC40LgiMU0wSwYDVQQLDETQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAg0KHQkSDQoNCkICjQotC10YHRgtC-0LLRi9C5KTE-MDwGA1UEAww10JvQsNCy0YDQuNC90KHQki3QotC10YHRgtC-0LLQsNGPINC_0LXRh9Cw0YLRjC3Qo9CmLTkxITAfBgNVBCEMGNCi0LXRgdGC0LjRgNGD0Y7RidC40LkgUTEhMB8GCSqGSIb3DQEJARYSY2FzYnJmQHNiZXJiYW5rLnJ1MB4XDTE5MDkxMzA5MTAwMFoXDTIyMDkxMzA5MTE0NlowggE0MS8wLQYDVQQDDCbQn9C10YLRgCDQn9C10YLRgNC-INCf0LXRgtGA0L7QstC40YfQqjERMA8GA1UEBAwI0J_QtdGC0YAxJjAkBgNVBCoMHdCf0LXRgtGA0L4g0J_QtdGC0YDQvtCy0LjRh9CqMQswCQYDVQQGEwJSVTFzMHEGA1UECgxq0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC-0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC-0YHRgtGM0Y4gItCc0LDRiNCwINC4INCc0LXQtNCy0LXQtNGMIjEOMAwGA1UECwwFcWV3cWUxEjAQBgNVBCEMCUJvb3Nzc3NzczEgMB4GCSqGSIb3DQEJARYRcXdlcXdlcUBtYXJycnIucnIwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAgYHKoUDAgIeAQNDAARArVLHRJLdJl0SnsxGemCQ86Q8_9ZVBpV3KWRHLCLBXSWGGuqF5JoSBtWtNhbuA26bBRg2V7pPhQ0Rdc7oIPa4DaOCAVMwggFPMGAGBSqFA2RvBFcMVdCh0YDQtdC00YHRgtCy0L4g0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C-0LTQv9C40YHQuCAi0KDRg9GC0L7QutC10L0g0K3QptCfIDIuMCDQoCIwEwYDVR0gBAwwCjAIBgYqhQNkcQEwJgYHKoUDA3sDAQQbDBlBMDAyQVIyMHTQn9C10YLRgCDQny4g0J8uMBQGByqFAwN7AwQECQYHKoUDA3sFBDAOBgNVHQ8BAf8EBAMCBPAwFAYJYIZIAYb4QgEBAQH_BAQDAgeAMBYGA1UdJQEB_wQMMAoGCCsGAQUFBwMCMBoGByqFAwN7AwUEDwwNVExTMDk4MjYwNzQzMDAdBgNVHQ4EFgQU5rnb2j7CXqcq3qijl32MWcYW_4owHwYDVR0jBBgwFoAUm1I0EBH4CDR3jgrM1iYY3L4YOZwwCAYGKoUDAgIDA0EAT_HWRP_z_gCdULkErGU064jF5vLjJNfJMXlRnczgxVV6upiaymDBhzLReusDu_GWhHN60R5nXFm198nL2FeJzTGB5DCB4QIBAoAU5rnb2j7CXqcq3qijl32MWcYW_4owHAYGKoUDAgITMBIGByqFAwICIwIGByqFAwICHgEEgacwgaQwKAQgCWiPsNUPtqNkZexMTh6vT9ZSGU7SvYpK3_NfssGYmx0EBJT5Hy6geAYHKoUDAgIfAaBjMBwGBiqFAwICEzASBgcqhQMCAiMCBgcqhQMCAh4BA0MABEAhPN-tmOaBsODWae-4VafeIxU0DbMh2Wq8GUly7IyyMyPZWBJF1qiAPmLAy1KW8rnud8LhGk5uSK_sFN5XKl8UBAgRpMHXsWF1DzCCAewGCSqGSIb3DQEHATAdBgYqhQMCAhUwEwQIrpJ7hnKfDJ8GByqFAwICHwGAggG-T5WjPgiN6zfNjsRa823bljaSl93B4qmOD06RKtGwSsnpunrV0yF_6sWs7_SoSFCb3urrjy3JPNSmL_7TueqEWquIGkOdg73uALFUCH5dq7ZiBzJ_FeuJBBAIOeNyNxSeu1S7gLxiGYn3rYNp13yCaumOEuo23fYBWC_9KSmB3ZQM-JEYkUoJJJQ2fCsV3EXXLlkENCDcbNKSKe2Mv6ZJT02wea0X0PjaG7DlbK5TMFoE69Exs6oEdjAet5o3sWumGzb_pOEQwIg5mS4rBqUc3WLtpPlaozpOwtEAfJyu9mP0hBGh4z1uWAHlXkV5b5L1aZyBOXvLAwTtgdbQ7kwYa0ffN00Dr4uHDqojq8THM9NMKyU6yK_nxE61XznGOj3aC-vF5RRrUNr50Xbl-mddwzDUJyQJoOIAzYUoA5kSb8sIyOH62HgqauuQhbdTd4sITjOZDeAPQXsRWOiiV__vjGlREoiei3M5XxSufFdPAylFP0A9u9rghTi2bowsLzM88DcCjWlP6hKQqJZw42jqbywwHCX5Bm1hJ5mHrBqCcf57mbVtbm8neYAaxfU-8eeYgdOjpUK0ykk_XecG2lo.

Пример декодированного (из BASE64URL) Protected Header

{
"typ": "JWT",
"cty": "JWT",
"enc": "gost28147-89",
"kid": "7786A4BBB588B6AA4811"
}

Описание алгоритма расшифрования

Для того, чтобы расшифровать JWE Ciphertext необходимо выполнить следующие действия на VPNKeyTLS:

  • Проинициализировать устройство (INIT_DECIPHER_ID) путем передачи части с заголовком.

  • Внести данные для расшифрования (DECIPHER_ID – 1 или более вызовов) и получить в ответ расшифрованные данные.

danger

Запросы необходимо отправлять на http://localhost:28016/vpnkeylocal/<SID2>/, где SID2 - идентификатор сессии, получаемый после перехода в бизнес-систему.

Инициализация расшифрования

Параметры запроса

ПараметрыОграничениеОписание
idINIT_DECIPHER_IDТип = ID_FORMAT
Соответствует id функции
headДля прошивок 399+: 2048 URL-encoded байтов base64;
Для прошивок 500+: 2048 байт бинарных данных (размер base64, требуемый для их кодировки, не регламентирован)
Тип = BASE64
Данные начала CMS в base64
obj_id8 байтТип = HANDLE
Id сертификата для расшифрования
*с версии 500 игнорируется
mode1,2Тип = ENUM
Стандарт крипто операции: КС1 - токен только генерирует ключевую пару, данные шифруются «стартом.ехе» / КС2 - токен генерирует ключевую пару и шифрует данные.
*Только нечетные версии 500+; Опционально; по умолчанию: 2.

Пример запроса

POST http://localhost:28016/vpnkeylocal/iJbnPrTXFHOd85ZxdKQyrqGV9cOe11WmCY/
POST data:
id=INIT_DECIPHER_ID&head=MIIHkAYJKoZIhvcNAQcDoIIHgTCCB30CAQCgggSfoIIEmzCCBJcwggRGoAMCAQICCneGpLu1iLaqSBEwCAYGKoUDAgIDMIIBEzELMAkGA1UEBhMCUlUxLzAtBgNVBAoMJtCe0JDQniAi0KHQsdC10YDQsdCw0L3QuiDQoNC%2B0YHRgdC40LgiMU0wSwYDVQQLDETQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAg0KHQkSDQoNCkICjQotC10YHRgtC%2B0LLRi9C5KTE%2BMDwGA1UEAww10JvQsNCy0YDQuNC90KHQki3QotC10YHRgtC%2B0LLQsNGPINC%2F0LXRh9Cw0YLRjC3Qo9CmLTkxITAfBgNVBCEMGNCi0LXRgdGC0LjRgNGD0Y7RidC40LkgUTEhMB8GCSqGSIb3DQEJARYSY2FzYnJmQHNiZXJiYW5rLnJ1MB4XDTE5MDkxMzA5MTAwMFoXDTIyMDkxMzA5MTE0NlowggE0MS8wLQYDVQQDDCbQn9C10YLRgCDQn9C10YLRgNC%2BINCf0LXRgtGA0L7QstC40YfQqjERMA8GA1UEBAwI0J%2FQtdGC0YAxJjAkBgNVBCoMHdCf0LXRgtGA0L4g0J%2FQtdGC0YDQvtCy0LjRh9CqMQswCQYDVQQGEwJSVTFzMHEGA1UECgxq0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC%2B0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC%2B0YHRgtGM0Y4gItCc0LDRiNCwINC4INCc0LXQtNCy0LXQtNGMIjEOMAwGA1UECwwFcWV3cWUxEjAQBgNVBCEMCUJvb3Nzc3NzczEgMB4GCSqGSIb3DQEJARYRcXdlcXdlcUBtYXJycnIucnIwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAgYHKoUDAgIeAQNDAARArVLHRJLdJl0SnsxGemCQ86Q8%2F9ZVBpV3KWRHLCLBXSWGGuqF5JoSBtWtNhbuA26bBRg2V7pPhQ0Rdc7oIPa4DaOCAVMwggFPMGAGBSqFA2RvBFcMVdCh0YDQtdC00YHRgtCy0L4g0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C%2B0LTQv9C40YHQuCAi0KDRg9GC0L7QutC10L0g0K3QptCfIDIuMCDQoCIwEwYDVR0gBAwwCjAIBgYqhQNkcQEwJgYHKoUDA3sDAQQbDBlBMDAyQVIyMHTQn9C10YLRgCDQny4g0J8uMBQGByqFAwN7AwQECQYHKoUDA3sFBDAOBgNVHQ8BAf8EBAMCBPAwFAYJYIZIAYb4QgEBAQH%2FBAQDAgeAMBYGA1UdJQEB%2FwQMMAoGCCsGAQUFBwMCMBoGByqFAwN7AwUEDwwNVExTMDk4MjYwNzQzMDAdBgNVHQ4EFgQU5rnb2j7CXqcq3qijl32MWcYW%2F4owHwYDVR0jBBgwFoAUm1I0EBH4CDR3jgrM1iYY3L4YOZwwCAYGKoUDAgIDA0EAT%2FHWRP%2Fz%2FgCdULkErGU064jF5vLjJNfJMXlRnczgxVV6upiaymDBhzLReusDu%2FGWhHN60R5nXFm198nL2FeJzTGB5DCB4QIBAoAU5rnb2j7CXqcq3qijl32MWcYW%2F4owHAYGKoUDAgITMBIGByqFAwICIwIGByqFAwICHgEEgacwgaQwKAQgCWiPsNUPtqNkZexMTh6vT9ZSGU7SvYpK3%2FNfssGYmx0EBJT5Hy6geAYHKoUDAgIfAaBjMBwGBiqFAwICEzASBgcqhQMCAiMCBgcqhQMCAh4BA0MABEAhPN%2BtmOaBsODWae%2B4VafeIxU0DbMh2Wq8GUly7IyyMyPZWBJF1qiAPmLAy1KW8rnud8LhGk5uSK%2FsFN5XKl8UBAgRpMHXsWF1DzCCAewGCSqGSIb3DQEHATAdBgYqhQMCAhUwEwQIrpJ7hnKfDJ8GByqFAwICHwGAggG%2BT5WjPgiN6zfNjsRa823bljaSl93B4qmOD06RKtGwSsnpunrV0yF%2F6sWs7%2FSoSFCb3urrjy3JPNSmL%2F7TueqEWquIGkOdg73uALFUCH5dq7ZiBzJ%2FFeuJBBAIOeNyNxSeu1S7gLxiGYn3rYNp13yCaumOEuo23fYBWC%2F9KSmB3ZQM%2BJEYkUoJJJQ2fCsV3EXXLlkENCDcbNKSKe2Mv6ZJT02wea0X0PjaG7DlbK5TMFoE69Exs6oEdjAet5o3sWumGzb%2FpOEQwIg5mS4rBqUc3WLtpPlaozpOwtEAfJyu9mP0hBGh4z1uWAHlXkV5b5L1aZyBOXvLAwTtgdbQ7kwYa0ffN00Dr4uHDqojq8THM9NMKyU6yK%2FnxE61XznGOj3aC%2BvF5RRrUNr50Xbl%2BmddwzDUJyQJoOIAzYUoA5kSb8sIyOH62HgqauuQhbdTd4sITjOZDeAPQXsRWOiiV%2F%2FvjGlREoiei3M5XxSufFdPAylFP0A9u9rghTi2bowsLzM88DcCjWlP6hKQqJZw42jqbywwHCX5Bm1hJ5mHrBqCcf57mbVtbm8neYAaxfU%2B8eeYgdOjpUK0ykk%2FXecG2lo%3D&mode=1

Параметры ответа

ПараметрыОграничениеОписание
retcode2 байтТип = ENUM
код возврата функции
ctx_handle8 байтТип = HANDLE
хендл контекста операции
body_displ2^32 - 1Тип = NUMBER
Размер (смещение) начала CMS в чистом виде (до кодирования base64)

Пример ответа

ctx_handle="Q9xLTQVn"&body_displ="0"&retcode="1"

Расшифрование данных

Параметры запроса

ПараметрыОграничениеОписание
idDECIPHER_IDТип = ID_FORMAT
id функции
dataДля прошивок 399+: 6144 URL-encoded байтов base64;
Для прошивок 500+ чётных версий и нечётных ранее 507:
для режима КС1: 15360 байтов бинарных данных;
для режима КС2: 16777216 байтов бинарных данных;
для нечётных 507 и выше: 2^64 - 1 байтов бинарных данных; (размер base64, требуемый для их кодировки, не ограничен)
Тип = BASE64
Данные для расшифрования в base64; размер декодированных данных должен быть кратным 8, начиная с размера (смещения) начала CMS в чистом виде (до кодирования base64)
ctx_handle8 байтТип = HANDLE
хендл контекста операции

Пример запроса

POST http://localhost:28016/vpnkeylocal/iJbnPrTXFHOd85ZxdKQyrqGV9cOe11WmCY/
POST data:
id=DECIPHER_ID&data=MIIHkAYJKoZIhvcNAQcDoIIHgTCCB30CAQCgggSfoIIEmzCCBJcwggRGoAMCAQICCneGpLu1iLaqSBEwCAYGKoUDAgIDMIIBEzELMAkGA1UEBhMCUlUxLzAtBgNVBAoMJtCe0JDQniAi0KHQsdC10YDQsdCw0L3QuiDQoNC%2B0YHRgdC40LgiMU0wSwYDVQQLDETQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAg0KHQkSDQoNCkICjQotC10YHRgtC%2B0LLRi9C5KTE%2BMDwGA1UEAww10JvQsNCy0YDQuNC90KHQki3QotC10YHRgtC%2B0LLQsNGPINC%2F0LXRh9Cw0YLRjC3Qo9CmLTkxITAfBgNVBCEMGNCi0LXRgdGC0LjRgNGD0Y7RidC40LkgUTEhMB8GCSqGSIb3DQEJARYSY2FzYnJmQHNiZXJiYW5rLnJ1MB4XDTE5MDkxMzA5MTAwMFoXDTIyMDkxMzA5MTE0NlowggE0MS8wLQYDVQQDDCbQn9C10YLRgCDQn9C10YLRgNC%2BINCf0LXRgtGA0L7QstC40YfQqjERMA8GA1UEBAwI0J%2FQtdGC0YAxJjAkBgNVBCoMHdCf0LXRgtGA0L4g0J%2FQtdGC0YDQvtCy0LjRh9CqMQswCQYDVQQGEwJSVTFzMHEGA1UECgxq0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC%2B0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC%2B0YHRgtGM0Y4gItCc0LDRiNCwINC4INCc0LXQtNCy0LXQtNGMIjEOMAwGA1UECwwFcWV3cWUxEjAQBgNVBCEMCUJvb3Nzc3NzczEgMB4GCSqGSIb3DQEJARYRcXdlcXdlcUBtYXJycnIucnIwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAgYHKoUDAgIeAQNDAARArVLHRJLdJl0SnsxGemCQ86Q8%2F9ZVBpV3KWRHLCLBXSWGGuqF5JoSBtWtNhbuA26bBRg2V7pPhQ0Rdc7oIPa4DaOCAVMwggFPMGAGBSqFA2RvBFcMVdCh0YDQtdC00YHRgtCy0L4g0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C%2B0LTQv9C40YHQuCAi0KDRg9GC0L7QutC10L0g0K3QptCfIDIuMCDQoCIwEwYDVR0gBAwwCjAIBgYqhQNkcQEwJgYHKoUDA3sDAQQbDBlBMDAyQVIyMHTQn9C10YLRgCDQny4g0J8uMBQGByqFAwN7AwQECQYHKoUDA3sFBDAOBgNVHQ8BAf8EBAMCBPAwFAYJYIZIAYb4QgEBAQH%2FBAQDAgeAMBYGA1UdJQEB%2FwQMMAoGCCsGAQUFBwMCMBoGByqFAwN7AwUEDwwNVExTMDk4MjYwNzQzMDAdBgNVHQ4EFgQU5rnb2j7CXqcq3qijl32MWcYW%2F4owHwYDVR0jBBgwFoAUm1I0EBH4CDR3jgrM1iYY3L4YOZwwCAYGKoUDAgIDA0EAT%2FHWRP%2Fz%2FgCdULkErGU064jF5vLjJNfJMXlRnczgxVV6upiaymDBhzLReusDu%2FGWhHN60R5nXFm198nL2FeJzTGB5DCB4QIBAoAU5rnb2j7CXqcq3qijl32MWcYW%2F4owHAYGKoUDAgITMBIGByqFAwICIwIGByqFAwICHgEEgacwgaQwKAQgCWiPsNUPtqNkZexMTh6vT9ZSGU7SvYpK3%2FNfssGYmx0EBJT5Hy6geAYHKoUDAgIfAaBjMBwGBiqFAwICEzASBgcqhQMCAiMCBgcqhQMCAh4BA0MABEAhPN%2BtmOaBsODWae%2B4VafeIxU0DbMh2Wq8GUly7IyyMyPZWBJF1qiAPmLAy1KW8rnud8LhGk5uSK%2FsFN5XKl8UBAgRpMHXsWF1DzCCAewGCSqGSIb3DQEHATAdBgYqhQMCAhUwEwQIrpJ7hnKfDJ8GByqFAwICHwGAggG%2BT5WjPgiN6zfNjsRa823bljaSl93B4qmOD06RKtGwSsnpunrV0yF%2F6sWs7%2FSoSFCb3urrjy3JPNSmL%2F7TueqEWquIGkOdg73uALFUCH5dq7ZiBzJ%2FFeuJBBAIOeNyNxSeu1S7gLxiGYn3rYNp13yCaumOEuo23fYBWC%2F9KSmB3ZQM%2BJEYkUoJJJQ2fCsV3EXXLlkENCDcbNKSKe2Mv6ZJT02wea0X0PjaG7DlbK5TMFoE69Exs6oEdjAet5o3sWumGzb%2FpOEQwIg5mS4rBqUc3WLtpPlaozpOwtEAfJyu9mP0hBGh4z1uWAHlXkV5b5L1aZyBOXvLAwTtgdbQ7kwYa0ffN00Dr4uHDqojq8THM9NMKyU6yK%2FnxE61XznGOj3aC%2BvF5RRrUNr50Xbl%2BmddwzDUJyQJoOIAzYUoA5kSb8sIyOH62HgqauuQhbdTd4sITjOZDeAPQXsRWOiiV%2F%2FvjGlREoiei3M5XxSufFdPAylFP0A9u9rghTi2bowsLzM88DcCjWlP6hKQqJZw42jqbywwHCX5Bm1hJ5mHrBqCcf57mbVtbm8neYAaxfU%2B8eeYgdOjpUK0ykk%2FXecG2lo%3D&ctx_handle=Q9xLTQVn

Параметры ответа

ПараметрыОграничениеОписание
retcode2 байтТип = ENUM
код возврата функции
deciphered_blobСоответствует размеру поданного на вход поля "data"Тип = BASE64
часть расшифрованных данных

Пример ответа

deciphered_blob="ImV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSm5iM04wTXpRdU1UQXRNakF4TWlKOS5leUp6ZFdJaU9pSTNORFl5WkRKbVpEbGpaR1V6WmpNelltRXdOR1UxTkRjMk1EZG1aR0ZsWmpCak9UTTROV1UxWWpNeE1XSmhNRGsyTVRZeU0yUXhZalpqTkRaaFl6VTNJaXdpWVhWa0lqb2lNakl6TXlJc0ltbHpjeUk2SW1oMGRIQTZMeTl6WW5RdGIyRm1jeTAyTXpnNk9UQTRNQzlwWTJScklpd2libUZ0WlNJNkl0Q2swS3pRdU5DYTBKVFFsOUN0MExVZzBMdlFsOUNiMEtnZzBZVFFtOUdKMEpyUXFOQ3MwWW5RbE5DWDBKWFF2eUlzSW1sdWJpSTZJakUwT0RJM05EWTFOekFpTENKd2FHOXVaVjl1ZFcxaVpYSWlPaUkyTVRFeE1URXhNVEV4TVNKOS5GWkJHeXY0LV9VMFd3eXBLcXRteVJTV3ZjbmEyVXRqSWpoQ1RfWFpEcGRFMHlEc2RtSDZfV3NtRnBkLWUxQVJjallMNDJFQ25TUkZ6SnVFLXY4RlE0QSI="&retcode="1"

После декодирования из BASE64URL параметра ответа deciphered_blob получаем ответ в виде JOSE в представлении JWS Compact Serialization.

JWS Compact Serialization состоит из 3 частей, разделитель между частями - символ '.'

В нашем случае структура JWS Compact Serialization будет иметь следующий вид:

BASE64URL(Header) || '.' || BASE64URL(Payload) || '.' || BASE64URL(Signature)

Пример декодированного (из BASE64URL) параметра deciphered_blob

eyJ0eXAiOiJKV1QiLCJhbGciOiJnb3N0MzQuMTAtMjAxMiJ9.eyJzdWIiOiI3NDYyZDJmZDljZGUzZjMzYmEwNGU1NDc2MDdmZGFlZjBjOTM4NWU1YjMxMWJhMDk2MTYyM2QxYjZjNDZhYzU3IiwiYXVkIjoiMjIzMyIsImlzcyI6Imh0dHA6Ly9zYnQtb2Fmcy02Mzg6OTA4MC9pY2RrIiwibmFtZSI6ItCk0KzQuNCa0JTQl9Ct0LUg0LvQl9Cb0Kgg0YTQm9GJ0JrQqNCs0YnQlNCX0JXQvyIsImlubiI6IjE0ODI3NDY1NzAiLCJwaG9uZV9udW1iZXIiOiI2MTExMTExMTExMSJ9.FZBGyv4-_U0WwypKqtmyRSWvcna2UtjIjhCT_XZDpdE0yDsdmH6_WsmFpd-e1ARcjYL42ECnSRFzJuE-v8FQ4A

Пример декодированного (из BASE64URL) Header

{
"typ": "JWT",
"alg": "gost34.10-2012"
}

Пример декодированного (из BASE64URL) Payload

{
"sub": "7462d2fd9cde3f33ba04e547607fdaef0c9385e5b311ba0961623d1b6c46ac57",
"aud": "2233",
"iss": "http://sbt-oafs-638:9080/icdk",
"name": "ФЬиКДЗЭе лЗЛШ фЛщКШЬщДЗЕп",
"inn": "1482746570",
"phone_number": "61111111111"
}
Обновлено 20 апреля 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней