ym88659208ym87991671
Шаг 2. Запрос access token и id token | Документация для разработчиков

Шаг 2. Запрос access token и id token

Обновлено 8 июля 2025

На Схеме взаимодействия обозначен как «13. Запрос access token, id token».

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

Для успешного выполнения запроса необходимо использовать сертификат, полученый при регистрации приложения на портале Сбер ID , по нашей документации.

Back-end Партнера инициирует запрос в back-end Банка на получение access token и Id token, направляя в запросе полученный ранее код авторизации.

Партнер также может получить длинноживущий (30 дней) refresh token, который в дальнейшем позволяет обновлять короткоживущий access token. Для этого в запросе на авторизацию Партнер должен передать дополнительный scope со значением offline_access.

Пример запроса на получение access token, refresh token и Id token:

POST 'https://oauth-ift.sber.ru/ru/prod/tokens/v2/oidc' \
--header 'accept: application/json' \
--header 'rquid: 012345678901234567890123456789FF' \
--header 'content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=FC49F1EA-245A-0FCD-2077-F3F73******' \
--data-urlencode 'client_id=5e7ee80a-6724-4078-8ee4-1dd63******' \
--data-urlencode 'client_secret=L4hE5nH3wB5lC6sP0bO7bA6yM5bH5hA3lN3******' \
--data-urlencode 'redirect_uri=https://api.developer.sber.ru/'

Важно!

Время timeout для ответа Сбер API — 10 сек.

Описание полей  запроса на получение access token и id token

№   п/пНаименование заголовка/поляЗаголовок / ПолеОписаниеОбязательность поля
1RqUIDЗаголовокУникальный идентификатор сообщения, «length=32 и pattern=([0-9][a-f][A-F])32)», переданный во входящем сообщении. Необходим для журналирования входящих вызовов и удобства разбора инцидентов. Чтобы обеспечить уникальность, можно использовать стандартные библиотеки и классы для генерации UUID/GUID (https://ru.wikipedia.org/wiki/UUID ), убрав из результата разделители «-».Да
2content-typeЗаголовокВсегда принимает значение "application/x-www-form-urlencoded"Нет
3acceptЗаголовокМожет принимать значения application/json или application/jwt.Нет
4grant_typeПолеУказывается равным authorization_code.Да
5codeПолеКод авторизации, полученный от Банка. (См. Ответ на запрос кода авторизации).Да
6redirect_uriПолеЗначение параметра redirect_uri, которое было указано в запросе кода авторизации.Да
7client_idПолеИдентификатор системы Партнера, полученный партнером в личном кабинете после регистрации приложения.Да
8client_secretПолеПароль системы Партнера, полученный партнером в личном кабинете после регистрации приложения.Да

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

В случае успешной обработки запроса Back партнера получает access token и Id token. Ответ типа HTTP 200 OK. Описание полей ответа приведено в таблице Описание полей ответа.

Пример JSON сообщения - ответа в случае успешной обработки запроса:

HTTP/1.1 200 OK rquid: 012345678901234567890123456789FF { "access_token":"f213a511-58d7-4e7c-88b3-a6de380c81da",
"token_type":"bearer", "expires_in":60, "scope": "openid name email",
"id_token":"eyJhbGciOiJub25lIn0.eyJzdWIiOiI5ODg5YmQ2NDAzYzk0Nzg4ZGI0ZDY5ODVjY2U4MWViNz
c4MDE5NTU5ZTc3MWQyNTczMzFjODljMWUzMGY5NzRmZGJlOTQwODQ0YTg2ZGRjMyIsImF1dGhfdGltZSI6MTU2
ODk4MzE0Niwibm9uY2UiOiJMaXdrZEtoSU9ockRLdkpYMXNndkI1eGtrRlVWMm01am5BWUs3ZlhUSFNFIiwiaX
NzIjoiaHR0cHM6Ly9pZnQtY3NhLnRlc3RvbmxpbmUuc2JlcmJhbmsucnU6NDQ1Ni9DU0FGcm9udC9pbmRleC5k
byIsImlhdCI6MTU2ODk4MzE1OSwiZXhwIjoxNTY4OTgzNDQ2LCJhdWQiOiJFMzJCODZDMi1FNTUxLUREODMtNT JGRi1GREE2MjA2Q0VBM0MifQ.", "refresh_token": "06728b1a-1ecb-4dd6-b462-9e11c24f9efd" }

Описание полей ответа

№   п/пНаименование поляОписаниеПример
1access_tokenСгенерированный Access token.f213a511-58d7-4e7c-88b3-a6de380c81da
2token_typeТип запрашиваемого токена. Всегда передается значение «Bearer».Bearer
3expires_inВремя в секундах, в течение которого действует Access Token.60
4scopeСписок групп персональных данных, на получение которых выдан данный токен. В список так же по умолчанию включается название сервиса APIopenid name https://api.sberbank.ru/sberbankid/userinfo
5id_tokenЗакодированный набор атрибутов пользователя в формате base64_url, необходимый для идентификации пользователя.eyJhbGciOi-IgZ29zdDM0LTEwLjIwMTIifQ.ewogImlzcyI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5NzYxMDAxIiwKICJhdWQiOiAiMTAwMSIsCi-Aibm9uY2UiOiAibi0wUzZfV3pBMk1qIiwKICJleHAiOiAxMzExMjg0NTcwLAogImlhdCI6IDEzMTEyODA5NzAK4oCcc2lkMuKAnTrigJ0xMjM0NTY4Nzk5MjU14oCdIAog4oCcbmFtZSI6IOKAnNCY0LLQsNC90L7QsiDQmNCy0LDQvSDQmNCy0LDQvdC+0LLQuNGH4oCdCn0.EJqZnRKZVo0Q1ZQLW1COTJLMjd1aGJVSlUxcDFyX3dXMWdGV0ZPRWpYaw
6refresh_tokenТокен, используемый для получения нового access token. Срок жизни составляет 30 дней.06728b1a-1ecb-4dd6-b462-9e11c24f9efd

Пример ID Token:

{
"iss": "id.sber.ru",
"sub": "74c64d08bdd5e6f2b94770e9fed9342b9054f22bea1571e68448c8cae83e0d80ec206549e11d13fc",
"sub_alt": "33ab606d1f18743e9f6cdfe2246525cda981513a118381046541be8e183e0d80ec206549e11d13fc",
"aud": "DA5278AC - A07F - C01A -B2D3 - C231DBB2E20F",
"exp": 141254872,
"iat": 1411250872,
"auth_time": 1411250871,
"nonce": "n - 0 S6_WzA2Mj"
}

Описание полей ID Token

№   п/пНаименование поляОписаниеПримечание
1subНеизменный уникальный идентификатор клиента в АС Банка, передаваемый внешним потребителям.Максимальная длина 96 символов.Идентификатор клиента банка, используемый внешними АС.  Идентификатор может быть  сохранен у Партнера. 
2sub_altДополнительный идентификатор клиента в АС Банка, передаваемый внешним потребителям.Максимальная длина 96 символов.Дополнительный идентификатор (Sub) производные от учетной записи клиента, связанных с учетной записью, по которой сформирован основной Sub. Идентификатор может быть сохранен у Партнера. Обработка Alt_Sub дает возможность автоматически устранить стороне партнера последствия дедупликаций и слияния УЗ клиентов (учет специфики Банка). Может прийти несколько sub_alt по одному клиенту в зависимости от количества дедупликаций.
3issURL сервиса (URL АС банка), сформировавшего ID Token.
4audИдентификатор внешней АС/ресурсной системы (client_id).При получении ID_Token партнеру необходимо сравнить значение aud  со значением своего client_id. Если значения не совпадают, то партнер должен завершить сценарий без авторизации клиента на своем ресурсе.
5expВремя, до наступления которого гарантируется неизменность информации о клиенте в составе ID Token.
6iatВремя формирования ID Token.
7auth_timeВремя аутентификации клиента в АС Банка при запросе кода авторизации.Cекунды считается с 1970 года можно тут перевести https://www.unixtimestamp.com/
8nonceЗначение переменной, сгенерированная ресурсной системой/внешней АС для предотвращения атак повторения при запросе кода авторизации.Партнер  получив ID_Token  должен проверить значение параметра nonce, что полученное значение nonce равно значению параметра nonce, отправленного в запросе на аутентификацию. Если значения не совпадают, то Партнер должен завершить сценарий без авторизации клиента на своем ресурсе.

Мэтчинг учетных записей

После получения идентификатора в Сбер ID (sub либо sub_alt в ID Token) рекомендуется следующий сценарий:

  1. Партнер ищет у себя учетную запись (по sub либо sub_alt из ID Token), к которой привязан Сбер ID
  2. Если такая учетная запись найдена по sub либо sub_alt, Партнер аутентифицирует Клиента
  3. Если такой учетной записи не найдено, то Партнер может попробовать поискать учетную запись Клиента по данным, полученным через Сбер ID (например, адрес электронной почты, номер телефона и т.д.)
  • Если такая учетная запись найдена (по дополнительным данным), Партнер предлагает Клиенту привязать ее к уже существующей. Клиент может пропустить этот шаг. В случае, если клиент пропускает этот шаг, то Партнер аутентифицирует Клиента.

  • Если такой учетной записи не найдено, Партнер аутентифицирует Клиента

Пример окна с предложением привязать учетную запись

Обновление access token по refresh token

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

Пример запроса на обновление access token по refresh token:

POST 'https://oauth-ift.sber.ru/ru/prod/tokens/v2/oidc' \
--header 'accept: application/json' \
--header 'rquid: 012345678901234567890123456789FF' \
--header 'content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'refresh_token=06728b1a-1ecb-4dd6-b462-9e11c24f9efd' \
--data-urlencode 'client_id=5e7ee80a-6724-4078-8ee4-1dd63******' \
--data-urlencode 'client_secret=L4hE5nH3wB5lC6sP0bO7bA6yM5bH5hA3lN3******'

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

В случае успешной обработки запроса Back партнера получает новую пару токенов: access token и refresh token. Ответ типа HTTP 200 OK.

Пример JSON сообщения - ответа в случае успешной обработки запроса:

HTTP/1.1 200 OK rquid: 012345678901234567890123456789FF { "access_token":"f213a511-58d7-4e7c-88b3-a6de380c81da",
"token_type":"bearer", "expires_in":60, "refresh_token": "06728b1a-1ecb-4dd6-b462-9e11c24f9efd" }
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.