Download OpenAPI specification:
| Версия | Дата | Автор | Комментарий |
|---|---|---|---|
| - | - | - | - |
Настоящий стандарт разработан Ассоциацией развития финансовых технологий (Ассоциацией ФинТех) при участии Центрального банка Российской Федерации (Банка России).
ПРИНЯТ И ВВЕДЕН в действие приказом Банка России от 19 декабря 2025 года
№ ОД-2888 «О введении в действие стандарта Банка России СТО БР «Открытые программные интерфейсы. Профили Открытых программных интерфейсов для расширенного режима безопасности. Технический стандарт».
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Банка России.
Настоящий стандарт содержит принципы и рекомендации по реализации протокола взаимодействия OpenID Connect (OIDC) при осуществлении взаимодействия через Открытые программные интерфейсы с использованием расширенного профиля безопасности API, обеспечивающего высокий уровень доверия к идентификации и аутентификации при передаче финансовой информации.
Настоящий стандарт рекомендован к использованию организациями при обмене финансовыми сообщениями в среде Открытых программных интерфейсов.
Настоящий стандарт предназначен для:
Положения настоящего стандарта носят рекомендательный характер и применяются совместно со следующими документами:
В настоящем стандарте применяются термины и определения в соответствии с ФАПИ.СЕК, БФБО 1.8, СТО БР «Открытые программные интерфейсы. Глоссарий», а также следующие термины и определения:
Для доступа к ресурсам среды Открытых программных интерфейсов вызов к каждой конечной точке API должен производиться с токеном доступа в авторотационном заголовке HTTP. Требуемая область действия токена доступа (scope) и тип предоставления доступа (grant_type) должны быть определены в каждой спецификации API (для каждого HTTP метода должна быть определена securityScheme в соответствии с OpenAPI Specification раздел Security Scheme Object).
Для реализации механизмов аутентификации протокола OpenID Connect настоящий стандарт определяет необходимость формирования и проверки JWS и HMAC. При этом необходимо использовать сертифицированные библиотеки и криптографические средства, обеспечивающие требования, определенные в главе 9 МР OIDC.
request).private_key_jwt или tls_client_auth.В среде Открытых программных интерфейсов все взаимодействия между клиентом и сервером авторизации, клиентом и сервером ресурсов, а также между сервером авторизации и сервером ресурсов должны защищаться с использованием TLS (HTTPS).
Приложения, соответствующие настоящему стандарту, должны выполнять следующие требования к использованию протокола TLS (в соответствии с разделом 10 OIDC):
Требования к кодированию:
Процесс кодирования должен выполняться следующим образом:
+ заменяется на -, а / — на _.=, если они имеются в конце строки.
Исходная байтовая строка: exampleData
Закодированная строка в формате Base64url: ZXhhbXBsZURhdGE
Согласно МР OIDC протокол OpenID Connect предоставляет три различных режима использования при генерации кода авторизации, в зависимости от уровня защиты и требований к передаче данных:
response_type = "code" и response_mode = "query" или "fragment".
JARM (JWT Secured Authorization Response Mode). Подпись ответа позволяет обеспечить дополнительную целостность и подтверждение подлинности данных, отправленных сервером авторизации.
При этом сервер авторизации должен поддерживать response_type = "code" и response_mode = "jwt".
response_type = "code id_token" и response_mode = "fragment".
Расширенный профиль безопасности API требует обязательности применения гибридного потока с кодом авторизации для протокола OpenID Connect (Режим 3).
При этом в соответствии с разделом 7.2.1 пункт 7 ФАПИ.СЕК участники могут применять Режим 2 (JARM). Сервер авторизации должен заявлять о поддерживаемых параметрах response_mode в своих метаданных.
private_key_jwtМетод аутентификации private_key_jwt используется для того, чтобы клиент OAuth 2.0 аутентифицировался перед сервером авторизации, подписывая JWT (JSON Web Token) с помощью своего приватного ключа. Сервер авторизации затем проверяет этот JWT с использованием публичного ключа клиента, который он хранит или извлекает из URL JWKS клиента. Этот метод обеспечивает высокий уровень безопасности за счет асимметричной криптографии.
private_key_jwtpayload) JWT. Клиент создает JWT с обязательными полями:
iss (Issuer): Идентификатор клиента (client_id).sub (Subject): Содержит идентификатор клиента, как и в поле iss.aud (Audience): URL сервера авторизации, к которому направлен запрос (конечная точка токена при запросе токена доступа).iat (Issued At): Время выпуска токена в формате UNIX-времени.exp (Expiration): Время истечения токена.jti (JWT ID): Уникальный идентификатор JWT (например, UUID4 или другой идентификатор с количеством символов 36-64). Используется для предотвращения повторных атак.client_id) и идентификатору ключа (kid). Цифровая подпись должна быть вычислена по алгоритму ГОСТ Р 34.10-2012 согласно раздела 9.2.2 МР OIDC, за исключением случаев, когда контекст взаимодействия требует или допускает другие алгоритмы.header) JWT. Клиент создает заголовок JWT, содержащий обязательные параметры вычисления цифровой подписи:
alg идентификатор криптографического алгоритма цифровой подписи.kid Идентификатор ключа, который используется для защиты JWS.Пример подписанного JWT:
JOSE Header:
{
"kid":"S1a01AAV",
"alg":"GOST341012"
}
JSON структура параметров JWS Payload:
{
"iss": "f917546e7a194df9bd02342632cd944f",
"sub": "f917546e7a194df9bd02342632cd944f",
"aud": "https://sb-as.openbankingrussia.ru/sandbox/as/aft/connect/token",
"exp": 1658763062,
"iat": 1658762462,
"jti": "90729a20-5eee-4035-9113-5c731e9e2c63"
}
Значение подписи JWS Signature:
"IuboWQdp6iMKaZMWYPQAhqvSY_h346YOLu7vciLPM6cBn5d0xGEZI89ptVz7wu33IHxfJs6_ya13Q19cX72mPw"
client_assertion: Подписанный JWT.client_assertion_type: Указывает тип аутентификации: urn:ietf:params:oauth:client-assertion-type:jwt-bearer.client_assertion сервером авторизации. Когда сервер авторизации получает запрос с параметром client_assertion, он должен подтвердить подлинность JWT и аутентификацию клиента с помощью следующих проверки:
client_id) и идентификатору ключа (kid), полученного из заголовка JWT.
Сервер авторизации проверяет актуальность сертификата клиента, в том числе на соответствие политикам области применения (сертификат содержит необходимые OID). Если сертификат не найден или некорректен, запрос отклоняется.
Если ключ корректный, сервер авторизации проверяет, что подпись JWT совпадает с его содержимым. Если подпись неверна, запрос отклоняется.
iss (Issuer) - подтвердить, что токен выпущен корректным клиентом.
Значение iss должно совпадать с client_id, зарегистрированным на сервере авторизации и прошедшим MTLS аутентификацию. Если идентификаторы не совпадают, или предъявленный сертификат не принадлежит данному клиенту запрос отклоняется.
sub (Subject) - подтвердить, что субъектом токена является клиент.
Поле sub должно совпадать с идентификатором клиента (client_id). Если они не совпадают, запрос отклоняется.
aud (Audience) - проверить, что токен предназначен для текущего сервера авторизации.
Значение aud должно совпадать с URL сервера авторизации (например, с конечной точкой получения токенов). Если значение некорректно, запрос отклоняется.
iat (Issued At) - проверить, что токен был выпущен недавно и не является устаревшим.
Поле iat должно содержать время выпуска токена в формате UNIX. Сервер авторизации проверяет, что текущее время не слишком далеко от времени выпуска, чтобы предотвратить атаки с повтором.
exp (Expiration) - проверить, что срок действия токена не истек.
Поле exp должно содержать время истечения токена в формате UNIX. Сервер авторизации проверяет, что текущее время меньше, чем значение exp. Если срок действия истек, запрос отклоняется.
jti (JWT ID) - предотвратить повторное использование одного и того же токена (Replay Attack).
Поле jti должно содержать уникальный идентификатор токена. Сервер авторизации проверяет, что этот идентификатор не был использован ранее для запросов от данного клиента.
invalid_request или invalid_client), указывая на конкретную проблему.
Пример ответа с ошибкой:
{
"error": "invalid_client",
"error_description": "The provided client_assertion is invalid."
}
client credentials)Тип доступа client_credentials используется для идентификации клиента в контексте, где отсутствует Пользователь и не требуется его согласие.
Данный тип доступа поддерживается при аутентификации клиента на сервере авторизации поставщика услуг с использованием механизма аутентификации private_key_jwt (в соответствии с разделом 7.3 МР OIDC).
При этом клиент, при запросе к конечной точке токена (POST /token), использует тип разрешения на доступ client_credentials в сочетании с assertions и jwt_bearer.
Запрос к конечной точке токена содержит метод POST, соответствующие заголовки и тело запроса.
| Параметр | Описание | Обязательность |
|---|---|---|
| grant_type | Тип доступа. В данном случае указывается значение client_credentials. |
Обязательный |
| scope | Область действия. Определяет права доступа, которые запрашивает клиент. | Обязательный |
| client_assertion_type | Тип утверждения клиента (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). |
Обязательный |
| client_assertion | Значение client_assertion, созданное и подписанное на предыдущем этапе. |
Обязательный |
POST /sandbox/as/aft/connect/token HTTP/1.1
Host: sb-as.openbankingrussia.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 819
---
grant_type=client_credentials
&scope=accounts
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ...
{
"access_token": "eyJhbGciOiJQUzI1NiIsImtpZCI6IjdGMzZFMDAwMUFBRTFGOE...",
"refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "accounts"
}
{
"nbf": 1660571646,
"exp": 1660575246,
"iss": "https://sb-as.openbankingrussia.ru/sandbox/as/aft",
"aud": "https://sb-as.openbankingrussia.ru/sandbox/as/aft/resources",
"client_id": "f917546e7a194df9bd02342632cd944f",
"scope": "accounts",
"jti": "4a07d081dc9b248c18f67d9acf9346bb841c1c9fb3e8faa69beb113eda6c3071",
"client_jwks_uri": "https://sb-jwks.openbankingrussia.ru/sandbox/jwks/f917546e7a194df9bd02342632cd944f",
"cnf": {
"x5t#St256": "C7qKLMKk_bJmQNCgT8MB50VV0d4HJBFgKANg25-Nj60"
}
}
refresh_token)Тип доступа refresh_token используется для получения нового токена доступа на сервере авторизации, когда текущий токен доступа становится недействительным или истекает срок его действия.
offline_access и токена доступаКогда в запросе аутентификации запрашивается scope=offline_access, сервер авторизации выдает refresh token, что обеспечивает клиенту возможность получать новые токены доступа с помощью refresh token, не требуя от Пользователя заново проходить процесс аутентификации.
offline_access не меняет сам токен доступа, но добавляет refresh token, который нужен для долгосрочного доступа к ресурсам, когда Пользователь не активен.
Без offline_access клиент получает только токен доступа, срок действия которого ограничен. По истечении срока действия токена клиент должен запрашивать новый токен доступа через новую аутентификацию Пользователя.
| Параметр | Описание | Обязательность | Пример значения |
|---|---|---|---|
grant_type |
Тип доступа. В данном случае указывается значение |
Обязательный |
|
refresh_token |
Токен обновления, полученный в потоке с кодом авторизации и с использованием области доступа |
Обязательный |
|
client_assertion_type |
Тип client_assertion, определяющий, что клиент использует JWT для аутентификации. Значение: |
Обязательный |
|
client_assertion |
JWT, используемый для аутентификации клиента на сервере авторизации. |
Обязательный |
|
POST /sandbox/as/aft/connect/token HTTP/1.1
Host: sb-as.openbankingrussia.ru
Content-Type: application/x-www-form-urlencoded
---
grant_type=refresh_token
&refresh_token=dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ...
{
"access_token": "eyJhbGciOiJQUzI1NiIsImtpZCI6IjdGMzZFMDAwMUFBRTFGOE...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "accounts offline_access"
}
{
"nbf": 1660571646,
"exp": 1660575246,
"iss": "https://sb-as.openbankingrussia.ru/sandbox/as/aft",
"aud": "https://sb-as.openbankingrussia.ru/sandbox/as/aft/resources",
"client_id": "f917546e7a194df9bd02342632cd944f",
"scope": "accounts offline_access",
"sub": "1e3a7d4a-d213-416d-b4d3-ac8000f9d1d0",
"jti": "6e8f4a47dc9b248c18f67d9acf9346bb841c1c9fb3e8faa69beb113eda6c3071",
"client_jwks_uri": "https://sb-jwks.openbankingrussia.ru/sandbox/jwks/f917546e7a194df9bd02342632cd944f",
"cnf": {
"x5t#St256": "C7qKLMKk_bJmQNCgT8MB50VV0d4HJBFgKANg25-Nj60"
}
}
refresh_token старый должен быть аннулирован.refresh_token.authorization_code)Гибридный сценарий протокола OIDC с кодом авторизации (authorization_code) используется в соответствии с разделом 5.4.3 ФАПИ.СЕК и ограничениями, определенными в Главе 7 ФАПИ.СЕК.
Запрос аутентификации должен выполняться с параметром типа запрашиваемого ответа (response_type) равного значению “code id_token” и использовать только параметры, включенные в подписанный объект запроса (параметр request).
При этом клиент при запросе к конечной точке токена (POST /token) использует тип разрешения на доступ (grant_type) authorization_code в сочетании с assertions и jwt_bearer.
| Параметр | Описание | Обязательность | Пример |
|---|---|---|---|
| scope | Область доступа. Определяет перечень свойств защищаемых данных Пользователя, к которым запрашивается доступ.
Требования к применению:
accounts).
openid, указывающее на то, что клиент запрашивает аутентификацию Пользователя с помощью OpenID Connect и должен быть возвращен ID-токен.
refresh_token должен содержать значение offline_access.
|
Обязательный | openid accounts offline_access |
| response_type | Тип ответа и сценарий протокола авторизации; в данном сценарии используется значение "code id_token". | Обязательный | code id_token |
| response_mode | Значение, которое информирует сервер авторизации об используемом механизме, который возвращает параметры конечной точки авторизации; может принимать значение fragment. |
Опциональный | fragment |
| client_id | Идентификатор клиента, полученный при регистрации на сервере авторизации. | Обязательный | 4abd59d5970247969965a4f317a8f817 |
| redirect_uri | URI переадресации, на который будет отправлен ответ. | Обязательный | https://localhost.ru/cb |
| state | Строковое значение, используемое для синхронизации состояния между запросом и обратным вызовом; используется для защиты от атак межсайтовых запросов (CSRF); генерируется как случайная строка длиной не менее 20 байт. | Обязательный | 98d6691382344e7fb03c853739d0a988 |
| nonce | Случайное строковое значение, используемое для связывания запроса аутентификации с ID токеном и для защиты от атак повторного воспроизведения; генерируется как случайная строка длиной не менее 20 байт. | Обязательный | 642c0152a40a46bbb82bfda4e0799990 |
| request | Объект запроса; позволяет передавать параметры запроса аутентификации с цифровой подписью или кодом аутентификации клиента в форме JWT; обязательный для расширенного профиля безопасности. | Обязательный | eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJyZXNwb2... |
| code_challenge | Запрос подтверждения кода по технологии PKCE |
(Режима 2) - обязательный( Режима 3) - опциональный
|
eHprXzdhQ0tDd1NBOWlVT2FSSDA2S0tyNJhfTmm65o |
| code_challenge_method | метод вычисления code_challenge на основе code_verifier (параметры PKCE определены в разделе 6.2.6 МР OIDC). |
Обязательный, если указан code_challenge
|
st256 |
| login_hint | Подсказка серверу авторизации о Пользователе для входа в систему. Например, может содержать ИНН, КПП юридического лица, от имени которого ожидается авторизация Пользователя. | Опциональный | {"taxId":"7728240000","taxType":"991230001"} |
claimsОбъект запроса (request) должен содержать параметр claims (подробнее OpenID Connect Core 1.0 раздел 5.5. Requesting Claims using the "claims" Request Parameter ), который включает следующие объектные элементы:
userinfo. Запрашивает, чтобы указанные индивидуальные утверждения (Claims) были возвращены с конечной точки UserInfo. Если userinfo присутствует, запрашиваются указанные утверждения, которые добавляются к любым утверждениям, запрашиваемым с использованием значений scope. Если параметр отсутствует, то запрашиваются только те утверждения, которые запрашиваются с использованием значений scope на UserInfo.
openbanking_intent_id - идентификатор намерения (в контексте применения к согласию пользования в качестве значения идентификатора намерения указывается идентификатор ресурса согласия consentId), в привязке к которому запрашивается авторизация (направляется текущий запрос аутентификации).
userinfo может включать другие элементы, требуемые прикладными стандартами. Это может быть отражено в спецификации сервера авторизации.
id_token. Запрашивает, чтобы указанные индивидуальные утверждения (Claims) были возвращены в ID токен. Если параметр id_token присутствует, запрашиваются указанные утверждения, которые добавляются к стандартным утверждениям ID токен. Если параметр отсутствует, запрашиваются только стандартные утверждения ID токен
openbanking_intent_id - идентификатор намерения.
acr_values (подробнее OpenID Connect Core 1.0 раздел 5.5.1.1. Requesting the "acr" Claim) - строковые значения, представляющие собой условные идентификаторы (из области имен), определяющие запрашиваемый метод аутентификации Пользователя. Порядок идентификаторов имеет значение: приоритет отдается значению, указанному первым. Значением может быть как единичный идентификатор, так и набор идентификаторов, расположенных в порядке приоритета применения контекста аутентификации. Перечень применяемых идентификаторов в рамках данной спецификации:
urn:rubanking:ca — идентификатор, определяющий контекст аутентификации, указывающий на применение аутентификации Пользователя с умеренным уровнем доверия (УДА 2);urn:rubanking:sca — идентификатор, определяющий контекст аутентификации, указывающий на применение аутентификации Пользователя с высоким уровнем доверия (УДА 3).id_token может включать другие элементы, требуемые прикладными стандартами. Это может быть отражено в спецификации сервера авторизации.
Идентификатор ресурса согласия (далее consent_id) служит уникальным идентификатором согласия Пользователя. Платформы, использующие Открытые программные интерфейсы, Поставщики услуг и Сторонние поставщики услуг могут использовать consent_id для получения и проверки статуса согласия Пользователя, гарантируя, что согласие получено и соблюдается надлежащим образом.
Стандарты Открытых программных интерфейсов подчеркивают принципы минимизации данных и безопасности, обеспечивая сбор, обработку и передачу только необходимой информации во время операций. Параметр openbanking_intent_id поддерживает эти принципы, обеспечивая механизм связи запросов на авторизацию с конкретным намерением Пользователя дать долгосрочное согласие или провести операцию, минимизируя риск несанкционированного доступа к персональным данным.
Открытые программные интерфейсы требует строгой аутентификации Пользователя для определенных действий, таких как инициирование платежей или доступ к конфиденциальным финансовым данным. Протокол OIDC позволяет включать значение consent_id в параметр объекта запроса openbanking_intent_id. Передача объекта запроса через параметр request служит средством связи процессов аутентификации и согласия. Это гарантирует синхронизацию процесса получения согласия с потоком аутентификации, обеспечивая, что конкретное согласие Пользователя (которое уже определено) будет получено в контексте безопасного сеанса аутентификации.
Эта связь помогает предотвратить несанкционированный доступ к данным Пользователя и гарантирует, что согласие будет получено контролируемым и проверяемым способом. Consent_id облегчает проверку, предоставляя точку отсчета для отслеживания истории действий и решений, связанных с согласием, что позволяет более точно и безопасно управлять процессом получения и использования согласия.
userinfo - связать информацию о Пользователе с идентификатором согласия (идентификатор согласия будет включен в ответ с конечной точки UserInfo).id_token - связать токен идентификации с идентификатором согласия (идентификатор согласия будет включен в ID токен).{
"kid":"S1a01AAV",
"alg":"GOST341012"
}
{
"response_type": "code id_token",
"state": "98d6691382344e7fb03c853739d0a988",
"scope": "openid accounts offline_access",
"nonce": "642c0152a40a46bbb82bfda4e0799990",
"exp": 1618760589,
"max_age": 86400,
"claims": {
"userinfo": {
"openbanking_intent_id": {
"value": "0c9df54a-b926-4853-acc2-e318c9bd7c33",
"essential": true
}
},
"id_token": {
"openbanking_intent_id": {
"value": "0c9df54a-b926-4853-acc2-e318c9bd7c33",
"essential": true
},
"acr": {
"values": [
"urn:rubanking:sca",
"urn:rubanking:ca"
],
"essential": true
}
},
"participant": {
"tax_id": {
"value": "6148127514"
},
"tax_type": {
"value": "583501001"
}
}
},
"aud": "https://sb-as.openbankingrussia.ru/sandbox/as/aft",
"iss": "4abd59d5970247969965a4f317a8f817",
"client_id": "4abd59d5970247969965a4f317a8f817",
"redirect_uri": "https://localhost.ru/cb"
}
login_hintlogin_hint используется для передачи серверу авторизации подсказки о том, какой Пользователь должен быть аутентифицирован. Он может содержать идентификатор Пользователя или другую информацию, которая помогает серверу авторизации определить, какого Пользователя аутентифицировать без необходимости запрашивать дополнительные данные от клиента.
Значения параметра, представленные в виде JSON-объекта, необходимо передавать как URL-кодированную строку.
Пример преобразования JSON-объекта {"taxId":"7728240000","taxType":"991230001"} в URL-кодированную строку:
%7B%22taxId%22%3A%227728240000%22%2C%22taxType%22%3A%22991230001%22%7DПри проектировании сервера авторизации необходимо учитывать, что данный параметр является подсказкой, а для целевого указания необходимо включать информацию о Пользователе в заявленные свойства объекта запроса, используя запрашиваемые
claims добавлять элемент participant)
https://sb-as.openbankingrussia.ru/sandbox/as/aft/connect/authorize?
client_id=4abd59d5970247969965a4f317a8f817
&response_type=code%20id_token
&state=98d6691382344e7fb03c853739d0a988
&redirect_uri=https://localhost.ru/cb
&nonce=642c0152a40a46bbb82bfda4e0799990
&scope=openid%20accounts%20offline_access
&request=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJyZXNwb2...
&login_hint=%7B%22taxId%22%3A%227728240000%22%2C%22taxType%22%3A%22991230001%22%7D
| Параметр | Описание | Обязательность | Пример |
|---|---|---|---|
| code | Код авторизации, полученный после успешной аутентификации. | Обязательный | 10e5ded165a96d423aaa42a678cb9c09460963245 |
| id_token | ID токен, содержащий информацию о Пользователе и времени аутентификации. | Обязательный | eyJhbGciOiJSUzI1NiIsImtpZCI6IkQwM0I4NkE4MEJBNjBCQjM0... |
| state | Состояние, переданное в запросе аутентификации, возвращается для проверки. | Обязательный | 98d6691382344e7fb03c853739d0a988 |
| session_state | Состояние сеанса на сервере авторизации. | Опциональный | G6rAVS56SipMpkdgSH-ZM3nJggTXo9MQ74sK8VE3n3o29c1bf0fa |
session_statesession_state — опциональный параметр, возвращаемый в ответе на запрос авторизации и используемый для определения состояния сеанса Пользователя между клиентом и сервером авторизации. Он позволяет клиенту отслеживать изменения состояния сеанса, включая его завершение, разрыв соединения или повторную аутентификацию.
Механизм работы:
session_state вместе с кодом авторизации (`code`) на `redirect_uri` клиента.
session_state для отслеживания состояния сеанса и предотвращения проблем безопасности, таких как фиксирование сеансов.
Формат и структура
Значение session_state представляет собой зашифрованный идентификатор состояния, который обычно включает хеш от:
client_id`)
redirect_uri
https://localhost.ru/cb#code=10e5ded165a96d423aaa42a678cb9c09460963245
&id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IkQwM0I4NkE4MEJBNjBCQjM0...
&scope=openid%20accounts%20offline_access
&state=98d6691382344e7fb03c853739d0a988
&session_state=G6rAVS56SipMpkdgSH-ZM3nJggTXo9MQ74sK8VE3n3o29c1bf0fa
https://localhost.ru/cb#error=invalid_request
&error_description=Invalid+request+parameters
&state=98d6691382344e7fb03c853739d0a988
&session_state=G6rAVS56SipMpkdgSH-ZM3nJggTXo9MQ74sK8VE3n3o29c1bf0fa
| Параметр | Описание | Обязательность | Пример значения |
|---|---|---|---|
| iss | Эмитент токена. Значение URI сервера авторизации. | Обязательный | https://sb0.openbankingrussia.ru/sandbox0/as/aft |
| sub | Уникальный идентификатор субъекта, выданный сервером авторизации Пользователю; регистрозависимая строка длиной не более 255 символов ASCII. | Обязательный | 1e3a7d4a-d213-416d-b4d3-ac8000f9d1d0 |
| aud | Идентификатор субъекта, представленного сервером авторизации, для которого выдается ID токен (должно быть равно значению "client_id" клиента). | Обязательный | a8cadb2f65944ce2b3b92ba21336ad53 |
| exp | Период актуальности токена; определяется ПУ при условии, что выбранное значение не влияет на качество сервисов, предоставляемых через Открытые программные интерфейсы. | Обязательный | 1607716325 |
| iat | Метка времени выпуска токена. | Обязательный | 1607716025 |
| auth_time | Метка времени события аутентификации Пользователя; обязательный при включении параметра "max_age". | Зависит от контекста | 1607716014 |
| nonce | Случайное значение, используемое в качестве условного идентификатора сессии обмена сообщениями. | Обязательный | 642c0152a40a46bbb82bfda4e0799990 |
| acr | Идентификатор типа контекста аутентификации. | Опциональный | urn:rubanking:sca |
| s_hash | хэш-значение параметра state, полученного в составе запроса аутентификации. |
Обязательный | nVDApI-dUj2qei-oU9QeUw |
| at_hash | хэш-значение токена доступа; вычисляется сервером авторизации и проверяется клиентом как Base64url кодирование левой половины значения хэш-функции ГОСТ Р 34.11-2012 октетов ASCII представления значения access token. |
Опциональный | V1e8eU_GTK0-Z1_WF7n_JA |
| c_hash | хэш-значение кода авторизации; строковое значение, которое вычисляется сервером авторизации и проверяется клиентом как Base64url кодирование левой половины значения хэш-функции ГОСТ Р 34.11-2012 октетов ASCII представления значения параметраcode. |
Обязательный | OATPHzlrPpzO3PpMPLNknQ |
| nbf | Время, до которого ID токен не должен приниматься к обработке. | Опциональный | 1607716025 |
| openbanking_intent_id | Идентификатор ресурса, к которому запрашивается авторизация. | Опциональный | 1726c4f8-af35-41ef-bd84-569fb4647e1a |
| amr | Массив строк в формате JSON, чувствительных к регистру. | Опциональный | ["password"] |
| alg | Идентификатор криптографического алгоритма цифровой подписи. | Обязательный | GOST341012 |
{
"alg": "GOST341012",
"type": "JWT"
}
{
"nbf": 1607716025,
"exp": 1607716325,
"iss": "https://sb0.openbankingrussia.ru/sandbox0/as/aft",
"aud": "a8cadb2f65944ce2b3b92ba21336ad53",
"iat": 1607716025,
"nonce": "642c0152a40a46bbb82bfda4e0799990",
"c_hash": "OATPHzlrPpzO3PpMPLNknQ",
"s_hash": "nVDApI-dUj2qei-oU9QeUw",
"sub": "1e3a7d4a-d213-416d-b4d3-ac8000f9d1d0",
"auth_time": 1607716014,
"openbanking_intent_id": "1726c4f8-af35-41ef-bd84-569fb4647e1a",
"amr": ["password"]
}
Для обеспечения безопасности и подлинности ID токен необходимо выполнять следующие проверки в соответствии с разделом 6.7.2 МР OIDC по следующей последовательности шагов (ссылки указаны на разделы МР OIDC):
alg, и ключа, предоставленного сервером авторизации
Клиент извлекает публичный сертификат клиента из метаданных через JWKS URL сервера авторизации по идентификатору ключа (kid), полученного из заголовка JWT.
Клиент проверяет актуальность сертификата сервера авторизации, в том числе на соответствие политикам области применения (сертификат содержит необходимые OID). Если сертификат не найден или некорректен, ID токен считается не действительным.
Если сертификат корректный, клиент проверяет, что подпись ID токена совпадает с его содержимым. ID токен считается не действительным.
iss): Идентификатор эмитента (сервер авторизации), полученный клиентом от сервера авторизации (см. раздел 5.4), должен в точности совпадать со значением параметра iss в ID токене и соответствовать ранее сохраненному идентификатору сервера авторизации (см. раздел 6.2.3).
aud): Клиент должен убедиться, что значение параметра aud содержит значение client_id клиента. Если aud не содержит значение client_id, ID токен должен быть отклонен.
azp (Авторизованный получатель): Если параметр aud включает несколько значений, клиент должен проверить наличие параметра azp и убедиться, что его значение совпадает с client_id.
c_hash, s_hash, и at_hash (если они присутствуют), сравнив каждое из них с Base64url-кодированием левой половины значения хэш-функции ГОСТ октетов ASCII представления сохраненного ранее значения параметра code, state или access_token в соответствии с формулами (1), (2) или (3).
c_hash = BASE64URL(LMB16(HASH256(ASCII(code))));
s_hash = BASE64URL(LMB16(HASH256(ASCII(state))));
at_hash = BASE64URL(LMB16(HASH256(ASCII(access_token))));
alg, и ключа, предоставленного сервером авторизации.
alg должно быть одним из допустимых значений, указанных в разделе 9.1.
exp): Текущее время на момент проверки должно быть меньше времени, указанного в параметре exp, чтобы токен считался действительным.
nonce: Значение параметра nonce в структуре ID токена должно совпадать со значением параметра nonce из запроса аутентификации, отправленного клиентом на сервер авторизации (см. раздел 6.2.3).
auth_time): Если параметр auth_time был запрошен (либо явным указанием, либо через параметр max_age в запросе аутентификации), клиент должен убедиться, что значение auth_time соответствует диапазону, определенному в max_age. В случае, если с момента последней аутентификации прошло больше времени, чем допустимо, клиент должен инициировать повторную аутентификацию.
POST /token) с разрешением на доступ (grant_type) authorization_code в сочетании с assertions и jwt_bearer для получения токена доступа и ID токен в обмен на код авторизации.
Данный тип доступа поддерживается при аутентификации клиента на сервере авторизации поставщика услуг с использованием механизма аутентификации private_key_jwt (в соответствии с разделом 7.3 МР OIDC).
| Параметр | Описание | Обязательность | Пример значения |
|---|---|---|---|
grant_type |
Тип доступа. В данном случае указывается значение |
Обязательный |
|
code |
Код доступа, полученный в запросе аутентификации |
Обязательный |
|
client_assertion_type |
Тип client_assertion, определяющий, что клиент использует JWT для аутентификации. Значение: |
Обязательный |
|
client_assertion |
JWT, используемый для аутентификации клиента на сервере авторизации. |
Обязательный |
|
code_verifier |
Сохраненное при запросе аутентификации (раздел 6.2.3 ФАПИ.СЕК) подтверждение кода по технологии PKCE. |
Опциональный |
|
POST /sandbox/as/aft/connect/token HTTP/1.1
Host: sb-as.test.openbankingrussia.ru
Content-Type: application/x-www-form-urlencoded
---
grant_type=authorization_code
&code=40ac728b26bf06a078538a65c1f18f89a9e8554899cb45a2ff2c918dc7742fe7
&redirect_uri=https://localhost.ru/cb
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0YmEzYjk4YTRjNm...
{
"id_token": "eyJhbGciOiJSUzI1NiIsI...",
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjU...",
"expires_in": 3600,
"token_type": "Bearer",
"refresh_token": "13e29519e3a09bca92ca9c3f41a886ca"}
UserInfo сервера авторизации
Клиент может отправить запрос конечной точке UserInfo, используя токен доступа, полученный при аутентификации на сервере авторизации и содержащий область требуемую для данного метода область доступа (scope).
Значения параметров в ответ возвращаются в виде JSON объекта, который содержит набор пар имя и значение параметра. Набор доступных клиенту параметров информации о Пользователе определяется в спецификации сервера авторизации.
Конечная точка UserInfo и id_token оба предоставляют информацию о Пользователе, но использование UserInfo имеет ряд преимуществ:
UserInfo позволяет получать актуальную информацию о Пользователе в режиме реального времени. В отличие от id_token, который содержит статическую информацию, полученную во время аутентификации, запрос к UserInfo возвращает данные, которые могут быть более актуальными на момент запроса.id_token может стать большим, если в него включить много информации о Пользователе. Использование UserInfo позволяет минимизировать размер id_token, возвращая минимальный набор полей, необходимых для аутентификации, а дополнительную информацию можно получить через запрос к UserInfo.UserInfo осуществляется с использованием токена доступа, что позволяет гибко управлять правами доступа к данным о Пользователе. Это также обеспечивает дополнительный уровень безопасности, поскольку информация о Пользователе не передается напрямую в id_token, а запрашивается отдельно через защищенный канал.UserInfo может разгрузить сервер авторизации, так как основная информация о Пользователе передается через отдельный запрос, а не через JWT-токен в процессе авторизации. Это позволяет разделить функциональные обязанности между разными компонентами системы.Таким образом, использование конечной точки UserInfo предпочтительно в сценариях, где требуется актуальная и безопасная передача информации о Пользователе, а также при необходимости минимизировать нагрузку на сервер авторизации.
Сервер авторизации должен поддерживать использования токенов доступа, связанных с клиентским сертификатом TLS (MTLS-bound access tokens), как предусмотрено в пункте 6.3.1.2 ФАПИ.СЕК. Связывание токена доступа с MTLS сертификатом клиента осуществляется путем добавления в токен хэш-кода сертификата клиента. Этот механизм гарантирует, что только клиент, владеющий соответствующим сертификатом, может использовать токен доступа для выполнения запросов к защищенным ресурсам.
Привязка к сертификату происходит следующим образом:
cnf (confirmation) внутри токена доступа. Это поле выглядит следующим образом:
Параметр x5t#St256 представляет собой значение хэш-кода сертификата клиента, закодированное в формате Base64 URL-safe.
Для проверки токена, связанного с MTLS сертификатом, сервер ресурсов должен убедиться, что клиент, предъявляющий токен, использует тот же сертификат, который был связан с этим токеном на этапе его выдачи. Проверка включает следующие шаги:
cnf токена доступа:
HTTP 401 и возвращает сообщение об ошибке с указанием причины: invalid_token.Пример включения хэш-кода сертификата клиента в декодированный токен доступа:
{
... ,
"cnf": {
"x5t#St256": "значение хэша TLS сертификата клиента"
}
}
При получении запроса на выдачу токена доступа сервер авторизации выполняет ряд проверок, в зависимости от запрашиваемого типа доступа (значение параметра grant_type.
private_key_jwt.scope соответствует разрешенным областям для данного клиента.authorization_codeЦель: Предоставить токен на основе авторизационного кода, полученного Пользователем после успешного прохождения процесса аутентификации.
grant_type имеет значение authorization_code.code, выданного сервером авторизации ранее.code не истек и не был использован ранее (для одноразовых кодов).redirect_uri, переданный в запросе на получение токена, с тем, что использовался при получении кода.code_verifier и code_challenge (при наличии).client_credentialsЦель: Предоставить токен доступа клиенту без участия Пользователя, для доступа к защищенным ресурсам.
grant_type имеет значение client_credentials.scope, если он присутствует, и убедиться, что клиент имеет доступ к указанным областям (scopes).refresh_tokenЦель: Обновить токен доступа, используя ранее выданный refresh token.
grant_type имеет значение refresh_token.refresh_token.refresh_token действителен и не истек.refresh_token.scope, чтобы убедиться, что клиент запрашивает допустимые области (scopes).scope) в ответе на запрос токенаscope в ответе на запрос токена только если
выданный токен доступа имеет меньше прав (более узкую область доступа), чем клиент запрашивал.
Если предоставленная область доступа полностью соответствует области доступа запроса, scope может быть не возвращаться.
В случае запроса токена с типом доступа refresh_token область доступа запроса определяется как область действия токена обновления.
client_credentialsСервер авторизации возвращает токен доступа в ответ на успешную аутентификацию клиента. Проверка ответа включает:
iat и exp проверяются для подтверждения того, что токен еще действителен.refresh_tokenПри использовании refresh token для обновления токена доступа, проверка ответа включает:
iat и exp проверяются для подтверждения валидности нового токена.authorization_codeПроверка ответа токена при использовании кода авторизации, включая PKCE (Proof Key for Code Exchange), включает:
code_verifier соответствует code_challenge, переданному на этапе запроса кода авторизации.iat и exp проверяются для подтверждения действительности токена доступа.Доступ клиента к защищенному ресурсу обеспечивает сервер ресурсов. Выполняя запрос, клиент передает ему полученный от сервера авторизации токен
доступа в поле заголовка запроса Authorization с использованием схемы аутентификации Bearer.
Доступ клиента к серверу ресурсов должен осуществляться по защищенному каналу с использованием двухсторонней аутентификации по протоколу TLS
Сервер ресурсов предоставляет доступ после проверки токена доступа. Проверка может быть проведена на API шлюзе, обеспечивающем доступ к серверу ресурсов, с использованием информации, полученной от сервера авторизации.
iss), связанный с токеном доступа, должен точно совпадать с идентификатором issuer в метаданных сервера авторизации.aud) должен соответствовать адресу ресурса, обслуживаемого данным сервером ресурсов.scope).iat).exp).client_id.securityScheme, определённой в OpenAPI Specification для вызываемого метода application/json:
grant_type), связанный с токеном доступа, должен соответствовать OAuth2 потоку, указанному в параметре flows в securityScheme.
scope), связанная с токеном доступа, должена быть определена парраметре scopes в securityScheme.
Когда Пользователь отзывает своё согласие на доступ к данным, все связанные с данным согласием токены доступа (access tokens) и токены обновления (refresh tokens) должны быть немедленно отозваны на стороне Сервера Авторизации с целью
предотвращения несанкционированное использование данных.
Если необходимо принудительно аннулировать действующий токен, Cервер Авторизации может реализовать, а клиент использовать конечную точку отзыва токенов. Сервер авторизации должен заявлять о поддерживаемых методах в своих метаданных.
| Параметр | Описание | Обязательность | Пример значения |
|---|---|---|---|
token |
Токен, который необходимо отозвать. Может быть |
Обязательный |
|
token_type_hint |
Тип токена. Значения: |
Рекомендуемый |
|
client_assertion_type |
Тип client_assertion. Значение: |
Обязательный |
|
client_assertion |
JWT для аутентификации клиента. Используется для проверки подлинности отзыва запроса. |
Обязательный |
|
POST /sandbox/as/aft/connect/revocation HTTP/1.1
Host: sb-as.openbankingrussia.ru
Content-Type: application/x-www-form-urlencoded
---
token=dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...
&token_type_hint=refresh_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ...
Конечная точка, используемая клиентом для получения авторизации от владельца ресурса посредством перенаправления агента Пользователя.
| scope required | string <= 80 characters ^[\w\W]{1,80}$ Example: scope=openid accounts offline_access obruprofile Область действия; определяет свойства защищаемых данных Пользователя, к которым запрошен доступ; в случае использования протокола OpenID Connect параметр должен содержать строку “openid” |
| response_type required | string (ResponseType) <= 15 characters ^[\w\W]{1,15}$ Enum: "code id_token" "code" Тип ответа и сценарий протокола авторизации; в данном сценарии используется следующее значение: – “code id_token”: возвращает код авторизации и ID токен |
| redirect_uri required | string <uri> <= 2048 characters URI перенаправления, на который сервер авторизации отправит ответ. Должен точно совпадать с зарегистрированным URI клиента. |
| state required | string [ 27 .. 512 ] characters ^[\w\W]{27,512}$ Значение, используемое для синхронизации состояния между запросом и обратным вызовом; используется для защиты от атак межсайтовых запросов (CSRF) |
| client_id required | string Идентификатор клиента, полученный при регистрации на сервере авторизации |
| response_mode | string (ResponseMode) <= 10 characters ^[\w\W]{1,10}$ Default: "fragment" Value: "fragment" Example: response_mode=fragment Значение, которое информирует сервер авторизации об используемом механизме, который возвращает параметры конечной точки авторизации. |
| nonce required | string [ 27 .. 512 ] characters ^[\w\W]{27,512}$ Случайное строковое значение, используемое для привязки сеанса клиента к ID токену и для защиты от атак повторного воспроизведения |
required | object <JWT> (RequestParameters) [ 32 .. 8192 ] characters ^[\w\W]{32,8192}$ Объект запроса |
| login_hint | string [ 1 .. 2048 ] characters ^[\w\W]{1,2048}$ Подсказка серверу авторизации о Пользователе для входа в систему. (Например может содержать ИНН, КПП юридического лица, от имени которого ожидается авторизация пользователя). |
{- "error": "invalid_request",
- "error_description": "Bad Request"
}Получение токена доступа дает возможность получить данные конкретного Пользователя (т.е. получить доступ к защищенному ресурсу). Токены доступа являются кратковременными и по мере достижения срока жизни должны заменяться путем обмена токена обновления на новый токен доступа.
| X-Request-ID | string <uuid> Example: 97ed4827-7b6f-4491-a06f-b548d5a7512d RFC4122 UID, используемый в качестве идентификатора запроса или корреляции. В случае, если Сервер авторизации поддерживает корреляцию запросов, то он может возвращать обратно значение данного идентификатора взаголовке ответа X-Request-ID |
| grant_type required | string (GrantType) <= 20 characters ^[\w\W]{1,20}$ Enum: "authorization_code" "refresh_token" "client_credentials" Тип доступа. Сообщает конечной точке токена, что клиент использует тип предоставления кода авторизации |
| client_assertion_type required | string (ClientAssertionType) <= 56 characters ^[\w\W]{1,56}$ Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" Тип утверждения клиента. Имеет значение urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion required | string [ 32 .. 8192 ] characters ^[\w\W]{32,8192}$ Утверждение, используемое для аутентификации клиента. Используется формат JWT |
| client_id | string <= 40 characters ^[\w\W]{1,40}$ Идентификатор сервиса клиента |
| code | string [ 27 .. 512 ] characters ^[\w\W]{27,512}$ Код авторизации |
| code_verifier | string [ 32 .. 128 ] characters ^[\w\W]{32,128}$ Сохраненное при запросе аутентификации (раздел 6.2.3 ФАПИ.СЕК) подтверждение кода по технологии PKCE |
| redirect_uri | string <uri> <= 2048 characters ^[\w\W]{1,2048}$ URI переадресации, на который будет отправлен ответ; значение этого параметра должно совпадать со значением параметра "redirect_uri" запроса авторизации |
| refresh_token | string [ 32 .. 2048 ] characters ^[\w\W]{32,2048}$ Токен обновления |
| scope | string <= 40 characters ^[\w\W]{1,40}$ Область применения |
{- "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MUZDQjg0N0NERUM5QTc0RDNCQzQxQTRGNzE4QURENDFBMDZENTMiLCJ0eXAiOiJhdCtqd3QifQ.eyJuYmYiOjE2ODgwNDMzNjAsImV4cCI6MTY4ODA0Njk2MCwiaXNzIjoiaHR0cHM6Ly9zYjAub3BlbmJhbmtpbmdydXNzaWEucnUvc2FuZGJveDAvYXMvYWZ0IiwiYXVkIjoiaHR0cHM6Ly9zYjAub3BlbmJhbmtpbmdydXNzaWEucnUvc2FuZGJveDAvYXMvYWZ0L3Jlc291cmNlcyIsImNsaWVudF9pZCI6ImUzMWYwYjI2ODBhYTRjODQ4ZDJiOTViMmJlZTA1YjFjIiwic2NvcGUiOiJhY2NvdW50cyIsImp0aSI6Ijk1NzU2YWMxMGJhZjhmYzQ3MGQ3ZjRmYTM1MjZjMDZmODNlYTM4NzI5NTE2MmY0YjAxYWRmNWViYWFkOTk5ZWYifQ.PlBMu-6DbTYrMk7f0HdUiWufQVSEqPVG3rV10Yw7XqY6kO-XEFX0v5_af1atFPTw4Jm25TYH0Tc-7Ly09I_n1_Hcm2W7Ed1hhCPCdmczfs2hPIwCq6_I4LCJZYak-2e8D72KbADJ7K2cQU41NXeUzpzgoWbvh2-a2PFnk1csBqIHx4BAQggi6DKC_nSlWzPnWy2A2O_0r7dvlsSXTJHGQ_TOKyJbLCqAUvqiYJ7_t8utcjHlJNMQdrDqgktuqxLgVhvguGMqXvjXQdPehsJpQWqIRU4i826fVfaenT79Y7tVdEJXfvPsPVJRsHCyKEQtVp07daNxd5qVgglyQoR3eg",
- "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MU..",
- "token_type": "Bearer",
- "expires_in": 3600,
- "scope": "openid",
- "refresh_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MUZDQjg0N0NERUM5QTc0RDNCQzQxQTRGNzE4QURENDFBMDZENTMiLCJ0eXAiOiJhdCtqd3QifQ.eyJuYmYiOjE2ODgwNTAzNDMsImV4cCI6MTY4ODA1Mzk0MywiaXNzIjoiaHR0cHM6Ly9zYjAub3BlbmJhbmtpbmdydXNzaWEucnUvc2FuZGJveDAvYXMvYWZ0IiwiYXVkIjoiaHR0cHM6Ly9zYjAub3BlbmJhbmtpbmdydXNzaWEucnUvc2FuZGJveDAvYXMvYWZ0L3Jlc291cmNlcyIsImNsaWVudF9pZCI6ImUzMWYwYjI2ODBhYTRjODQ4ZDJiOTViMmJlZTA1YjFjIiwic2NvcGUiOlsib3BlbmlkIiwib2ZmbGluZV9hY2Nlc3MiLCJhY2NvdW50cyJdLCJzdWIiOiJkNDE4ZDhkNy1jNGZmLTQ0ODYtOTQxNC1hY2JkMDAzNDg3MzgiLCJhdXRoX3RpbWUiOjE2ODgwNDYwMDEsImlkcCI6Im9wZW5iYW5raW5ncnVzc2lhLnJ1IiwiYWNyIjoidXJuOnJ1YmFua2luZzpzY2EiLCJuYW1lIjoidGVzdCIsInJlYWxtIjoiYWZ0Iiwib3BlbmJhbmtpbmdfaW50ZW50X2lkIjoiZDY5YTRhYmEtZTk3OS00NTRhLTkxNmQtMjk2MzBmZTc3Yzc0IiwianRpIjoiNDBhNmJiNjljMWI0ZjExODc3OGI0OTk0ODAzNDVjNzJjODE5NDI5ZGU1OWYyY2JmMzBlYmI0ZDIxOGY1ZjlkZCIsImFtciI6WyJwYXNzd29yZCJdfQ.6ZvfOOgKCudY8yoCAVVMgifVUwYRtIa9vmhtEIKFcW71yntLn_rDezvKpc4nrGsYB0cGlCjOKQ9w79ptNz8RmuY8QITIk-7lrDCMLCvz0wRjj4kLuO4m4SUcmIzXrbZUUTEUIVMsJgo_QNBGA4WMBjh1epmO-GsdvoMebQeqD2SxBwZTjOJt1RAaO4YmV23PM8shw9LllU-14xhTZHeb8nU-e7twcY2mJMNE7NfSbMlfaNHKbGCBcYvyNuuNJvJ21D00HqpKJItF5mTG9_T3cgk2p_FF7g1QOABT5LFv-xYDLAfGS0676Y_vs8bfUli_hv6yPVvMo2tJae3Cso-X1A"
}Конечная точка возвращает подписанную JWS информацию о Пользователе, прошедшем аутентификацию и авторизовавшем предъявленный токен доступа.
| X-Request-ID | string <uuid> Example: 97ed4827-7b6f-4491-a06f-b548d5a7512d RFC4122 UID, используемый в качестве идентификатора запроса или корреляции. В случае, если Сервер авторизации поддерживает корреляцию запросов, то он может возвращать обратно значение данного идентификатора взаголовке ответа X-Request-ID |
{- "error": "invalid_request",
- "error_description": "Bad Request"
}