Инструкция по взаимодействию с мобильным API ЕБС

Мобильное API предназначено для осуществления биометрической идентификации клиента в мобильном приложении с использованием официального SDK ЕБС, соответствует и полностью совместимо с типовым решением от ЕБС.

Взаимодействие с мобильным API должно производиться в соответствии с руководством пользователя по работе с библиотекой ЕБС.SDK.Адаптер. Скачать последнюю версию руководства и библиотеки можно с официального сайта ЕБС в разделе "документы -> софт".

Спецификация API в формате OpenAPI 3.0 доступна по URL: https://demo.gate.esia.pro/api-docs/index.html

Дополнительная информация по использованию мобильного SDK ЕБС

ЕСИА шлюз работает и совместим с вариантом SDK ЕБС.SDK.Адаптер (Android версия 1.0.0, iOS версия 1.0.1). Перед началом встраивания рекомендуется ознакомиться с официальной документацией по SDK. Нами проверена и гарантирована работа SDK в режиме VerificationRequestMode.CUSTOM. В этом режиме само приложение организует последовательность действий по проверке наличия установленного МП "Биометрия" и запросу необходимых разрешений.

Для тестирования клиентского мобильного приложения рекомендуется установить дистрибутив МП "Биометрия" для интеграционного тестирования (версия 2.3.3), которое доступно для скачивания на официальном сайте ЕБС в разделе "документы -> софт". Данный дистрибутив работает с тестовым контуром ЕБС в отличие от дистрибутива, который устанавливается из магазина приложений.

Подготовка к использованию ЕБС Mobile API

В административной панели шлюза в соотвествующей КИС, у которой включена поддержка ЕБС МП, необходимо добавить два URL возврата для получения результата верификации в клиентскую систему. Эти URL указываются при инициализации сессии /api/v1/vrf/create.

Описание API

ЕСИА шлюз предоставляет внутреннее и внешнее API для взаимодействия с мобильным приложением, мобильным SDK и МП "Биометрия".

Внешнее API используется для взаимодействия с мобильным SDK и МП "Биометрия". Внутреннее API предназначено для взаимодействия клиентской ИС (КИС) с ЕСИА шлюзом.

Процесс взаимодействия компонентов системы представлен на схеме:

activity diagram

Инициализация сессии идентификации со стороны клиентской ИС

Клиентская ИС получив запрос от пользователя системы из мобильного приложения (МП) на получение услуги принимает решение инициировать биометрическую верификацию пользователя.

POST /api/v1/vrf/create

В заголовке авторизации необходимо передать токен доступа к API:

Authorization: Bearer <токен доступа>

Значение токена доступа доступно в административной панели шлюза в разделе КИС -> Карточка КИС -> Токен доступа к API ЕБС МП.

Параметры передаются в теле запроса в формате JSON. Допустимые параметры:

  • sid - Идентификатор сессии. Формируется на стороне КИС;
  • dbo_ko_uri - внутренний URI КИС для получения результата биометрической идентификации и персональных данных пользователя *;
  • dbo_ko_public_uri - публичный (доступный из сети Интернет) URI, на который шлюз должен перенаправить пользователя в случае успешного завершения процесса удаленной идентификации или возникновения ошибки *.

    Важно: * Оба вышеописанных URI получения результата необходимо зарегистрировать в списке Пути возврата в настройках КИС.

Ответ приходит в формате JSON, дополнительно используются HTTP статусы для индикации ошибок:

{
  "code": "код ошибки",
  "message": "текстовое описание ошибки"
}
HTTP статус Код ошибки Описание
200   Всё хорошо
400 ADR-0002 URI перенаправления не разрешен
400 ADR-0200 Сессия уже существует
401 ADR-0003 Недействительный токен доступа. Ошибка аутентификации вызывающей стороны (ДБО КО или ИС КО) по токену доступа
500 ADR-0000 Внутренняя ошибка API

Пример запроса:

POST https://demo.gate.esia.pro/api/v1/vrf/create HTTP/1.1
Authorization: Bearer mts1r7zpya06kjq3h694n0b7go7edzk2
Content-Type: application/json
{
  "sid": "5b9dcd00-71a6-4293-ac6c-f367a2ebef7f",
  "dbo_ko_uri": "https://test.bank.ru/ebs-result",
  "dbo_ko_public_uri": "https://test.bank.ru/ebs-public-result"
}

Получение результата идентификации в клиентской ИС

По окончанию процесса верификации шлюз отправляет в клиентскую ИС результат верификации на переданный ранее в запросе инициализации сессии идентификации коллбэк dbo_ko_uri.

В теле запроса присутствует поле res_secret, этот идентификатор так же передаётся в мобильное приложение. Используя этот идентификатор, мобильное приложение позднее может запросить персональные данные пользователя у КИС.

POST <dbo_ko_uri>

Параметры передаются в теле запроса в формате JSON. Допустимые параметры:

  • sid - Обязательный параметр, строка. Идентификатор сессии изначально сгенерированный в КИС;
  • auth_result - Обязательный параметр, булево выражение. Результат процесса удаленной идентификации с использованием ЕСИА и ЕБС;
  • code - Необязательный параметр, строка. Присутствует только в случае возникновения ошибки выполнения процесса удаленной идентификации с использованием ЕСИА и ЕБС. Код ошибки;
  • message - Необязательный параметр, строка. Присутствует только в случае возникновения ошибки выполнения процесса удаленной идентификации с использованием ЕСИА и ЕБС. Описание ошибки;
  • res_secret - Необязательный параметр, строка. Присутствует только в случае успешного прохождения пользователем процесса удаленной идентификации с использованием ЕСИА и ЕБС. Параметр, с использованием которого далее происходит взаимодействие пользователя и КИС;
  • extended_result - Необязательный параметр, строка. Присутствует только в случае успешного прохождения пользователем процесса удаленной идентификации с использованием ЕСИА и ЕБС. Расширенный результат верификации, полученный от ЕБС, содержащий степени схожести (общая и по каждой из модальностей). Параметр передается в формате JWT токена;
  • user_data - Необязательный параметр. Присутствует только в случае успешного прохождения пользователем процесса удаленной идентификации с использованием ЕСИА и ЕБС. Полученные из ЕСИА ПДн пользователя. Также в данных пользователя присутствует расшифрованный результат верификации, полученный от ЕБС, содержащий степени схожести.

Пример запроса:

POST https://test.bank.ru/ebs-result HTTP/1.1
Content-Type: application/json

{
  "sid": "dc61c027-22e2-4eb6-9fda-6ad930301015",
  "auth_result": true,
  "res_secret": "bd852fe0-f612-013a-01d4-0242ac110004",
  "extended_result": "eyJraWQiOiJlM2UyYjg1MS1iMDNmLTRkZTAtOTM5Zi0xZmYzNDFmMjJkMmMiLCJ0eXAiOiJKV1QiLCJhbGciOiJHT1NUMzQxMF8yMDEyXzI1NiJ9.eyJyZXN1bHQiOnRydWUsInN1YiI6IjEwMDA1NTAzODMiLCJhdWQiOiIyNTA1MDEiLCJuYmYiOjE2NTk2MTA4OTksImlzcyI6IlVCU19ERVYiLCJtYXRjaCI6IntcIm92ZXJhbGxcIjowLjk5OTk5OTk5OTk0NDM1MTgsXCJmYWNlXCI6MC45OTk5OTkwMjIsXCJ2b2ljZVwiOjAuOTk5OTQzMX0iLCJleHAiOjE2NTk2MTE1MDAsImlhdCI6MTY1OTYxMDg5OH0.fFtjomYigoTa4wdHwgp4W_SIdPQmiLX4G0jzs9S26fUMEsOVuO3Hr5FxigCs8DM8O3-SrTIiYOxqSTw9jXjs6w",
  "user_data": {
    "stateFacts": [
      "EntityRoot"
    ],
    "firstName": "Константин",
    "middleName": "Константинович",
    "lastName": "Константинопольский",
    "birthDate": "01.01.1990",
    "birthPlace": "г. Большие Васюки",
    "gender": "M",
    "trusted": true,
    "citizenship": "RUS",
    "snils": "012-345-678 90",
    "inn": "123456789012",
    "updatedOn": 1657091110,
    "status": "REGISTERED",
    "verifying": false,
    "rIdDoc": 123456,
    "containsUpCfmCode": false,
    "eTag": "A57AA24477534FD93EFA23F49EDCBDEE4FB42592",
    "contacts": [
      {
        "stateFacts": [
          "Identifiable"
        ],
        "id": 12345678,
        "type": "MBT",
        "vrfStu": "VERIFIED",
        "value": "+7(123)4567890",
        "eTag": "DBDCA55E7EF7C27CA29CBA37DD5E4CDAA72FD535"
      }
    ],
    "mobile": "+7(123)4567890",
    "addresses": {},
    "documents": {
      "rf_passport": [
        {
          "stateFacts": [
            "Identifiable"
          ],
          "id": 123456,
          "type": "RF_PASSPORT",
          "vrfStu": "VERIFIED",
          "series": "6543",
          "number": "123456",
          "issueDate": "01.01.2008",
          "issueId": "612345",
          "issuedBy": "ОВД Центрального района города Большие Васюки",
          "eTag": "F53D4DB9D73744CAA49AE7ADE9773494C3F3A37F"
        }
      ]
    },
    "ebs_result": {
      "overall": 0.9999999999443518,
      "face": 0.999999022,
      "voice": 0.9999431
    }
  }
}
  • Инструкция по взаимодействию с мобильным API ЕБС
  • Дополнительная информация по использованию мобильного SDK ЕБС
  • Подготовка к использованию ЕБС Mobile API
  • Описание API
  • Инициализация сессии идентификации со стороны клиентской ИС
  • Получение результата идентификации в клиентской ИС