Сформируйте ссылку
Переадресация пользователя для прохождения аутентификации
Получение кода авторизации в ответе Alfa ID
Alfa ID возвращает пользователя на ваш ресурс по тому redirect_uri, который был указан в запросе.
Данные для тестирования аутентификации в песочнице в статье Тестирование Alfa ID.
Шаг 1. Кнопка «Войти по Alfa ID»
Пользователь переходит по встроенной кнопке на вашем ресурсе. Как добавить кнопку, можно посмотреть здесь.
Шаг 2. Формирование ссылки
Ссылка должна содержать обязательные параметры, указанные ниже в таблице. Также опционально могут быть использованы необязательные параметры.
Дополнительный параметр prompt=consent необходимо использовать, только если вы хотите, чтобы пользователь подписал новое согласие.
Параметры запроса
Тип ответа. Возможные значения: code
Идентификатор партнёрского сервиса (банк выдает партнёру API)
URI перенаправления (который сообщает партнёр API), необходимый для переадресации пользователя после успешной авторизации приложения и которому будет предоставляться код авторизации
Область применения токена доступа (партнёр API информирует, какие scopes будут использованы). Рекомендуется указывать весь доступный scope через знак пробела или %20. Минимально необходимый scope для получения токена - openid
Параметр для предотвращения межсайтовой подделки запросов. Значение генерирует партнёр. Рекомендуется использовать идентификатор сессии пользователя или одно из его производных, таких как хэш идентификатора. UUID, 36 символов, включая тире
Строковое значение, используемое для связи сессии клиента с идентификационным токеном и защиты от повторных атак
Код вызова
Метод преобразования кода верификатора. Возможные значения: plain - код верификатор; S256 - S256 BASE64URL-ENCODE(SHA256(ASCII(Код верификатор)))
Параметр повторной аутентификации и подписания согласия. Возможные значения:
-
•
none- запрос будет успешно выполнен, только если пользователь уже аутентифицирован и у него есть активное согласие. Иначе вернётся ошибка и страницы аутентификации и согласия не отобразятся пользователю; -
•
login- будет запрошена повторная аутентификация пользователя, даже если он уже аутентифицирован; -
•
consent- будет запрошено повторное согласие пользователя даже при наличии активного согласия. Необходимо использовать, например, если вы хотите поменять набор запрашиваемых scopes; -
•
select_org- пользователю будет предложено выбрать организацию для входа; -
•
select_account- пользователю будет предложено выбрать учётную запись для входа
Максимальный период аутентификации в секундах
1curl -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 минуты и может быть использован только 1 раз.
1https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef
2-H 'Location: https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef'
3-H 'Set-Cookie: ALFASESSIONID=f9e9532f-7b06-4023-83a2-f6cc77a7bfe4 '
Содержит URI для перенаправления. В случае успешного выполнения запроса в заголовке Location передаётся строка вида: redirect_uri?code={code}&state={state}
Содержит идентификатор сессии
1https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef
2-H 'Location: https://wwww.partner.ru/code?code=8962c304-89b1-11ec-a8a3-0242ac120002&state=abcdef'
3-H 'Set-Cookie: ALFASESSIONID=f9e9532f-7b06-4023-83a2-f6cc77a7bfe4 '
Содержит URI для перенаправления. В случае неуспешного выполнения запроса в заголовке Location передаётся строка вида: redirect_uri_error_page?error={error}
1https://wwww.partner.ru/code?error=invalid_request&state=abcdef
2-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 |