ym88659208ym87991671
Автовход на сайт партнера | Документация для разработчиков

Автовход на сайт партнера

Обновлено 9 октября 2024

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

Пример пользовательского сценария (с автовходом по Сбер ID):

Пререквизит:

  • Пользователь авторизовался на одном из сторонних интернет ресурсов, на котором реализован вход по Сбер ID
  • Сохранется cookie файл со специальным идентификатором пользователя в браузере
  1. При открытии web-сайта партнер загружает скрипт, формирующий URL с параметрами авторизации, который ведет на страницу автоматического входа по Сбер ID
  2. Партнер выполняет редирект пользователя на страницу автоматического входа по Сбер ID (id.sber.ru)
  3. Сбер ID пытается бесшовно аутентифицировать пользователя по cookies, установленным на id.sber.ru
  4. В результате успешного входа Сбер ID выполняет обратный редирект на сервис партнера по адресу, указанному в параметре redirect_uri. В ссылке партнеру передаются параметры state и code
  5. В случае ошибки входа Сбер ID также выполняет обратный редирект на сервис партнера по адресу, указанному в параметре redirect_uri. В ссылке партнеру передается параметр error = sso_error

Пример реализации

Бизнес-ценность сценария

Исследования показывают, что 25% пользователей ЕСОМ сайтов бросают корзины при требовании сайта создать аккаунт. Автовход решает эту проблему на 100% - теперь при наличии cookie в браузере пользователь будет автоматически и незаметно для самого пользователя аутентифицирован по Сбер ID, что позволит пропустить шаг авторизации на сайте при совершении покупки и вырастить конверсию в покупку.

1. Подготовка запроса

  • Для выполнения автовхода не требуется серверный рендеринг, вся логика может выполняться на фронте
  • В данном сценарии формирование ссылки авторизации происходит без использования JS SDK

Партнер может выполнять редирект на страницу входа Сбер ID с несколькими целями:

  1. Автовход. Выполняется, когда партнеру необходимо авторизовать пользователя на своем web-сайте.
  2. Автоподогрев. Выполянется, когда пользователь уже авторизован на web-сайте партнера, с целью подогрева cookies Сбер ID. Частоту подогрева можно определять как 1/3 от времени жизни авторизационной сессии партнера.

Партнер формирует ссылку с параметрами авторизации и выполняет редирект на страницу входа по Сбер ID.

В ссылку необходимо включить дополнительные параметры:

  • prompt Параметр всегда принимает значение light
  • machineclick Параметр принимает значение 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. Приостановка автовхода

Партнер должен временно остановить вызов автовхода и автоподогрева, если произошло одно из событий:

  1. Последняя попытка автовхода или автоподогрева завершилась ошибкой
  2. Пользователь выполнил выход из своего аккаунта на web-сайте партнера

5. Работа с другими бесшовными сценариями

Если партнер поддерживает одновременно сценарий автовхода и один из сценариев бесшовного перехода:

  1. sbol2web (Бесшовный переход из МП СБОЛ в веб Партнера)
  2. app2web (Бесшовный переход из МП Партнера 1 в веб Партнера 2)

Необходимо учесть, что в момент, когда партнер в вебе получает ссылку с Транзитным Токеном, необходимо в первую очередь провести попытку аутентификации по Транзитному Токену (не запуская автовход). В случае, если аутентификация по Транзитному Токену завершилась неуспешно, Партнер может попробовать аутентифицировать пользователя через автовход, выполнив повторный редирект на id.sber.ru.

6. Тестирование

До выхода в ПРОМ необходимо провести тестирование на стенде ПСИ. Подробнее о подключении к ПСИ стенду.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.