# Test Mobile Network Operator

## 2023.10.18

- Улучшен внутренний механизм работы с ошибками

## 2023.08.29

- Для SI режима добавлена возможность ввода неправильного смс кода некоторое количество раз указанное в настройке SMS_OTP_ATTEMPTS_COUNT

## 2023.03.23

- Исправлены ответы возвращающиеся на запросы к /kyc-match-split с использованием неуществующих claim'ов
и не поддерживающихся значений JWE заголовков

## 2023.01.30

- Добавлена поддержка аутентификатора SEAM_OK для настройки AUTHENTICATION_METHOD

## 2022.10.21

- Исправлена и обновлена документация.
- Исправлен формат логирования входящих запросов на уровне debug.

## 2022.09.15

- Добавлена настройка USERINFO_DATA_FORMAT для выбора формата ответа при обращении по адресам 
/kyc и /premiuminfo, а также формата ожидаемого запроса на /kyc. Возможные значения: 
    - json
    - jwe
    - nested_jwt

- Вместо параметров конфигурации CLIENT_JWKS_SIG_URL и CLIENT_JWKS_ENC_URL добавлены параметры CLIENT_JWKS_URL_AUTH и
CLIENT_JWKS_URL_USERINFO

- При обращении на эндпоинт проверки sms-otp кода в режиме megafon и standart возвращаются одинаковые ошибки.

## 2022.07.11

- Добавлена настройка AUTHENTICATION_METHOD для выбора аутентификатора. Возможные значения:
    - SIM_OK
    - USSD_OK
    - SMS_OTP

Для SI авторизации, в случае выбора SMS_OTP для разных режимов MOBILEID_MODE будет отличаться ответ на запрос si-authorize, и
формат SMS-OTP нотификации.

## 2022.06.16

- Добавлен режим ERROR_MODE для имитации ответов сервиса при возникновении ошибок, отказа пользователя предоставить
  согласие, либо отмены им авторизации.

## 2022.05.19

- В режиме MOBILEID_MODE=megafon в тело SMSOTP нотификации добавлен correlation_id, присланный сервис-провайдером.
- Поля auth_req_id и correlation_id сделаны отличающимися в том же теле от соответствующих полей в блоке send.

## 2022.02.21

- Добавлен параметр environment изменяющий режим работы:
    - MOBILEID_MODE - режим работы mobileID. По умолчанию: standart. Доуступные значения:
        - standart - стандартный режим mobileID. Авторизация по Push. Автоматическое подтверждение через заданный
          интервал времени. Доп подтверждение по SMS-OTP не требуется.
        - megafon - режим работы в котором эмитируется работа аггрегатора МТС, за которым стоит Мегафон. Происходит доп
          нотификация сервис провайдера, с параметрами необходимыми для SMS-OTP подтверждения - verify. Если вызова не
          произведено, через заданный интервал придёт стандартная MobileID нотификация с ошибкой по таймауту.
        - pure-megafon - режим работы мегафон, служит для внутреннего тестирования. Изменён формат si-authorize ответа.
          Для подтверждения требуется доп вызов verify. Если вызова не произведено, через заданный интервал придёт
          стандартная MobileID нотификация с ошибкой по таймауту
- Добавлен параметр environment для режимов работы megafon и pure-megafon
    - SMS_OTP_CODE - SMS OTP код, для подвтерждения SMS-OTP. По умолчанию: 1234
- Добавлен endpoint /verify для подвреждения авторизации по SMS-OTP, для режимов работы megafon и pure-megafon
- Добавлен параметр environment для доп. нотификации сервис провайдера, в режиме megafon:
    - CLIENT_SMS_OTP_NOTIFICATION_URL - SMS-OTP Notification URL адрес. Адрес используется для отправки дополнительной
      нотификации о необходимости перехода на SMS-OTP подверждение.

## 2021.10.25

- Изменён алгоритм шифрования ENCR_MSISDN. Были добавлены 2 переменные:
    * CLIENT_ENC_MSISDN_PUBLIC_KEY - для шифрования MSISDN перед его отправкой как ENCR_MSISDN в authorize-запросе.
      Публичный ключ можно получить в формате JWK через POST-запрос с Basic-авторизацией, отправленный на jwks_uri (
      /oidc/jwks).
    * CLIENT_ENC_MSISDN_PRIVATE_KEY - для расшифровки ENCR_MSISDN.

## 2021.08.25

- Добавлена возможность передавать ПДн (premiumInfo) и проводить верификацию данных (kyc) по одному Access Token при
  запросе соответствующих скоупов в запросе авторизации.

## 2021.07.28

- Добавлена поддержка передачи ПДн в зашифрованном виде (Content-Type: application/jwt) в запросе на верификацию
  данных (kyc).

## 2021.07.21

- В Token Response для DI режима или в SI Notification Request возвращается поле jwks_uri, если в запросе авторизации
  запрашивается mc_kyc_plain

## 2021.07.16

- Для DI- и SI-режима добавлена поддержка скоупа mc_kyc_plain.
- Реализован эндпоинт oidc/kyc-match-split. Аутентификация на эндпоинте реализована с помощью Bearer authentication, где
  хедер Authorization: "Bearer <access_token>"
  Теперь для верификации данных абонента можно передать POST-запрос с claims (например, {"given_name": "Иван", "
  family_name" : "Иванов"})
  и получить ответ в формате JSON (например, {"given_name_match" : "Y", "family_name_match":"N-NA"}), где:
    - Y - Match is successful (Успешное сравнение, значение полей совпадают)
    - N-NA - Match failed. Data is not available (Неуспешное сравнение, запрашиваемое поле отсутствует в персональных
      данных)
    - N-AV - Match failed. Data is available (Неуспешное сравнение, значения полей не совпадают)