Download OpenAPI specification:
Спецификация API сервера авторизации для реализации OpenID Connect в среде Открытых API с расширенным профилем безопасности.
Конечная точка, используемая клиентом для получения авторизации от владельца ресурса посредством перенаправления агента Пользователя.
| scope required | string^[A-Za-z0-9._-]{1,64}( [A-Za-z0-9._-]{1,64}){... Example: scope=openid accounts offline_access obruprofile Область действия; определяет свойства защищаемых данных конечного Пользователя, к которым запрошен доступ; в случае использования протокола OpenID Connect параметр |
| response_type required | string (ResponseType) <= 30 characters Enum: "code id_token" "code" Тип ответа и сценарий протокола авторизации; в данном сценарии используется следующее значение: – “code id_token”: возвращает код авторизации ID токен |
| redirect_uri required | string <uri> <= 512 characters URI перенаправления, на который сервер авторизации отправит ответ. Должен точно совпадать с зарегистрированным URI клиента. Для сценариев авторизации, инициируемых мобильными приложениями, Redirect URI должен использовать схему https, быть зарегистрирован как verified/claimed HTTPS URI с подтвержденной связью приложения с доменным именем операционной системы (Universal Links, Android App Links либо эквивалентный механизм). Использование redirect URI с пользовательскими схемами URI не допускается. |
| state required | string [ 27 .. 128 ] characters ^[A-Za-z0-9_-]{27,128}$ Значение, используемое для синхронизации состояния между запросом и обратным вызовом; используется для защиты от атак межсайтовых запросов (CSRF) |
| client_id required | string [ 1 .. 128 ] characters ^[A-Za-z0-9_-]{1,128}$ Идентификатор клиента, полученный при регистрации на сервере авторизации |
| response_mode | string (ResponseMode) <= 20 characters Default: "fragment" Value: "fragment" Example: response_mode=fragment Значение, которое информирует сервер авторизации об используемом механизме, который возвращает параметры конечной точки авторизации. |
| nonce required | string [ 27 .. 8192 ] characters ^[A-Za-z0-9_-]{27,8192}$ Случайное строковое значение, используемое для привязки сеанса клиента к ID токену и для защиты от атак повторного воспроизведения |
| request required | string <JWT> ^[A-Za-z0-9_-]{1,2730}\.[A-Za-z0-9_-]{1,2730}... Объект запроса |
| login_hint | string [ 32 .. 8192 ] characters ^(%[0-9A-Fa-f]{2}|[A-Za-z0-9._~-]){32,8192}$ Подсказка серверу авторизации о конечном пользователе для входа в систему. (Например может содержать ИНН, КПП юридического лица, от имени которого ожидается авторизация пользователя). |
curl -G "https://sb0.openbankingrussia.ru/sandbox0/as/aft/connect/authorize" \ --data-urlencode "scope=openid accounts offline_access obruprofile" \ --data-urlencode "response_type=code id_token" \ --data-urlencode "client_id=<client_id>" \ --data-urlencode "redirect_uri=https://client.example.org/cb" \ --data-urlencode "state=<state>" \ --data-urlencode "nonce=<nonce>" \ --data-urlencode "request=<signed_request_jwt>"
{- "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 <= 50 characters Enum: "authorization_code" "refresh_token" "client_credentials" Тип доступа. Сообщает конечной точке токена, что приложение использует тип предоставления кода авторизации Value: "refresh_token" |
| client_assertion_type required | string (ClientAssertionType) <= 100 characters Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" Тип утверждения клиента. Имеет значение urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion required | string^[A-Za-z0-9_-]{1,2730}\.[A-Za-z0-9_-]{1,2730}... Утверждение, используемое для аутентификации клиента. Используется формат JWT |
| client_id | string [ 1 .. 40 ] characters ^[A-Za-z0-9_-]{1,40}$ Идентификатор сервиса клиента |
| code | string [ 32 .. 256 ] characters ^[A-Za-z0-9_-]{32,256}$ Код авторизации |
| code_verifier | string [ 43 .. 128 ] characters ^[A-Za-z0-9._~-]{43,128}$ Сохраненное при запросе аутентификации (раздел 6.2.3 ФАПИ.СЕК) подтверждение кода по технологии PKCE |
| redirect_uri | string <uri> <= 512 characters URI переадресации, на который будет отправлен ответ; значение этого параметра должно совпадать со значением параметра "redirect_uri" запроса авторизации |
| refresh_token required | string [ 32 .. 512 ] characters ^[A-Za-z0-9_-]{32,512}$ Токен обновления |
| scope | string^[A-Za-z0-9._-]{1,64}( [A-Za-z0-9._-]{1,64}){... Область применения |
curl -X POST "https://sb0.openbankingrussia.ru/sandbox0/as/aft/connect/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "X-Request-ID: 97ed4827-7b6f-4491-a06f-b548d5a7512d" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=SplxlOBeZQQYbYS6WxSbIAQAAAAAAAAB" \ --data-urlencode "redirect_uri=https://client.example.org/cb" \ --data-urlencode "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" \ --data-urlencode "client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6ImNsaWVudC1rZXkifQ.eyJpc3MiOiJjbGllbnQtMDEiLCJzdWIiOiJjbGllbnQtMDEiLCJhdWQiOiJodHRwczovL3NiMC5vcGVuYmFua2luZ3J1c3NpYS5ydS9zYW5kYm94MC9hcy9hZnQvY29ubmVjdC90b2tlbiIsImp0aSI6Ijk3ZWQ0ODI3N2I2ZjQ0OTFhMDZmYjU0OGQ1YTc1MTJkIiwiZXhwIjoxNzE2MjE5MDIyfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk" \ --data-urlencode "client_id=client-01"
Параметр scope не возвращается, так как выданный access token
имеет ту же область доступа, которую клиент запрашивал для авторизации Пользователя.
{- "access_token": "${EXAMPLE_ACCESS_TOKEN}",
- "token_type": "Bearer",
- "expires_in": 3600,
- "id_token": "eyJhbGciOiJQUzI1NiIsImtpZCI6ImlkLXRva2VuLWtleSJ9.eyJpc3MiOiJodHRwczovL3NiMC5vcGVuYmFua2luZ3J1c3NpYS5ydS9zYW5kYm94MC9hcy9hZnQiLCJzdWIiOiJ1c2VyLTAxIiwiYXVkIjoiY2xpZW50LTAxIiwiZXhwIjoxNzE2MjE5MDIyfQ.c2lnbmF0dXJlLWZvci1pZC10b2tlbg",
- "refresh_token": "${EXAMPLE_REFRESH_TOKEN}"
}Конечная точка отзыва токена используется клиентом для запроса отзыва access token или refresh token. Запрос выполняется с аутентификацией клиента через client assertion.
Успешный ответ возвращается с HTTP 200 без тела. Ответ не должен раскрывать, был ли переданный токен известен серверу авторизации, если клиент прошел аутентификацию и запрос синтаксически корректен.
| X-Request-ID | string <uuid> Example: 97ed4827-7b6f-4491-a06f-b548d5a7512d RFC4122 UID, используемый в качестве идентификатора запроса или корреляции. В случае, если Сервер авторизации поддерживает корреляцию запросов, то он может возвращать обратно значение данного идентификатора в заголовке ответа X-Request-ID |
| token required | string [ 32 .. 4096 ] characters ^[\w\W]{32,4096}$ Токен, который клиент запрашивает отозвать. |
| token_type_hint | string (TokenTypeHint) Enum: "access_token" "refresh_token" Подсказка о типе токена, переданного в запрос revoke или introspection. Значение используется только как подсказка и не должно быть единственным основанием для принятия или отклонения токена. |
| client_assertion_type required | string (ClientAssertionType) <= 100 characters Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" Тип утверждения клиента. Имеет значение urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion required | string^[A-Za-z0-9_-]{1,2730}\.[A-Za-z0-9_-]{1,2730}... Утверждение, используемое для аутентификации клиента. Используется формат JWT. |
| client_id | string [ 1 .. 40 ] characters ^[A-Za-z0-9_-]{1,40}$ Идентификатор сервиса клиента. |
curl -X POST "https://sb0.openbankingrussia.ru/sandbox0/as/aft/connect/revoke" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "X-Request-ID: 97ed4827-7b6f-4491-a06f-b548d5a7512d" \ --data-urlencode "token=8xLOxBtZp8ePStRrZQAAAAAAABBBBBBB" \ --data-urlencode "token_type_hint=refresh_token" \ --data-urlencode "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" \ --data-urlencode "client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6ImNsaWVudC1rZXkifQ.eyJpc3MiOiJjbGllbnQtMDEiLCJzdWIiOiJjbGllbnQtMDEiLCJhdWQiOiJodHRwczovL3NiMC5vcGVuYmFua2luZ3J1c3NpYS5ydS9zYW5kYm94MC9hcy9hZnQvY29ubmVjdC9yZXZva2UiLCJqdGkiOiI5N2VkNDgyNzdiNmY0NDkxYTA2ZmI1NDhkNWE3NTEyZCIsImV4cCI6MTcxNjIxOTAyMn0.signature" \ --data-urlencode "client_id=client-01"
{- "error": "invalid_request",
- "error_description": "Bad Request"
}Конечная точка introspection используется доверенным клиентом или защищенным ресурсом для проверки состояния access token или refresh token.
Если токен неактивен, неизвестен, истек, отозван или сведения о токене не
должны раскрываться вызывающей стороне, успешный ответ должен содержать
active: false без дополнительных сведений о токене.
Для активного MTLS-bound access token ответ должен содержать cnf.x5t#St256.
Защищенный ресурс обязан вычислить Streebog-256 thumbprint сертификата клиента,
предъявленного в текущем MTLS-соединении, и сравнить его со значением из
cnf.x5t#St256. Несовпадение значений означает, что предъявленный token не
связан с текущим клиентским сертификатом, и запрос к защищенному ресурсу
должен быть отклонен как invalid_token.
| X-Request-ID | string <uuid> Example: 97ed4827-7b6f-4491-a06f-b548d5a7512d RFC4122 UID, используемый в качестве идентификатора запроса или корреляции. В случае, если Сервер авторизации поддерживает корреляцию запросов, то он может возвращать обратно значение данного идентификатора в заголовке ответа X-Request-ID |
| token required | string [ 32 .. 4096 ] characters ^[\w\W]{32,4096}$ Токен, состояние которого запрашивается. |
| token_type_hint | string (TokenTypeHint) Enum: "access_token" "refresh_token" Подсказка о типе токена, переданного в запрос revoke или introspection. Значение используется только как подсказка и не должно быть единственным основанием для принятия или отклонения токена. |
| client_assertion_type required | string (ClientAssertionType) <= 100 characters Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" Тип утверждения клиента. Имеет значение urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion required | string^[A-Za-z0-9_-]{1,2730}\.[A-Za-z0-9_-]{1,2730}... Утверждение, используемое для аутентификации клиента. Используется формат JWT. |
| client_id | string [ 1 .. 40 ] characters ^[A-Za-z0-9_-]{1,40}$ Идентификатор сервиса клиента. |
curl -X POST "https://sb0.openbankingrussia.ru/sandbox0/as/aft/connect/introspection" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "X-Request-ID: 97ed4827-7b6f-4491-a06f-b548d5a7512d" \ --data-urlencode "token=eyJhbGciOiJQUzI1NiIsImtpZCI6ImFjY2Vzcy10b2tlbi1rZXkifQ.payload.signature" \ --data-urlencode "token_type_hint=access_token" \ --data-urlencode "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" \ --data-urlencode "client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6ImNsaWVudC1rZXkifQ.eyJpc3MiOiJjbGllbnQtMDEiLCJzdWIiOiJjbGllbnQtMDEiLCJhdWQiOiJodHRwczovL3NiMC5vcGVuYmFua2luZ3J1c3NpYS5ydS9zYW5kYm94MC9hcy9hZnQvY29ubmVjdC9pbnRyb3NwZWN0aW9uIiwianRpIjoiOTdlZDQ4Mjc3YjZmNDQ5MWEwNmZiNTQ4ZDVhNzUxMmQiLCJleHAiOjE3MTYyMTkwMjJ9.signature" \ --data-urlencode "client_id=client-01"
{- "active": true,
- "scope": "accounts offline_access",
- "client_id": "client-01",
- "token_type": "Bearer",
- "exp": 1716219022,
- "iat": 1716215422,
- "sub": "user-01",
- "cnf": {
- "x5t#St256": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
}Конечная точка возвращает подписанную JWS информацию о конечном Пользователе, прошедшем аутентификацию и авторизовавшем предъявленный токен доступа.
| X-Request-ID | string <uuid> Example: 97ed4827-7b6f-4491-a06f-b548d5a7512d RFC4122 UID, используемый в качестве идентификатора запроса или корреляции. В случае, если Сервер авторизации поддерживает корреляцию запросов, то он может возвращать обратно значение данного идентификатора в заголовке ответа X-Request-ID |
curl -X GET "https://sb0.openbankingrussia.ru/sandbox0/as/aft/userinfo" \ -H "Authorization: Bearer <access_token>" \ -H "X-Request-ID: 97ed4827-7b6f-4491-a06f-b548d5a7512d" \ -H "Accept: application/jwt"
eyJraWQiOiJTMSIsInR5cCI6IkpXVCIsImFsZyI6IkdPU1QzNDEwMTIifQ.eyJzdWIiOiIxZTNhN2Q0YS1kMjEzLTQxNmQtYjRkMy1hYzgwMDBmOWQxZDAiLCJnaXZlbl9uYW1lIjoi0JjQstCw0L0iLCJmYW1pbHlfbmFtZSI6ItCf0LXRgtGA0L7QsiIsInBob25lX251bWJlciI6Ijg5OTA5OTkwMDAwIiwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjp0cnVlLCJhdWQiOiI0YWJkNTlkNTk3MDI0Nzk2OTk2NWE0ZjMxN2E4ZjgxNyIsImlzcyI6Imh0dHBzOi8vc2ItYXMub3BlbmJhbmtpbmdydXNzaWEucnUvc2FuZGJveC9hcy9hZnQifQ.cnx42rs2WNw1-wX_X3Fxdyrserkn2zxNdH0GfscVzs8awGUdKwfnV5xUXFYjDOjpJcTErXrFbhRYX2LA5BopZCboOis4zafjwKQct1JlopFaUSOLk3dd-NJ9jZ7fzV_OebfKiwQjI9RUrWLOdKeHmZX89ls7KHRHRXYsbTaFtdur6KYfjB4UiyF7lwTP23bFduyquTLBWvRaL8B8gOV5XerFcAyXcTT8iGRSTAJdQ4e_7SBFmNYehir9ftzIqQLUZi4MY9s1kMycFdFtyqZGWIqT1ytZuj5HL5hPx3jQJYAeAuMnsoq6k_3EWykTevsMvlfqjGapw3rJ5Pyg645R9w