ym88659208ym87991671
Аутентификация app2webview | Документация для разработчиков

Аутентификация на веб-странице партнера внутри мобильного приложения Сбербанк Онлайн (App to webview)

Обновлено 7 декабря 2023

Внутри мобильного приложения Сбербанк Онлайн есть возможность открывать сайт партнера во встроенном браузере (Safari View Controller/Google Chrome Custom Tabs) по клику на различные баннеры.

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

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

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

Для открытия веб-страницы Сбер ID в браузере внутри мобильного приложения Сбербанк Онлайн следует вызывать обычную ссылку, а не универсальную (см. сценарий mWeb to App).

Сценарий:

  1. партнер размещает внутри приложения Сбербанк Онлайн на баннер (сториз, каталог, ссылка в чате и т.д.) специальный deeplink вида sberbankonline://sberbankid/sso?webLink=https%3A%2F%2Fpartner.ru%2F&source=banner.
  2. Клиент внутри мобильного приложения Сбербанк Онлайн нажимает на какой-либо баннер (сториз, каталог, ссылка в чате и т.д.).
  3. В результате в Safari View Controller/Google Chrome Custom Tabs вызывается сервис партнера указаный в параметре webLink.
  4. Сервис партнера по входным параметрам понимает, что необходимо сформировать специальный deeplink для бесшовной авторизации клиента (подробности ниже).
  5. После формирования специального deeplink'а сервис партнера сразу его вызывает без необходимости каких либо действий со стороны клиента.
  6. Вызов обратного диплинка закроет Safari View Controller/Google Chrome Custom Tabs для клиента и авторизует его по активной сессии в приложения Сбербанк Онлайн.
  7. Успешно авторизовавшись, клиент вернется в Safari View Controller/Google Chrome Custom Tabs в сервис партнера вместе с auth_code.

Для формирования deeplink'а необходимо выбрать хост, а также указать дополнительные параметры.

Хосты существуют трех видов:

  • sberbankonline://sberbankid/sso — универсальный deeplink для IOS и Android;
  • sbolonline://sberbankid/sso - deeplink для IOS с приложением СБОЛ
  • sberbankid/sso — если на Android возникла ошибка обработки deeplink выше, то можно попробовать использовать этот вариант для Android;
  • android-app://ru.sberbankmobile/android-app/ru.sberbankmobile/sberbankid/sso — если на Android возникла ошибка обработки deeplink выше, то можно попробовать использовать этот вариант для Android.
Название параметраОписание
appLinkДиплинк на приложение партнера
webLinkВеб-ссылка на сайт партнера
storeLinkВеб-ссылка на магазин для установки конкретного приложения партнера
oneLinkВеб-ссылка на ресурс, самостоятельно реализующий выбор запуска ресурса партнера (апп/веб/стор).

Например, такой вариант подойдет партнерам, которые работают через механизм AppsFlyer OneLink

Приоритеты обработки параметров на стороне Сбер ID по мере убывания

  • если пришел oneLink, для перехода на ресурс партнера будет использован он
  • если параметров выше нет, а пришел appLink, выполняется попытка перехода в приложение партнера. Если это невозможно (например приложения партнера нет на устройства), процедура продолжается
  • если параметров выше нет или запуск приложения неуспешен, а пришел webLink, выполняется переход на сайт партнера
  • если параметров выше нет или запуск приложения неуспешен, а пришел storeLink, выполняется переход в магазин
  • если ничего нет, будет диалог об ошибке

После перехода по ссылке, размещенной в приложении Сбербанк Онлайн, клиент попадает в сервис партнера в Safari View Controller/Google Chrome Custom Tabs по ссылке, указаной в параметре webLink. При этом к ссылке, указаной партнером, автоматически добавится парметр sberIDRedirect.

sberIDRedirect — содержит в себе хост deeplink'а.

Для формирования обратного deeplink'а и получения auth_code необходимо:

  1. Взять хост из параметра sberIDRedirect;
  2. Добавить к нему стандартные OIDC параметры;
  3. Вызвать получившийся deeplink без явного участия клиента (автоматически).

Пример ниже может не соответствовать реальному диплинку и нужен исключительно для примерной визуалиции процесса.

sberbankidlogin://sberbankidsso? response_type=code &scope=openid phones place_of_birth gender
&client_id=AAAABBBB-XXXX-YYYY-ZZZZ-A12A618A4C3C &state=UhdlDQS6vG4m&nonce=TGfhfBxr5ak1
&redirect_uri=https://exapmle.com/external_login
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.