Подключение Сбер ID
Чтобы реализовать вход по Сбер ID необходимо:
- Зарегистрировать приложение на Портале SberAPI, получить Client ID, Client Secret и выпустить сертификат.
Важно!
- Для регистрации на Портале SberAPI не нужно использовать СберБизнес ID.
- Рекомендуем зарегистрировать аккаунт на общую/техническую электронную почту.
- Необходимо получить только Client ID и сертификат. Client Secret сохранять и оформлять подписку Сбер ID на Портале SberAPI не нужно.
- Зарегистрировать организацию на портале Сбер ID. При регистрации приложения используйте Client ID, полученный на предыдущем шаге, Client Secret для интеграции вы получите на портале Сбер ID.
- Подписать оферту через ЭДО по инструкции на портале Сбер ID.
- Реализовать получение кода авторизации, токенов и данных пользователя на вашем ресурсе.
- Реализовать подтверждение успешного входа пользователя на вашем ресурсе.
- Предоставить пользователям интерфейс входа по Сбер 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. Сервер партнера авторизует клиента у себя в сервисе и возвращает успешный ответ в мобильное приложение (зависит от бизнес-логики партнера). |