Регистрация при помощи другого привязанного устройства
Примечание
Данный способ регистрации доступен, только если у Пользователя уже есть устройство, на котором хотя бы ключ аутентификации находится в состоянии "Активный".
Пользователь КриптоПро Ключ, использующий аутентификацию при помощи мобильного приложения на базе КриптоПро Ключ SDK, может привязать к своей учетной записи еще одно мобильное устройство без визита к Оператору. Описание сценария инициализации приведено в подразделе 5.4 документа «ЖТЯИ.00118-01 96 01 КриптоПро Ключ. Общее описание».
Используемое 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-кода.

Упрощенная схема
