B2BB2CH2H

Получение кода авторизации

1

Отобразите пользователю кнопку "Войти по Alfa ID"

2

Сформируйте ссылку

3

Переадресация пользователя для прохождения аутентификации

4

Получение кода авторизации в ответе Alfa ID

5

Alfa ID возвращает пользователя на ваш ресурс по тому redirect_uri который был указанный в запросе.

Шаг 1. Кнопка "Войти по Alfa ID"

Пользователь переходит по встроенной кнопке на вашем ресурсе. Как добавить кнопку можно посмотреть здесь.

Шаг 2. Формирование ссылки

Пром GET https://id.alfabank.ru/oidc/authorize?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope={scope}&state={state}

Песочница GET https://id-sandbox.alfabank.ru/oidc/authorize?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope={scope}&state={state}

Ссылка должна содержать обязательные параметры, указанные ниже в таблице. Также опционально могут быть использованы необязательные параметры.

При формировании ссылки указывайте весь доступный scope через знак пробела или (%20). Дополнительный параметр prompt=consent использовать только в том случае, если необходимо чтобы пользователь переподписал новое согласие.

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

QUERY
АТРИБУТ
ОПИСАНИЕ
response_type
stringrequired

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

client_id
stringrequired

Идентификатор партнерского сервиса (банк выдает партнеру API)

redirect_uri
stringrequired

URI перенаправления (который сообщает партнер API)

scope
stringrequired

Область применения (партнер API информирует, какой scope будет использован)

state
stringrequired

Параметр для предотвращения межсайтовой подделки запросов. Значение генерирует партнер. Рекомендуется использовать идентификатор сессии пользователя или одно из его производных, таких как хэш идентификатора. UUID, 36 символов, включая тире

nonce
stringoptional

Строковое значение, используемое для связи сессии клиента с идентификационным токеном и защиты от повторных атак

code_challenge
stringoptional

Код вызова

code_challenge_method
stringoptional

Метод преобразования кода верификатора. Возможные значения: plain - Код верификатор; S256 - S256 BASE64URL-ENCODE(SHA256(ASCII(Код верификатор)))

prompt
stringoptional

Параметр повторной аутентификации и согласия. Возможные значения: none - недоступно отображение страницы пользовательского интерфейса аутентификации или согласия; login - запрос у конечного пользователя повторной аутентификации; consent - запрос у конечного пользователя согласия, прежде чем возвращать информацию клиенту

max_age
stringoptional

Максимальный период аутентификации

Пример запроса
curl -X GET https://id.alfabank.ru/oidc/authorize?response_type=code&client_id=0cee0683-85ae-49f2-a63d-29f97aad1911&redirect_uri=https%3A%2F%2Fwwww.partner.ru%2Fcode&scope=openid&state=abcdef

Ваше приложение меняет полученный код авторизации code на токен доступа access_token.

Шаг 3. Аутентификация пользователя

  1. 1.
    Пользователь проходит процедуру аутентификации.

2. Пользователь выбирает необходимую организацию (при работе с несколькими юридическими лицами; для физических лиц, шаг пропускается).

3. Далее пользователь проходит процедуру авторизации, подписывая форму согласия.

Шаг 4. Получение кода авторизации

Код авторизации получен, если ответ 302 (Found).

Пример успешного ответа
https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef
-H 'Location: https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef'
-H 'Set-Cookie: ALFASESSIONID=f9e9532f-7b06-4023-83a2-f6cc77a7bfe4 '
Location
stringoptional

Содержит URI для перенаправления. В случае успешного выполнения запроса в заголовке Location передается строка вида: redirect_uri?code={code}&state={state}

Set-Cookie
stringoptional

Содержит идентификатор сессии

Пример успешного ответа
https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef
-H 'Location: https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef'
-H 'Set-Cookie: ALFASESSIONID=f9e9532f-7b06-4023-83a2-f6cc77a7bfe4 '
Location
stringoptional

Содержит URI для перенаправления. В случае неуспешного выполнения запроса в заголовке Location передается строка вида: redirect_uri_error_page?error={error}

Пример неуспешного ответа
https://wwww.partner.ru/code?error=invalid_request&state=abcdef
-H 'Location: https://wwww.partner.ru/code?error=invalid_request&state=abcdef'
Таблица возможных значений параметра error
ЗначениеОписание
unsupported_response_typeСервер авторизации не поддерживает получение кода авторизации этим методом
login_requiredНеобходима аутентификации конечного пользователя. Возникает, если параметр prompt равен none, а аутентификации без отображения интерфейса для аутентификации конечного пользователя невозможна
invalid_scopeЗапрошенная область применения недопустима, неизвестна или имеет неправильный формат
invalid_requestОтсутствует обязательный параметр, неподдерживаемое значение параметра (кроме grant_type), повторение параметра, несколько учетных данных или неправильный формат запроса
consent_requiredНеобходимо согласие конечного пользователя. Возникает, если параметр prompt равен none, а аутентификации без отображения интерфейса для согласия пользователя невозможна
access_deniedВладелец ресурса или сервер авторизации отклонил запрос
invalid_operation_responseИспользуйте только данные из спецификации Authorization Code Flow
login_expiredПользователь не прошел аутентификацию в течение 15 минут или произвел logout