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