Регистрация при помощи другого привязанного устройства
Примечание
Совокупность ключей аутентификации, устанавливаемых на устройство пользователя, для удобства упоминания может быть названа в описании процесса вектором аутентификации (ВА).
Примечание
Данный способ регистрации доступен, только если у Пользователя уже есть устройство, на котором хотя бы ключ аутентификации находится в состоянии "Активный".
Пользователь КриптоПро Ключ, использующий аутентификацию при помощи мобильного приложения на базе КриптоПро Ключ SDK, может привязать к своей учетной записи еще одно мобильное устройство без визита к Оператору. Для этого в мобильном приложении на имеющемся устройстве Пользователь нажимает кнопку "Добавить еще одно устройство", а на новом устройстве выбирает способ добавления новой учетной записи при помощи привязанного устройства. На старом устройстве отобразится QR-код, содержащий следующую информацию:
- URL-адрес сервера,
- ID учетной записи пользователя, к которой будет привязано новое устройство.
Пользователь должен отсканировать новым устройством QR-код, после чего на новом устройстве в свою очередь будет отображен другой QR-код, который необходимо отсканировать старым устройством для подтверждения привязки учетной записи.
Приложение на старом устройстве после сканирования QR-кода отображает сведения о новом подключаемом устройстве: имя устройства, тип ОС, идентификатор учетной записи. Пользователь просматривает данную информацию, убеждается в ее корректности и подтверждает привязку. В этом случае новое мобильное устройство считается привязанным и в него устанавливается новый вектор аутентификации. Если отображаемая информация некорректна, Пользователю следует отказаться от привязки и обратиться к Оператору.
Используемое API SDK
Policy.getParamsDSS
– используется для проверки, разрешен ли сценарий.
Policy.getUserDevices()
– актуализация данных о ключах аутентификации.
Auth.getAuthList()
– получение списка доступных в МП ключей аутентификации.
Auth.removeAuth()
– удаление ключей аутентификации.
Последовательность вызовов для регистрации:
Auth.addNewDevice()
-> Auth.confirm()
-> Auth.checkStatus(true)
-> Auth.checkStatus(false)
.
Последовательность вызовов для подтверждения добавления устройства:
Policy.getUserDevices()
-> Auth.scanQR()
-> Auth.confirmNewDevice()
Описание последовательности вызова методов
Действующее устройство
1. МП собственными средствами (без использования SDK) создаёт QR-код, в котором
кодирует URL-адрес сервера и Id пользователя.
a. ID пользователя необходимо получить из DeviceInfo, полученного для текущего устройства при вызове Policy.getUserDevices()
.
2. МП собственными средствами (без использования SDK) отображает QR-код.
3. МП ожидает, когда в списке устройств, полученном при вызове
Policy.getUserDevices()
появится устройство в статусе ApproveRequired.
4. Для обработки устройства в статусе ApproveRequired МП вызывает
следующие методы SDK:
a. Auth.scanQR
– для сканирования QR-кода, отображаемого на экране нового устройства.
b. Auth.confirmNewDevice()
– для подтверждения или отклонения заявки на регистрацию нового устройства.
Новое устройство
1. МП собственными средствами сканирует QR-код, содержащий URL-адрес сервера и Id пользователя, который отображается на экране действующего устройства пользователя.
2. МП вызывает метод Auth.addNewDevice()
для отправки заявки на регистрацию.
3. МП вызывает метод Auth.confirm()
для подтверждения получения ключей
аутентификации.
4. МП вызывает метод Auth.checkStatus(true)
для отображения QR-кода для
действующего устройства.
5. МП вызывает метод Auth.checkStatus(false)
для проверки статуса нового
устройства.
Проверку статуса необходимо выполнять до тех пор, пока устройство не перейдет в статус Active.
Экраны МП
Действующее устройство
1. Сценарий начинается с на экране сведений об устройстве «Настройки» -> «Учётные записи» -> Показать QR-код для привязки устройства. На действующем устройстве отобразится QR-код, который необходимо отсканировать новым устройством.
2. После того как QR-код был отсканирован новым устройством, переход к следующему экрану производится при нажатии кнопки "Продолжить". При нажатии кнопки «Продолжить» отображается Инструкция по дальнейшим действиям и далее экран для сканирования QR-кода (переход по кнопке "Сканировать QR-код"), который к тому времени отображается на новом устройстве.
3. При нажатии кнопки «Сканировать QR-код» вызывается метод
SDK Auth.scanQR()
и далее метод Auth.confirmNewDevice()
.
Новое устройство
1. Переход к выполнению сценария выполняется c экрана выбора сценариев. Данный экран отображается:
- как первый экран приложения, если на устройстве нет зарегистрированных ключей, то есть метод
Auth.getAuthList()
вернул пустой список; - при нажатии кнопки «Привязать учётную запись» на экране Настройки -> «Учётные записи». Данный экран доступен, если на устройстве есть хотя бы один ключ аутентификации (в любом статусе).
2. При нажатии кнопки «Через привязанное устройство» отображается Инструкция по привязке устройства и далее экран для сканирования QR-кода.