Files
liptnotes/UBI.md
Марк Ч. 09156f28ee initialize
2026-04-06 19:30:32 +03:00

7.2 KiB
Raw Blame History

Цель встречи: Согласовать реализацию для выпуска УКЭП через ЕБС.

Ситуация: Для регистрации и входа в новом приложении УКЭП предполагаются разные сценарии обработки. Сначала происходит идентификация в УБИ, а затем регистрация пользователя. Сначала происходит вход/восстановление пароля, а затем идентификация в УБИ как второй фактор.

Вводные: используется простой сценарий идентификации без проверок на стороне ИС.

В зависимости от сценария предполагаются разные страницы с разными действиями для пользователя: прекратить, зарегистрироваться, войти в ЛК.

Всего есть три вида конечных страниц в рамках прохождения УБИ:

SucessUrl страница успеха [предполагаем, что на стороне приложения] успешная идентификация на стороне банка, перенаправление на страницу с product_id, product_type, token ErrorUrl страница ошибки [предполагаем, что на стороне приложения] ошибки во время прохождения идентификации FailureUrl страница неуспеха, невозможно провести удалённую идентификацию (в случае отметки о налоговом резидентстве в опроснике может ли быть нашим случаем? используется ли опросник при выпуске УКЭП? + при разрывном сценарии (не наш случай, используется простой сценарий))

Предложение следующее:

Вопрос: Может ли быть несколько successUrl и несколько errorUrl? Может. Определение URL страницы успеха или ошибки возможно в зависимости от переданного параметра product_type в ссылке на старт сценария. Для этого в настройки success-url и error-url можно добавить шаблон с if-else конструкцией. Подробное описание настройки в документе «Типовое решение УБИ. Руководство по инсталляции» 5.4.7. Описание расширенных настроек сервиса «Маршрутизатор», 5.4.7.1. Настройка нескольких страниц успеха и ошибки.

Краткий ответ: может. См. стр. 37 документа УБИ. Руководство по инсталляции.

Как будет работать?

  1. Использовать разные product_type для registration и login
  2. Использовать конструкцию if else в настройках маршуртузитора для sucess_page и error_page

successurl: <#if productType == "test1">https://test1.ru/success<#elseif productType == "test2">https://test2.ru/success<#else>https://test3.ru</#if>

errorurl: <#if productType == "test1">https://test1.ru/success**<#elseif** productType == "test2">https://test2.ru/success**<#else>https://test3.ru</#if>**

actor "Клиент" as client
participant "Банковское приложение" as bank
participant "Gate-Out" as gateout
participant "Модуль УБИ" as ubi

== Сценарий регистрации == 
client -> bank: Переходит на страницу регистрации
bank --> client: "Страница пройдите идентификацию через ЕБС"
client -> bank: Нажимает "Пройти идентификацию"
bank -> ubi: Редирект на модуль_уби/api/v1/authentication/start?bank_id=&product_id=&product_type=**registration**

ubi --> client: Отображает страницу идентификации
note right ubi: Включает в себя\nвход в ЕСИА и тд
client -> ubi: Проходит идентификацию

note over gateout, ubi #129453: Успех идентификации 

ubi -> gateout: Передаёт сведения из ЕСИА
gateout -> bank: POST /clients/info [JSON]
bank -> bank: Создаёт ПД клиента
bank --> gateout: 200 OK [XML]
gateout --> ubi: 200 OK

ubi -> ubi: Определяет по product_type в Маршрутизаторе sucess_url
ubi --> bank: sucess_url_**registration**?bank_id=&product_id&pdroduct_type=**registration**&token=
bank -> client: Показывает страницу регистрации пользователя

note over gateout, ubi #f04a4a: Ошибка идентификации 

ubi -> ubi: Определяет по product_type в Маршрутизаторе error_url
ubi --> bank: error_url_**registration**
bank -> client: Показывает страницу ошибки идентификации ЕБС
actor "Клиент" as client
participant "Банковское приложение" as bank
participant "Gate-Out" as gateout
participant "Модуль УБИ" as ubi

== Сценарий входа == 
client -> bank: Переходит на страницу входа и аутентифицируется
bank --> client: "Страница пройдите идентификацию через ЕБС" как 2 фактор
client -> bank: Нажимает "Пройти идентификацию"
bank -> ubi: Редирект на модуль_уби/api/v1/authentication/start?bank_id=&product_id=&product_type=**login**

ubi --> client: Отображает страницу идентификации
note right ubi: Включает в себя\nвход в ЕСИА и тд
client -> ubi: Проходит идентификацию

note over gateout, ubi #129453: Успех идентификации 

ubi -> gateout: Передаёт сведения из ЕСИА
gateout -> bank: POST /clients/info [JSON]
bank -> bank: Метчит ПД клиента
bank --> gateout: 200 OK [XML]
gateout --> ubi: 200 OK

ubi -> ubi: Определяет по product_type в Маршрутизаторе sucess_url
ubi --> bank: sucess_url_login?bank_id=&product_id&pdroduct_type=**login**&token=
bank -> client: Показывает страницу регистрации пользователя

note over gateout, ubi #f04a4a: Ошибка идентификации 

ubi -> ubi: Определяет по product_type в Маршрутизаторе error_url
ubi --> bank: error_url_**login**
bank -> client: Показывает страницу ошибки идентификации ЕБС

Возможен ли такой вариант?