ym88659208ym87991671
Подключение Сбер ID | Документация для разработчиков

Подключение Сбер ID

Обновлено 1 марта 2023

Что бы реализовать вход по Сбер ID необходимо:

  • Зарегистрировать приложение на Портале, получить Client ID и Client Secret и выпусить сертификат
  • Реализовать получение кода авторизации, токенов и данных пользователя на вашем ресурсе
  • Предоставить пользователям интерфейс входа по Сбер ID

Подготовка. Регистрация приложения

Реализация входа по Сбер ID требует получения и использования в запросах парметров Client ID и Client Secret и сертификат безопастности. Получить все необходимые артефакты можно после регистрации приложения на Портале.

Подробно этот процесс описан в разделе Регистрация приложения документации Сбер ID.

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

В зависимости от типа поверхности Партнера (desctop/mobile web или mobile app) к реализации доступны следующие технологии.

Для desctop/mobile web

  • Web to Web (клиент авторизовывается на сайте партнера через OIDC страницу авторизации)
  • mWeb to App (клиент авторизовывается на сайте партнера через через приложение СБОЛ)
  • Web to Web SSO (клиент бесшовно переходит с сайта экосистемы Сбера на сайт партнера)

Для mobile app

  • App to Webview (клиент бесшовно переходит из мобильного приложения СБОЛ на сайт Партнера)
  • App to App (клиент авторизовывается в приложении партнера через приложение СБОЛ)
  • App to App SSO (клиент бесшовно переходит из мобильного приложения СБОЛ в приложение Партнера)
  • Oidс to App (сценарий, когда клиент входит в приложение партнера через OIDC страницу авторизации)

Шаг 2. Получение access token и id token

Для работы сервиса необходимо на сервере партнера реализовать получение access token и id token в сервсие Сбер ID. Подробнее описание процесса описано в документе Запрос access token и id token.

Шаг 3. Получение данных пользователя

Процесс получение данных пользователя описан в документе Запрос получения данных пользователя.

Общая схема взаимодействия

Терминология

Аббревиатура/СокращениеОпределение
ПользовательПользователь Сбер ID
МП БанкаМобильное приложение Сбербанк Онлайн
Back БанкаБэковое программное обеспечение Банка
МП ПартнераПрограммное обеспечение Предприятия, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах
Back ПартнераБэковое программное обеспечение Предприятия
Схема взаимодействия
 Описание
1. Клиент нажимает кнопку входа по Сбер ID в мобильном приложении или на сайте партнера
2. Мобильное приложение/сайт партнера делает запрос на свой сервер для получения nonce и state
3. Сервер партнера генерирует значения nonce и state и сохраняет его в текущем сеансе пользователя (при желании можно сохранить в этой сессии адрес текущей страницы, на которой клиент нажал кнопку для входа и при успешной авторизации вернуть клиента на эту страницу)
4. Сервер партнера возвращает в мобильное приложение или сайт партнера значение nonce, state и идентификатор сеанса пользователя. Если запрос на код авторизации инициирован из мобильного приложения партнера, то на этом шаге передаются параметры PKCE - code_challenge и code_challenge_method. Партнер привязывает эти значения к открытой сессии своего мобильного приложения. Подробнее см. Параметры запроса
5. Мобильное приложение (или web-сайт) партнера сохраняет у себя идентификатор сеанса и делает запрос кода авторизации (мобильное приложение или web Сбербанка) с параметрами state, nonce, client_id, redirect_uri (и параметрами PKCE в случае, если запрос инициирует  мобильное приложение партнера)
6. Отображение экрана аутентификации в Сбер ID
7. Клиент аутентифицируется на сервере авторизации
8. Отображение экрана подтверждения согласия (при отсутствии активного согласия)
9. Клиент подтверждает согласие (при отсутствии активного согласия)
10. Сервер авторизации выдает значение AuthCode и редиректит его на redirect_uri, включая в ответ значение state, которое пришло в запросе
11. Мобильное приложение/web-сайт партнера, получив ответ, передает его на свой сервер в связке со значением текущего сеанса пользователя
12. Сервер партнера должен сверить значение state из ответа с сохраненным в сеансе значением
13. Если значения совпадают, то сервер партнера в рамках текущей сессии клиента делает запрос на Token Endpoint (СберAPI) для получения кода доступа (access token) -  отправляет в запросе полученное значение AuthCode, client_id, client_secret и redirect_uri (то же самое uri, которое  было отправлено в запросе на код авторизации. Если запрос на код авторизации был инициирован из мобильного приложения партнера, то необходимо в запросе на код доступа указать параметр PKCE (code_verifier)
14. Token Endpoint авторизует сервер партнера, проверяет AuthCode и выдает access token и ID token
15. Сервер партнера получив ID token должен проверить значение параметра nonce,  что полученное значение nonce равно значению параметра nonce, отправленного в запросе на аутентификацию
16. Если значения совпадают сервер партнера может идентифицировать клиента по значению sub, полученного из ID token
17. Запрос профиля клиента (userInfo)
18. Передача профиля клиента
19. Сервер партнера авторизует клиента у себя в сервисе и возвращает успешный ответ в мобильное приложение (зависит от бизнес-логики партнера).

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней