User-info

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

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

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

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

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

Схема

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

Параметр Тип Описание
Authorization Header Обязательный параметр. В параметре передаётся тип (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-code error error_description Описание причины
406 SSOREQUESTED_FORMAT_NOT_ACCEPTABLE_EXCEPTION В соответствии с текущими настройками сервиса с clientId={0} необходимо запрашивать ответ в формате JSON Для Приложения Партнера установлен запрет на прием запросов с http-заголовком Accept со значением application/jose
406 SSOREQUESTED_FORMAT_NOT_ACCEPTABLE_EXCEPTION В соответствии с текущими настройками сервиса с clientId={0} необходимо запрашивать ответ в формате JWE Compact Serialization Для Приложения Партнера установлен запрет на прием запросов с http-заголовком Accept со значением application/json
400 invalid_request Missing authorization header Отсутствует обязательный параметр заголовка Authorization
400 invalid_request Incorrect authorization method В параметре заголовка Authorization указан некорректный тип (должен быть Bearer)
401 invalid_token Access Token '<значение полученного токена>' not found Переданный токен не найден. Например, потому что истек срок его действия или пользователь отозвал согласие на передачу данных

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

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

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

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

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

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

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

Для получения значений в зашифрованном виде, необходимо согласовать настройки со своим менеджером. Выпустить сертификаты и зарегистрировать на токене (Рутокен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 или более вызовов) и получить в ответ расшифрованные данные.
Запросы необходимо отправлять на http://localhost:28016/vpnkeylocal/<SID2>/, где SID2 - идентификатор сессии, получаемый после перехода в бизнес-систему.

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

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

Параметры Ограничение Описание
id INIT_DECIPHER_ID Тип = ID_FORMAT
Соответствует id функции
head Для прошивок 399+: 2048 URL-encoded байтов base64;
Для прошивок 500+: 2048 байт бинарных данных (размер base64, требуемый для их кодировки, не регламентирован)
Тип = BASE64
Данные начала CMS в base64
obj_id 8 байт Тип = HANDLE
Id сертификата для расшифрования
*с версии 500 игнорируется
mode 1,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

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

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

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

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

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

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

Параметры Ограничение Описание
id DECIPHER_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_handle 8 байт Тип = 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

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

Параметры Ограничение Описание
retcode 2 байт Тип = 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"
}

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

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