Автовход на сайт партнера
Партнер может внедрить на свой web-сайт автовход по Сбер ID, чтобы пользователь мог бесшовно (без ввода логина и пароля) авторизоваться на сайте. Если у вас внедрена старая версия автовхода через JS SDK, необходимо запланировать переход на новую версию, описанную в этом разделе. Новая версия автовхода реализуется через быстрый редирект на страницу Сбер iD, что позволяет ей работать в любых браузерах, независимо от политики браузеров относительно использования third-party cookies.
Пример пользовательского сценария (с автовходом по Сбер ID):
Пререквизит:
- Пользователь авторизовался на одном из сторонних интернет ресурсов, на котором реализован вход по Сбер ID
- В браузере пользователя есть cookie файл Сбер ID со специальным идентификатором пользователя
- При открытии web-сайта партнер проверяет необходимость проведения авторизации пользователя на сайте. Если авторизация необходима, партнер загружает на фронт небольшой скрипт
- Загруженный скрипт при необходимости выполняет отброс метрик (например, Yandex метрика), а затем выполняет пинг Сбер ID
- В случае успешного пинга, партнер формирует URL для авторизации и выполняет редирект пользователя со своего фронта на страницу автоматического входа по Сбер ID (id.sber.ru)
- Сбер ID пытается бесшовно аутентифицировать пользователя по cookies, установленным на id.sber.ru
- В результате успешного входа Сбер ID выполняет обратный редирект на сервис партнера по адресу, указанному в параметре
redirect_uri
. В ссылке партнеру передаются параметрыstate
иcode
- В случае ошибки входа Сбер ID также выполняет обратный редирект на сервис партнера по адресу, указанному в параметре
redirect_uri
. В ссылке партнеру передается параметрerror = sso_error
Пример реализации
На видео представлен Автовход по лайт-редиректу на сайте GigaChat.
00:02 Партнер выполняет редирект на id.sber.ru
00:03 Сбер ID осуществляет проверку наличия cookie
00:04 Cбер ID выполняет обратный редирект на сайт партнера
00:04-00:08 Партнер прогружает элементы страницы своей веб-поверхности (постлогин зона)
Бизнес-ценность сценария
Исследования показывают, что 25% пользователей ЕСОМ сайтов бросают корзины при требовании сайта создать аккаунт. Автовход решает эту проблему на 100% - теперь при наличии cookie в браузере пользователь будет автоматически и незаметно для самого пользователя аутентифицирован по Сбер ID, что позволит пропустить шаг авторизации на сайте при совершении покупки и вырастить конверсию в покупку.
Автовход нужно внедрять не только на главную страницу сайта, но и на другие страницы, куда пользователи могут попадать из поисковиков или по ссылкам с других сайтов.
Автовход является cookie-зависимым сценарием, то есть при отсутствии cookie в браузере технология не сможет отработать. Cookie живет 30 дней. Чтобы продлить срок ее жизни необходимо подогревать cookie при каждом пользовательском входе, в этом случае срок жизни будет отсчитываться заново с каждого нового входа/подогрева, по сути, стремясь сделать его бесконечным.
Автоподогрев допустимо внедрять только если Сбер ID является единственным способом входа на партнера.
1. Пинг Сбер ID перед редиректом
Для выполнения этого шага необходимо написать на почту support_sberid@sber.ru письмо с темой «Активация автовхода через лайт-редирект». В теме письма необходимо указать ИНН партнера.
В письме указать следующие данные (для всех стендов Cбер ID, с которыми интегрирован партнер):
- Список доменов, откуда будет выполняться пинг
- Зарегистрированные
client_id
партнера
Партнер выполняет тестовый запрос с фронта на эндпойнт /CSAFront/oidc/authorize.do перед редиректом на лайт-страницу, используя метод HEAD.
curl --location --head 'https://id.sber.ru/CSAFront/oidc/authorize.do'
Таймаут вызова - 500 мс. В случае, если HEAD-запрос завершился ошибкой, автовход не вызывается и приостанавливается.
2. Подготовка запроса
Партнер формирует ссылку, по которой будет выполняться редирект с целью автовход или автоподогрева.
- Для выполнения автовхода не требуется серверный рендеринг, вся логика может выполняться на фронте
- В данном сценарии формирование ссылки авторизации происходит без использования JS SDK
Партнер может выполнять редирект на страницу входа Сбер ID с несколькими целями:
- Автовход. Выполняется, когда партнеру необходимо авторизовать пользователя на своем web-сайте.
- Автоподогрев. Выполняется, когда пользователь уже авторизован на web-сайте партнера, с целью подогрева cookies Сбер ID. Подогрев необходимо выполнять при каждом обновлении страницы сайта партнера, но не чаще одного раза в 7 дней.
Партнер формирует ссылку с параметрами авторизации и выполняет редирект на страницу входа по Сбер 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
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-сайте партнера
Пример реализации: После выхода пользователя из аккаунта партнер устанавливает на своем домене cookie с названием "logout_flag" и временем жизни 4 часа. При следующем обновлении страницы партер проверяет, установлена ли данная cookie. Если установлена - партнер не запускает автовход.
5. Работа с другими бесшовными сценариями
Если партнер поддерживает одновременно сценарий автовхода и один из сценариев бесшовного перехода:
- sbol2web (Бесшовный переход из МП СБОЛ в веб Партнера)
- app2web (Бесшовный переход из МП Партнера 1 в веб Партнера 2)
Необходимо учесть, что в момент, когда партнер в вебе получает ссылку с Транзитным Токеном, нужно в первую очередь провести попытку аутентификации по Транзитному Токену (не запуская автовход). В случае, если аутентификация по Транзитному Токену завершилась неуспешно, партнер может попробовать аутентифицировать пользователя через автовход, выполнив повторный редирект на id.sber.ru.
6. Тестирование
До выхода в ПРОМ необходимо провести тестирование на стенде ПСИ. Подробнее о подключении к ПСИ стенду.
Кейсы для самопроверки
- У пользователя нет cookie на id.sber.ru. Партнер вызывает автовход. Партнер получает в ответе параметр
error
и загружает пре-логин зону сайта. Обновить страницу сайта. Партнер не вызывает автовход, так как недавно была совершена неудачная попытка автовхода. - Получить для пользователя cookie на id.sber.ru. Партнер вызывает автовход. Партнер получает в ответе параметр
code
иstate
. Партнер обмениваетcode
на токены Cбер ID, получает информацию о пользователе и загружает пост-логин зону сайта. - Пользователь авторизован на сайте партнера. Пользователь выполняет выход из своего аккаунта и обновляет страницу. Партнер не вызывает автовход, так как недавно был выполнен разлогин.
7. Пример реализации скрипта
Вы можете воспользоваться готовым примером реализации скрипта для упрощения процесса разработки.