Инструменты пользователя

Инструменты сайта


iis-device-2fa

Это старая версия документа!


Автор: Галиев Б.А.

Схема взаимодействия ЕСИА с мобильным приложением

Аутентификация

Расположение:

POST /Device/Api/V1/Account/Login

Тело запроса:

{
  "username": "логин пользователя (ИНН)",
  "password": "пароль",
  "deviceId": "уникальный идентификатор устройства с помощью которого осуществляется вход",
  "deviceName": "наименование устройства для отображения в его личном кабинете"
}

Ответ:

{
  "requestId":"идентификатор запроса сгенерированный на стороне сервера",
  "body": "__тело ответа__ (смотреть ниже)",
  "succeeded":"флаг ошибки (в случае если ошибка не имеет никакого отношения к бизнес-логике самого API)",
  "errors" : [
    {
      "Code": "код ошибки (не число)",
      "Message": "описание ошибки"
    }
  ]
}

Тело ответа имеет базовый тип LoginResponse:

{
  "signInResult": "одно из значений перечисления (Succeeded, RequiresTwoFactor,IsLockedOut,IsNotAllowed,InvalidLoginAttempt)"
}

Если аутентификация прошла успешно body будет выглядеть следующим образом:

{
  "signInResult": "Succeeded",
  "persistentSessionToken" : "токен постоянной сессии который нужно сохранить на устройстве самым безопасным образом"
}

Если требуется двух-факторная аутентификация body будет выглядеть следующим образом:

{
  "signInResult":"RequiresTwoFactor",
  "twoFactorSessionToken" : "токен для временной сессии на период двух-факторной аутентификации (токен валиден в течение 30 минут)"
}

Неправильный логин или пароль:

{
  "signinResult":"InvalidLoginAttempt"
}

Аккаунт заблокирован в результате нескольких попыток неправильного входа:

{
  "signInResult":"IsLockedOut"
}

Аккаунт деактивирован:

{
  "signInResult":"IsNotAllowed"
}

Двух-факторная аутентификация

Получение информации о включенных методов 2-х факторной аутентификации пользователя Расположение:

POST /Device/Api/V1/Account/EnabledTwoFactorMethods

Тело запроса:

{
  "twoFactorSessionToken":"временная сессия полученая в результате аутентификации"
}

Пример ответа:

{
  "requestId":"идентификатор запроса сгенерированный на стороне сервера",
  "body": [
    {
      "Method":"метод 2-х факторной аутентификации принимающе одно из значений: Sms,Telegram",
      "Enabled":"флаг означающий включен этот метод или нет"
    }
  ],
  "succeeded":"флаг ошибки (в случае если ошибка не имеет никакого отношения к бизнес-логике самого API, это может быть ошибка валидации или ошибка InternalServerError и так. далее)",
  "errors" : [
    {
      "Code": "код ошибки (не число)",
      "Message": "описание ошибки"
    }
  ]
}

Инциация запроса на отправку верификационного кода по методу Sms Расположение: POST /Device/Api/V1/Sms/SendVerificationCode Тело запроса:

{
  "twoFactorSessionToken":"временная сессия полученая в результате аутентификации"
}

Пример ответа:

{
  "requestId":"идентификатор запроса сгенерированный на стороне сервера",
  "succeeded":"флаг ошибки",
  "errors" : [
    {
      "Code": "код ошибки (не число)",
      "Message": "описание ошибки"
    }
  ]
}

Верификация через SMS Расположение: POST /Device/Api/V1/Sms/Login Тело запроса:

{
  "twoFactorSessionToken":"временная сессия полученая в результате аутентификации",
  "verificationCode":"код пришедший на устройство через смс"
}

Ответ идентичен API /Device/Api/V1/Account/Login

Отправка отсканнированного значения qr-code на сервер

Расположение:

POST /Identity/Api/Device/OnQrCodeScanned

Авторизация: НЕ ТРЕБУЕТСЯ

{
  "id":"Код привязки",
  "code":"Значение QR-код"
}

Ответ при успешной операции (статус 200)

{
  "requestId":"идентификатор запроса",
  "succeeded":"true"
}
iis-device-2fa.1597986619.txt.gz · Последние изменения: 2020/08/21 05:10 — admin1