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

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

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

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

Важно!

  • Для регистрации на Портале SberAPI не нужно использовать СберБизнес ID.
  • Рекомендуем зарегистрировать аккаунт на общую/техническую электронную почту.
  • Необходимо получить только Client ID, Client Secret и сертификат. Оформлять подписку Сбер ID на Портале SberAPI не нужно.
  • Реализовать получение кода авторизации, токенов и данных пользователя на вашем ресурсе.
  • Реализовать подтверждение успешного входа пользователя на вашем ресурсе.
  • Предоставить пользователям интерфейс входа по Сбер ID.

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

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

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

При регистрации приложения на Сбер API рекомендуем создать по одному приложению на каждый контур. Например, если у вас есть DEV и PROM контур, то рекомендуем создать 2 приложения. В названии приложения укажите, для какого стенда оно создано

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

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

Для desktop/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 страницу авторизации)

Для реализации получения кода авторизации используйте наши JS SDK для web приложений и Android SDK / iOS SDK для мобильных приложений

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

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

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

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

Шаг 4. Отправка аналитических событий

Обязательно к реализации только на ПРОМ контуре!

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

Тестирование интеграции

Описали процесс тестирования в разделе Тестирование интеграции Сбер ID

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

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

Аббревиатура/СокращениеОпределение
ПользовательПользователь Сбер 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. Сервер партнера авторизует клиента у себя в сервисе и возвращает успешный ответ в мобильное приложение (зависит от бизнес-логики партнера).
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.