B2BB2C

Получение токена доступа

Песочница
POST https://sandbox.alfabank.ru/oidc/token
Пром
POST https://baas.alfabank.ru/oidc/token
Описание

Будет получено три токена: access_token , refresh_token и id_token .

Срок жизни токена доступа - 1 час.

У одного пользователя может быть несколько пар действующих access_token, refresh_token на разных устройствах, но на одном устройстве может существовать только одна пара токенов. Если пользователь повторно проходит аутентификацию с того же устройства и получает новую пару токенов, предыдущая пара токенов отзывается.

При использовании curl запроса с заголовком "Content-Type": "application/x-www-form-urlencoded" необходимо экранировать специальные символы параметра client_secret . В то время как redirect_uri экранировать не нужно.

Если запрос отправляется через Postman с заголовком "Content-Type": "application/x-www-form-urlencoded" и body в формате x-www-form-urlencoded - нет необходимости экранировать специальные символы.

Подробную информацию по экранированию можно посмотреть здесь.

Параметры запроса
HEADERS
Атрибут
Описание
Accept
stringrequired

application/json

Content-Type
stringrequired

application/x-www-form-urlencoded

BODY
Атрибут
Описание
grant_type
stringrequired

Тип гранта. Возможные значения:

  • •
    authorization_code
code
stringrequired

Код авторизации

client_id
stringrequired

Идентификатор партнёрского сервиса

client_secret
stringrequired

Секретный ключ партнёрского сервиса

redirect_uri
stringrequired

URI перенаправления

code_verifier
stringoptional

Код верификатор

Пример запроса
Язык
1curl --location 'https://baas.alfabank.ru/oidc/token' \
2--header 'Content-Type: application/x-www-form-urlencoded' \
3--header 'Accept: application/json' \
4--data-urlencode 'grant_type=authorization_code' \
5--data-urlencode 'code=8962c304-89b1-11ec-a8a3-0242ac120002' \
6--data-urlencode 'client_id=0cee0683-85ae-49f2-a63d-29f97aad1911' \
7--data-urlencode 'client_secret=Qwerty1234567890Qwerty1234567890!' \
8--data-urlencode 'redirect_uri=https://wwww.partner.ru/code' \
9--data-urlencode 'code_verifier=string'
Параметры ответа
Пример ответа 200 (OK)
1{
2  "access_token": "eyJraWQiOiJhbGZhLXRlc3Qtand0IiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzMjI4ZTY4ZS1jYzM0LTRiODItYjQzZC00OTExMmI1ZDlkM2UiLCJhdWQiOiIwY2VlMDY4My04NWFlLTQ5ZjItYTYzZC0yOWY5N2FhZDE5MTEiLCJpc3MiOiJodHRwczpcL1wvaWQuYWxmYWJhbmsucnUiLCJleHAiOjE2MzE2NjY2NjMsInNjb3BlX3NlcnZpY2VzIjpbInBheW1lbnQiLCJzdGF0ZW1lbnQiXSwiaWF0IjoxNjMxNjYzMDYzLCJzY29wZV9jbGFpbXMiOlsibmFtZSIsImdpdmVuX25hbWUiLCJmYW1pbHlfbmFtZSIsIm1pZGRsZV9uYW1lIiwiZW1haWwiLCJwaG9uZV9udW1iZXIiXX0.RZ98I-PT_HGMzc7IbwGvlZjLOYuInta6pczEc_h4yCvZKCafIqs4ZBbs7eSY3NpXGzTbSZkGQA9wfX2NFDXZelwyNTooFQMpXzytrEhLww05H8ZFCH0kEQ_IpnJk-KeYkBLD0Oa75Gi6Lqj-Dr8KoX4Zq93ZyT4sr7Hzb1H287UlkJWVlpz_E7slLIob8m3keGbDysNyEBKJzsPcW27HENZBnvYwdE1pzwB8ObEZkICO8kbEP7MupLbhFyjxJFlI6Bq2DNjqi_QgQzvjvpD4KILxDms-Upg8h6GptYyoOl1BMGfN7WhN2vOUFYNuivNKctwcfD_H73kHJGu5KIJmGA",
3  "refresh_token": "13b8230b-b6bf-4bb9-b977-3bc0a988a5fd",
4  "token_type": "Bearer",
5  "expires_in": 3600,
6  "id_token": "eyJraWQiOiJhbGZhLXRlc3Qtand0IiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzMjI4ZTY4ZS1jYzM0LTRiODItYjQzZC00OTExMmI1ZDlkM2UiLCJhdWQiOiIwY2VlMDY4My04NWFlLTQ5ZjItYTYzZC0yOWY5N2FhZDE5MTEiLCJhY3IiOiJMb0EzIiwiYXpwIjoiMGNlZTA2ODMtODVhZS00OWYyLWE2M2QtMjlmOTdhYWQxOTExIiwiYXV0aF90aW1lIjoxNjMxNjYzMDUzLCJpc3MiOiJodHRwczpcL1wvaWQuYWxmYWJhbmsucnUiLCJleHAiOjE2MzE2NjY2NjMsImlhdCI6MTYzMTY2MzA2Mywibm9uY2UiOiJuLTBTNl9XekEyTWoifQ.xBE6LEUxOKleHCZVQacldJfKr5KtyyvJKCCmInqapmRJ_aRF-cEoVfpJd_kxlNmJYT7AcjMMppovNkmhB49VL5DK8FhF0fvRgLskKR9Eohy4eiC8ued03Z1LyLz1H7EcKSkusaCIajzIvxxZfVtSHI4jmgLg6ItXPdZgIDUWINgESkl6I7IP5CbfONHweNnbkWEOEzxDgGGnxxtPxrWVoPVP-ijUeUSH_iESHfrhY_ePRMYi2If62IsKX_0GT5BHRYOhXVDZ9fyn5fRCvg8_QoCykDVIOZMtWQ3w4TadqS0dfMlsLBxkVbVftzH2fWRLTCX3SJ5AXiytHkpow8V45w"
7}
HEADERS
Атрибут
Описание
Content-Type
stringoptional

application/json

Cache-Control
stringoptional

no-store

Pragma
stringoptional

no-cache

BODY
атрибут
описание
access_token
stringrequired

Токен доступа

refresh_token
stringrequired

Токен обновления

token_type
stringrequired

Тип токена. Сообщает о генерации токена доступа и его направлении обратно

expires_in
integeroptional

Срок жизни токена в секундах

id_token
stringrequired

Идентификационный токен

Пример ответа 200 (OK)
1{
2  "access_token": "eyJraWQiOiJhbGZhLXRlc3Qtand0IiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzMjI4ZTY4ZS1jYzM0LTRiODItYjQzZC00OTExMmI1ZDlkM2UiLCJhdWQiOiIwY2VlMDY4My04NWFlLTQ5ZjItYTYzZC0yOWY5N2FhZDE5MTEiLCJpc3MiOiJodHRwczpcL1wvaWQuYWxmYWJhbmsucnUiLCJleHAiOjE2MzE2NjY2NjMsInNjb3BlX3NlcnZpY2VzIjpbInBheW1lbnQiLCJzdGF0ZW1lbnQiXSwiaWF0IjoxNjMxNjYzMDYzLCJzY29wZV9jbGFpbXMiOlsibmFtZSIsImdpdmVuX25hbWUiLCJmYW1pbHlfbmFtZSIsIm1pZGRsZV9uYW1lIiwiZW1haWwiLCJwaG9uZV9udW1iZXIiXX0.RZ98I-PT_HGMzc7IbwGvlZjLOYuInta6pczEc_h4yCvZKCafIqs4ZBbs7eSY3NpXGzTbSZkGQA9wfX2NFDXZelwyNTooFQMpXzytrEhLww05H8ZFCH0kEQ_IpnJk-KeYkBLD0Oa75Gi6Lqj-Dr8KoX4Zq93ZyT4sr7Hzb1H287UlkJWVlpz_E7slLIob8m3keGbDysNyEBKJzsPcW27HENZBnvYwdE1pzwB8ObEZkICO8kbEP7MupLbhFyjxJFlI6Bq2DNjqi_QgQzvjvpD4KILxDms-Upg8h6GptYyoOl1BMGfN7WhN2vOUFYNuivNKctwcfD_H73kHJGu5KIJmGA",
3  "refresh_token": "13b8230b-b6bf-4bb9-b977-3bc0a988a5fd",
4  "token_type": "Bearer",
5  "expires_in": 3600,
6  "id_token": "eyJraWQiOiJhbGZhLXRlc3Qtand0IiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzMjI4ZTY4ZS1jYzM0LTRiODItYjQzZC00OTExMmI1ZDlkM2UiLCJhdWQiOiIwY2VlMDY4My04NWFlLTQ5ZjItYTYzZC0yOWY5N2FhZDE5MTEiLCJhY3IiOiJMb0EzIiwiYXpwIjoiMGNlZTA2ODMtODVhZS00OWYyLWE2M2QtMjlmOTdhYWQxOTExIiwiYXV0aF90aW1lIjoxNjMxNjYzMDUzLCJpc3MiOiJodHRwczpcL1wvaWQuYWxmYWJhbmsucnUiLCJleHAiOjE2MzE2NjY2NjMsImlhdCI6MTYzMTY2MzA2Mywibm9uY2UiOiJuLTBTNl9XekEyTWoifQ.xBE6LEUxOKleHCZVQacldJfKr5KtyyvJKCCmInqapmRJ_aRF-cEoVfpJd_kxlNmJYT7AcjMMppovNkmhB49VL5DK8FhF0fvRgLskKR9Eohy4eiC8ued03Z1LyLz1H7EcKSkusaCIajzIvxxZfVtSHI4jmgLg6ItXPdZgIDUWINgESkl6I7IP5CbfONHweNnbkWEOEzxDgGGnxxtPxrWVoPVP-ijUeUSH_iESHfrhY_ePRMYi2If62IsKX_0GT5BHRYOhXVDZ9fyn5fRCvg8_QoCykDVIOZMtWQ3w4TadqS0dfMlsLBxkVbVftzH2fWRLTCX3SJ5AXiytHkpow8V45w"
7}
HEADERS
Атрибут
Описание
Content-Type
stringoptional

application/json

Cache-Control
stringoptional

no-store

Pragma
stringoptional

no-cache

BODY
атрибут
описание
error
stringrequired

Код ошибки. Принимает возможные значения:

  • •
    invalid_request - неверные входные параметры запроса
error_description
stringoptional

Описание ошибки

Пример ошибки 400 (Bad Request)
1{
2  "error": "invalid_request",
3  "error_description": "string"
4}
Таблица возможных значений параметра error
Значение Описание
invalid_request Отсутствует обязательный параметр, неподдерживаемое значение параметра (кроме grant_type), повторение параметра, несколько учётных данных или неправильный формат запроса
invalid_client Ошибка аутентификации клиента (неверный client_id или client_secret, отключённая аутентификация клиента или неподдерживаемый метод аутентификации)
invalid_grant Недействительное разрешение авторизации (недействительный код авторизации, токен обновления или несоответствие URI перенаправления)
unsupported_grant_type Тип разрешения на авторизацию (grant_type) не поддерживается сервером авторизации
internal_error Произошла непредвиденная ошибка
Описание клэймов access_token
Значение Описание
iss URL-адрес Alfa ID по протоколу https (https://id.alfabank.ru/oidc)
sub Уникальный идентификатор Alfa ID пользователя, предназначенный для использования клиентом (client). Длина не должна превышать 255 символов ASCII. Учитывается регистр
aud Идентификатор сервиса-партнёра (аудитория токена). Может также содержать идентификаторы для других сервисов. Представляется в виде массива строк с учётом регистра, либо может быть одной строкой
exp Время окончания срока действия идентификационного токена. Представляет собой JSON с указанием количества секунд от 1970-01-01T0:0:0Z в формате UTC до даты/времени
iat Время выпуска JWT. Значение - количество секунд до указанной даты/времени от 1970-01-01T0:0:0Z в формате UTC
scope_claims Массив клэймов области применения
scope_services Массив операций области применения
Описание клэймов ID_TOKEN
Значение Описание Scope
iss URL-адрес Alfa ID по протоколу https (https://id.alfabank.ru/oidc) openid
sub Уникальный идентификатор Alfa ID пользователя, предназначенный для использования клиентом (client). Длина не должна превышать 255 символов ASCII. Учитывается регистр openid
aud Идентификатор сервиса-партнёра (аудитория токена). Может также содержать идентификаторы для других сервисов. Представляется в виде массива строк с учётом регистра, либо может быть одной строкой openid
exp Время окончания срока действия идентификационного токена. Представляет собой JSON с указанием количества секунд от 1970-01-01T0:0:0Z в формате UTC до даты/времени openid
iat Время выпуска JWT. Значение - количество секунд до указанной даты/времени от 1970-01-01T0:0:0Z в формате UTC openid
auth_time Время аутентификация пользователя. Значение - количество секунд с 1970-01-01T0:0:0Z в формате UTC до даты/времени openid
nonce Строковое значение, используемое для связи сессии клиента с идентификационным токеном и защиты от повторных атак. Учитывается регистр. Возвращается, только если партнёр передал nonce в ссылке на получение кода авторизации openid
acr Способ аутентификации пользователя. Учитывается регистр openid
azp Сторона, которой выдан идентификационный токен. Если присутствует, должен содержать идентификатор клиента (client_id) OAuth 2.0 этой стороны. Учитывается регистр openid

Отправьте письмо на alfa_api@alfabank.ru, указав следующие данные:

  1. 1.
    client_id.
  2. 2.
    Дата и время запроса с указанием часового пояса.
  3. 3.
    Метод и URI запроса.
  4. 4.
    Заголовки и тело запроса.
  5. 5.
    Полученная ошибка и заголовки ответа, включая X-TraceId.
  6. 6.
    IP-адрес, с которого был отправлен запрос.