Сформируйте ссылку
Переадресация пользователя для прохождения аутентификации
Получение кода авторизации в ответе Alfa ID
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
использовать только в том случае, если необходимо чтобы пользователь переподписал новое согласие.
Параметры запроса
Тип ответа. Возможные значения: code
Идентификатор партнерского сервиса (банк выдает партнеру API)
URI перенаправления (который сообщает партнер API)
Область применения (партнер API информирует, какой scope будет использован)
Параметр для предотвращения межсайтовой подделки запросов. Значение генерирует партнер. Рекомендуется использовать идентификатор сессии пользователя или одно из его производных, таких как хэш идентификатора. UUID, 36 символов, включая тире
Строковое значение, используемое для связи сессии клиента с идентификационным токеном и защиты от повторных атак
Код вызова
Метод преобразования кода верификатора. Возможные значения: plain
- Код верификатор; S256
- S256 BASE64URL-ENCODE(SHA256(ASCII(Код верификатор)))
Параметр повторной аутентификации и согласия. Возможные значения: none
- недоступно отображение страницы пользовательского интерфейса аутентификации или согласия; login
- запрос у конечного пользователя повторной аутентификации; consent
- запрос у конечного пользователя согласия, прежде чем возвращать информацию клиенту
Максимальный период аутентификации
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.Пользователь проходит процедуру аутентификации.
2. Пользователь выбирает необходимую организацию (при работе с несколькими юридическими лицами; для физических лиц, шаг пропускается).
3. Далее пользователь проходит процедуру авторизации, подписывая форму согласия.
Шаг 4. Получение кода авторизации
Код авторизации получен, если ответ 302 (Found).
Код авторизации действует 2 минуты
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 '
Содержит URI для перенаправления. В случае успешного выполнения запроса в заголовке Location
передается строка вида: redirect_uri?code={code}&state={state}
Содержит идентификатор сессии
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 '
Содержит 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 |