Доработки сайта партнера для поддержки sbol2web
Для того, чтобы МП СБОЛ смог открыть сайт партнера по webLink, необходимо выполнить доработки на сайте:
- Научить сайт открываться по
webLink - Обработать параметры
sberIDRedirectиtoken - Провести аутентификацию пользователя по Сбер ID
1. Научить сайт открываться по webLink
Создайте ссылку на сайт партнера - webLink, следуя инструкции.
В момент бесшовного перехода из МП СБОЛ на сайт партнера, МП СБОЛ добавляет в ссылку webLink параметры sberIDRedirect (обязательно) и параметр token (опционально), а затем открывает ее во встроенном браузере.
https://partner.ru/auth?
type=auto
&to=%2Fcatalog
&sberIDRedirect=https%3A%2F%2Fid.sber.ru
&token=dn1j2n3jn123j21n3
Значение параметра sberIDRedirect может динамически меняться, нельзя завязываться на какое-то конкретное значение этого параметра. В данном параметре может прийти как ссылка на сайт, так и deeplink.
2. Обработать параметры sberIDRedirect и token
Сайт партнера должен выполнить запрос на бесшовную аутентификацию пользователя по Сбер ID. Для этого сайт партнера анализирует ссылку на наличие параметров sberIDRedirect и token. Партнер должен извлечь из ссылки параметр sberIDRedirect и использовать значение этого параметра в качестве хоста для перенаправления на бесшовную аутентификацию. Партнер формирует ссылку для аутентификации, добавляя к sberIDRedirect свои OIDC параметры, а также параметр token (если он пришел в ссылке): [sberIDRedirectUri] + ? + token + OIDC параметры. Редирект на аутентификацию должен происходить автоматически, без дополнительных действий пользователя.
Параметр token необходимо передавать в ссылке на аутентификацию как query-параметр (как и другие OIDC-параметры).
Если token не пришел из МП СБОЛ или пришел пустым, передавать его не нужно.
[Значение из параметра sberIDRedirect]?
scope=openid name phones email
&token=[значение из параметра token]
&client_id=*******-EEA3-D4EC-C535-A12A618A4C3C
&response_type=code
&state=UhdlDQS6vG4m
&nonce=TGfhfBxr5ak1
&redirect_uri=https%3A%2F%2Fpartner.ru%2Fauth%3Futm_source%3DQwerty_478Qwerty_478Qwerty_478Qwerty_478Qwerty_4789%26utm_medium%3DAsdfgh_123%26utm_campaign%3DZxcvbn_789
Возможна ситуация, когда пользователь, совершающий переход из МП СБОЛ, уже авторизован на сайте партнера. В этом случае допускается не перенаправлять пользователя на повторную аутентификацию по Сбер ID и сразу увести его на целевую страницу.
Если webLink содержит параметр to, партнер может сохранить это значение перед редиректом на бесшовную аутентификацию в связке со state(например, на backend или в cookie). Тогда при возврате пользователя на сайт партнера после успешной аутентификации, партнер сможет восстановить по state параметр to и направить пользователя на целевую страницу.
3. Авторизация пользователя по Сбер ID
В результате успешной аутентификации пользователя, Сбер ID открывает во встроенном браузере сайт партнера (адрес, указанный в redirect_uri) с параметрами state и code.
https://partner.ru/auth?
utm_source=Qwerty_478Qwerty_478Qwerty_478Qwerty_478Qwerty_4789
&utm_medium=Asdfgh_123
&utm_campaign=Zxcvbn_789
&code=qwdjwqe1j2321j3
&state=adh321h32h13
Партнер может использовать значение state для восстановления значения to, чтобы определить целевую страницу сайта, куда должен быть перенаправлен пользователь.
Для бесшовной аутентификации по Сбер ID у пользователя должна быть принята оферта Удобный доступ. Если оферта не принята, то при выполнении бесшовного перехода у пользователя будет запрошено принятие оферты.
Партнер использует полученный code для завершения авторизации пользователя