/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-urlencoded | application/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_token | ID 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-urlencoded | application/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-код | Error | Error_description |
|---|---|---|---|
| За время транзакции не был получен ответ на аутентификационное испытание | 400 | access_denied | client timeout |
| Получен отрицательный ответ на аутентификационное испытание | 400 | access_denied | the client cancelled the authentication |
| Получена техническая ошибка при отправке аутентификационного сообщениялюбой негативный сценарий при попытке аутентификации посредством ussd | 400 | access_denied | error authentication |
| Исчерпаны попытки ввода одноразового кода из СМС | 400 | access_denied | the client has run out of attempts to authorize by sms code |
| Симлесс единственный аутентификатор и в процессе обработки вызовы hhe_uri не удалось извлечь MSISDN | 400 | access_denied | HHE request failed |
| Симлесс единственный аутентификатор и переданный msisdn не совпадает с определенным из сети | 400 | access_denied | Login hint doesn’t match |
| Внутренний сбой приложения | 500 | server_error | internal Server Error |
Успешный ответ
В случае успешной обработки запроса независимо от сценария сервис-провайдер должен ответить HTTP-кодом 200 или 204.
Сообщения об ошибках
Реализация остается на усмотрение сервис-провайдера.
Рекомендованные операции:
- Проверка формата запроса;
- Проверка наличия и времени жизни auth_req_id;
- Проверка авторизации;
- Проверка idToken’а.
Также рекомендуется при формировании ответов руководствоваться общей стилистикой API-контракта:
- использовать HTTP-коды 4xx и 5xx;
- включать в ответ параметры error и error_description с описанием ошибки.