/notification

Назначение

Запрос выполняется сервисом Мобильный ID по завершении асинхронной операции аутентификации пользователя в SI-режиме.

В зависимости от результатов аутентификации в составе запроса будут переданы accessToken и IDToken или информация об ошибке.

В качестве endpoint используется значение параметра notification_uri из исходного запроса, которое предварительно зарегистрировано в сервисе Мобильный ID.

Запрос. Положительный сценарий

Метод: POST
Endpoint: https://service-provider.io/notification_uri/
Авторизация: bearer {client_notification_token}

Заголовки

ПараметрОписаниеПример
AuthorizationТип авторизации и данные пользователя. В качестве значения bearer-токена используется значение параметра client_notification_token, предоставленное в исходном запросеBearer 53f4f85c-4fca-454e-92f5-3996e46f246c
Content-TypeТип передаваемого контента. По умолчанию application/json. По запросу может настроено на application/x-www-form-urlencodedapplication/json
X-Mobileid-Request-IdУникальный идентификатор запроса. Используется в рамках оказания технической поддержки0a1f42a5307e6d7435b6a20a1cbf8c78
X-Mobileid-Transaction-IdУникальный идентификатор транзакции. Используется в рамках оказания технической поддержки0b4f8e2d-2040-4e65-b404-055af6625e7e

Параметры запроса

ПараметрОписаниеОбязательныйПример
auth_req_idИдентификатор запроса аутентификации. Значение совпадает с значением, переданным в синхронном ответе на исходный запросДа932eb8e1-cc0c-4b95-9962-d89dabad4711
access_tokenТокен доступа к ресурсным эндпоинтам (premiuminfo / kyc-match-split)Да483e0943-b599-44cd-8daa-1850c1247263
token_typeТип токена. Единственное допустимое значение — “Bearer”ДаBearer
id_tokenID Token – объект, закодированный как JWT (JSON Web Token), содержащий идентификатор владельца номера (sub) и информацию о контексте аутентификации конечного пользователяДаeyJhbGciOiJSUzI1NiIsImtpZCI6InJzYTEiLCJ0eXAiOiJKV…Cw
expires_inЦелое число, показывающее время “жизни” accessToken в секундахДа300
jwks_uriДинамический HTTPS URL, где хранится ключ оператора для шифрования тела запроса на верификацию. Передаётся, если сценарий предусматривает возможность верификации данных пользователяНетhttps://idgw.mobileid.mts.ru/mc/oidc/jwks
leading_kyc_matchФлаг со значением true указывает на необходимость получения положительного ответа на запрос верификации данных пользователя перед обращением к /premiumInfoНетtrue
correlation_idУникальный сквозной идентификатор для всех запросов в рамках одной транзакции. Возвращается в случае, если одноименный параметр был использован в исходном запросе. Значение совпадает с значением, переданным в исходном запросеНет05c4ac02-9144-411c-9279-166ac637528f

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

POST https://service-provider.io/notification_uri/
Authorization: Bearer 53f4f85c-4fca-454e-92f5-3996e46f246c
X-Mobileid-Request-Id: 0a1f42a5307e6d7435b6a20a1cbf8c78
X-Mobileid-Transaction-Id: 0b4f8e2d-2040-4e65-b404-055af6625e7e
Content-Type: application/json
{
"auth_req_id": "932eb8e1-cc0c-4b95-9962-d89dabad4711",
"access_token": "483e0943-b599-44cd-8daa-1850c1247263",
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6InJzYTEiLCJ0eXAiOiJKV...Cw",
"token_type": "bearer",
"expires_in": 300,
"correlation_id": "05c4ac02-9144-411c-9279-166ac637528f"
}

Запрос. Негативный сценарий

Метод: POST
Endpoint: https://service-provider.io/notification_uri/
Авторизация: bearer {client_notification_token}

Заголовки

ПараметрОписаниеПример
AuthorizationТип авторизации и данные пользователя. В качестве значения bearer-токена используется значение параметра client_notification_token, предоставленное в исходном запросеBearer 53f4f85c-4fca-454e-92f5-3996e46f246c
Content-TypeТип передаваемого контента. По умолчанию application/json. По запросу может настроено на application/x-www-form-urlencodedapplication/json
X-Mobileid-Request-IdУникальный идентификатор запроса. Используется в рамках оказания технической поддержки0a1f42a5307e6d7435b6a20a1cbf8c78
X-Mobileid-Transaction-IdУникальный идентификатор транзакции. Используется в рамках оказания технической поддержки0b4f8e2d-2040-4e65-b404-055af6625e7e

Параметры запроса

ПараметрОписаниеОбязательныйПример
auth_req_idИдентификатор запроса аутентификации. Значение совпадает с значением, переданным в синхронном ответе на исходный запросДа932eb8e1-cc0c-4b95-9962-d89dabad4711
errorКатегория ошибкиДаaccess_denied
error_descriptionОписание ошибкиДаerror authentication
correlation_idУникальный сквозной идентификатор для всех запросов в рамках одной транзакции. Возвращается в случае, если одноименный параметр был использован в исходном запросе. Значение совпадает с значением, переданным в исходном запросеНет05c4ac02-9144-411c-9279-166ac637528f

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

POST https://service-provider.io/notification_uri/
Authorization: Bearer 53f4f85c-4fca-454e-92f5-3996e46f246c
X-Mobileid-Request-Id: 0a1f42a5307e6d7435b6a20a1cbf8c78
X-Mobileid-Transaction-Id: 0b4f8e2d-2040-4e65-b404-055af6625e7e
Content-Type: application/json
{
"auth_req_id": "932eb8e1-cc0c-4b95-9962-d89dabad4711",
"correlation_id": "05c4ac02-9144-411c-9279-166ac637528f",
"error": "access_denied",
"error_description": "error authentication"
}

Негативные сценарии и используемые значения error и error_description

СценарийHTTP-кодErrorError_description
За время транзакции не был получен ответ на аутентификационное испытание400access_deniedclient timeout
Получен отрицательный ответ на аутентификационное испытание400access_deniedthe client cancelled the authentication
Получена техническая ошибка при отправке аутентификационного сообщениялюбой негативный сценарий при попытке аутентификации посредством ussd400access_deniederror authentication
Исчерпаны попытки ввода одноразового кода из СМС400access_deniedthe client has run out of attempts to authorize by sms code
Симлесс единственный аутентификатор и в процессе обработки вызовы hhe_uri не удалось извлечь MSISDN400access_deniedHHE request failed
Симлесс единственный аутентификатор и переданный msisdn не совпадает с определенным из сети400access_deniedLogin hint doesn’t match
Внутренний сбой приложения500server_errorinternal Server Error

Успешный ответ

В случае успешной обработки запроса независимо от сценария сервис-провайдер должен ответить HTTP-кодом 200 или 204.

Сообщения об ошибках

Реализация остается на усмотрение сервис-провайдера.

Рекомендованные операции:

  • Проверка формата запроса;
  • Проверка наличия и времени жизни auth_req_id;
  • Проверка авторизации;
  • Проверка idToken’а.

Также рекомендуется при формировании ответов руководствоваться общей стилистикой API-контракта:

  • использовать HTTP-коды 4xx и 5xx;
  • включать в ответ параметры error и error_description с описанием ошибки.