Автовход на сайт партнера
Партнер может внедрить на свой web-сайт автовход по Сбер ID, чтобы пользователь мог бесшовно (без ввода логина и пароля) авторизоваться на сайте.
Пример пользовательского сценария (с автовходом по Сбер ID):
Пререквизит:
- Пользователь авторизовался на одном из сторонних интернет ресурсов, на котором реализован вход по Сбер ID
- Сохранется cookie файл со специальным идентификатором пользователя в браузере
- При открытии web-сайта партнер загружает скрипт, формирующий URL с параметрами авторизации, который ведет на страницу автоматического входа по Сбер ID
- Партнер выполняет редирект пользователя на страницу автоматического входа по Сбер ID (id.sber.ru)
- Сбер ID пытается бесшовно аутентифицировать пользователя по cookies, установленным на id.sber.ru
- В результате успешного входа Сбер ID выполняет обратный редирект на сервис партнера по адресу, указанному в параметре
redirect_uri
. В ссылке партнеру передаются параметрыstate
иcode
- В случае ошибки входа Сбер ID также выполняет обратный редирект на сервис партнера по адресу, указанному в параметре
redirect_uri
. В ссылке партнеру передается параметрerror = sso_error
Пример реализации
Бизнес-ценность сценария
Исследования показывают, что 25% пользователей ЕСОМ сайтов бросают корзины при требовании сайта создать аккаунт. Автовход решает эту проблему на 100% - теперь при наличии cookie в браузере пользователь будет автоматически и незаметно для самого пользователя аутентифицирован по Сбер ID, что позволит пропустить шаг авторизации на сайте при совершении покупки и вырастить конверсию в покупку.
1. Подготовка запроса
- Для выполнения автовхода не требуется серверный рендеринг, вся логика может выполняться на фронте
- В данном сценарии формирование ссылки авторизации происходит без использования JS SDK
Партнер может выполнять редирект на страницу входа Сбер ID с несколькими целями:
- Автовход. Выполняется, когда партнеру необходимо авторизовать пользователя на своем web-сайте.
- Автоподогрев. Выполянется, когда пользователь уже авторизован на web-сайте партнера, с целью подогрева cookies Сбер ID. Частоту подогрева можно определять как 1/3 от времени жизни авторизационной сессии партнера.
Партнер формирует ссылку с параметрами авторизации и выполняет редирект на страницу входа по Сбер ID.
В ссылку необходимо включить дополнительные параметры:
prompt
Параметр всегда принимает значение lightmachineclick
Параметр принимает значение aggressivelogin (если вызывается автовход) или cookie2autoupdate (если вызывается автоподогрев)
https://id.sber.ru/CSAFront/oidc/authorize.do?
prompt=light
&response_type=code
&client_type=PRIVATE
&client_id=40c1d5da-1532-11eb-adc1-0242ac120002
&state=E45DFF12891D4325A90BD0CEFC3CBF2B
&redirect_uri=https%3A%2F%2Fwww.sberbank.ru%2Fru%2Fperson
&scope=openid%2Bmobile%2Bbirthdate%2Bemail%2Bgender%2Bname
&nonce=C56004DE43A64CB68A035060D6B05F79
&machineClick=cookie2autoupdate
2. Пинг Сбер ID перед редиректом
Для выполнения этого шага необходимо предварительно передать команде Сбер ID список адресов, откуда партнер будет осуществлять пинг
Партнер выполняет тестовый запрос с фронта на эндпойнт /CSAFront/oidc/authorize.do перед редиректом на лайт-страницу, используя метод HEAD.
curl --location --head 'https://id.sber.ru/CSAFront/oidc/authorize.do?
prompt=light
&response_type=code
&client_type=PRIVATE
&client_id=40c1d5da-1532-11eb-adc1-0242ac120002
&state=E45DFF12891D4325A90BD0CEFC3CBF2B
&redirect_uri=https%3A%2F%2Fwww.sberbank.ru%2Fru%2Fperson
&scope=openid%2Bmobile%2Bbirthdate%2Bemail%2Bgender%2Bname
&nonce=C56004DE43A64CB68A035060D6B05F79
&machineClick=cookie2autoupdate'
Таймаут вызова - 1 секунда. В случае, если HEAD-запрос завершился ошибкой, автовход не вызывается.
3. Обработка ответа от Сбер ID
В результате обработки запроса SberID выполняет обратный редирект на ресурс партнера, используя значение параметра redirect_uri
. В ссылке передается одно из значений:
code
,state
- в случае, если бесшовная авторизация прошла успешно
https://partner.ru/?state=qDs9EXe944Hhwki00HB7lhESFfkSpzFlMmcK08egXfg&code=690063D0-5EAA-443A-96A4-A0860C86944
error = sso_error
- в случае, если не удалось авторизовать пользователя бесшовно
https://partner.ru/?error=sso_error
4. Приостановка автовхода
Партнер должен временно остановить вызов автовхода и автоподогрева, если произошло одно из событий:
- Последняя попытка автовхода или автоподогрева завершилась ошибкой
- Пользователь выполнил выход из своего аккаунта на web-сайте партнера
5. Работа с другими бесшовными сценариями
Если партнер поддерживает одновременно сценарий автовхода и один из сценариев бесшовного перехода:
- sbol2web (Бесшовный переход из МП СБОЛ в веб Партнера)
- app2web (Бесшовный переход из МП Партнера 1 в веб Партнера 2)
Необходимо учесть, что в момент, когда партнер в вебе получает ссылку с Транзитным Токеном, необходимо в первую очередь провести попытку аутентификации по Транзитному Токену (не запуская автовход). В случае, если аутентификация по Транзитному Токену завершилась неуспешно, Партнер может попробовать аутентифицировать пользователя через автовход, выполнив повторный редирект на id.sber.ru.
6. Тестирование
До выхода в ПРОМ необходимо провести тестирование на стенде ПСИ. Подробнее о подключении к ПСИ стенду.