Показать/Скрыть содержание

    Конечная точка Devices

    Конечная точка Devices предоставляет методы для управления устройствами пользователя DSS.

    Список методов:

    • Регистрация первого устройства
    • Регистрация первого устройства с использованием Kinit
    • Подтверждение установки векторов аутентификации
    • Получение данных для подтверждения присоединения МУ к УЗ при помощи подписи
    • Подтверждение присоединения МУ к УЗ
    • Получение сведений об устройствах
    • Удаление устройства
    • Регистрация другого устройства
    • Проверка статуса запроса на регистрацию другого устройства
    • Одобрение запроса на регистрацию другого устройства
    • Отклонение запроса на регистрацию другого устройства
    • Обновление сведений об устройстве пользователя

    Протокол Secure Storage Key (SSK)

    Метод вызывается для выполнения протокола SSK и/или аутентификации КриптоПроКлюч. В зависимости от типа запроса клиент может запросить:

    • инициализацию протокола SSK (Setup)
    • выполнение протокола SSK (получение доступа к ключам аутентификации)
    • запрос аутентификационных данных
    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/ssk
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Объект SskRequest, содержащий параметры протокола SSK.
    Возвращаемое значение Объект SskResponse, содержащий параметры протокола SSK.

    Типовые ошибки

    HTTP-код Ошибка Описание

    Пример запроса

    POST https://testkey.cryptopro.ru:4430/Mdag/v1/devices/ssk
    Authorization:  myDSS 49372985:iYOxjp4AObrsZ+d/BQtMoxlMAt2B3yqGP13I/fn/dNA=:u9yKXR5KiMxhXMbgb0P7Rtp86/Jr9IvlquBW6e9eTAA=
    
    {
      "ClientA": "BiAAAEkuAABNQUcxAAIAADALBgkqhQMHAQ ... p/dd2gepx+7ONoyTC6tritwXh3bqZvMfp",
      "Type": 1
    }
    

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

    Transfer-Encoding:      chunked
    Connection:     keep-alive
    api-supported-versions: 1.0
    {
      "serverB": "BiAAAEkuAABNQUcxAAIAADAL ... s0d/uzJc7mAulUCJLqu6UyygFfhzY5GTc",
      "random": null,
      "error": null,
      "errorDescription": null,
      "sessionExpiresAt": 1699817971,
      "passwordAttempts": 5,
      "lockOutTimeOut": 0
    }
    

    Пример запроса

    POST https://testkey.cryptopro.ru:4430/Mdag/v1/devices/ssk
    Authorization:  myDSS 49372985:pbKPDUlRmB3DKxpjlG1zeXH49IU3RJwRd5Iph4OL134=:gdeRa68/a2nIoMBxa5n14+u88OLDpnKcxki/iJIuPuU=
    
    {
      "ClientA": "BiAAAEkuAABNQUcxAAIAADALBgkqhQMHA ... W100dm4Nw9NERX0qw6",
      "Type": 0
    }
    

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

    Transfer-Encoding:      chunked
    Connection:     keep-alive
    api-supported-versions: 1.0
    {
      "serverB": "BiAAAEkuAABNQUcxAAIAADALBgkqh  ... JJ+Y6XGx39xDmE7Enr",
      "random": "TYg+iSVCLYHvj3tJzx7YdqUIwNHSUWBNHbZDvdIN+BM=",
      "error": null,
      "errorDescription": null,
      "sessionExpiresAt": 0,
      "passwordAttempts": 5,
      "lockOutTimeOut": 0
    }
    

    Протокол Secure Storage Key (SSK) Authentication

    Метод вызывается для завершения аутентификации в протоколе SSK.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/ssk/auth
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Объект SskAuthRequest, содержащий параметры протокола SSK Auth.
    Возвращаемое значение Объект SskAuthResponse, содержащий параметры протокола SSK Auth.

    Запрос должен выполняться с type = usage (1)

    Типовые ошибки

    HTTP-код Ошибка Описание

    Пример запроса

    POST https://testkey.cryptopro.ru:4430/Mdag/v1/devices/ssk/auth
    Authorization:  myDSS 49372985:K62npCTPBcUwMHq9r5HiyyQNWjtjV7L/XUR1dcdd9iE=:cJ4x6w5GHCqeetLvy79n8JuzmDKzg0SmITdW6x8Wg44=
    
    {
      "Response": "wZdtenDpXrWt1p2tBz5GbIiFd9MMjpu1Uixscsg8up0="
    }
    

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

    Transfer-Encoding:      chunked
    Connection:     keep-alive
    api-supported-versions: 1.0
    {
      "error": null,
      "errorDescription": null,
      "sessionExpiresAt": 1699818061,
      "passwordAttempts": 5,
      "lockOutTimeOut": 0
    }
    

    Смена ПИН-кода в протоколе Secure Storage Key (SSK)

    Запрос смены ПИН-код

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/ssk/change
    Аутентификация Аутентификация на ключе Kconf.
    Параметры Объект SskRequest, содержащий параметры протокола SSK.
    Возвращаемое значение Объект SskResponse, содержащий параметры протокола SSK.

    Запрос должен выполняться с type = change (2)

    Типовые ошибки

    HTTP-код Ошибка Описание

    Пример запроса

    POST https://testkey.cryptopro.ru:4430/Mdag/v1/devices/ssk/change
    Authorization:  myDSS 22818299:M4SLcySu9YnJYsSsXRR3KxSbGsBnaDIsxEW0ya2ENgk=:FAYRvY20tlQGLSfuM6GG+dc8yfYT92raG5Y6lLOoL4I=
    
    {
      "ClientA": "BiAAAEkuAABNQUcxAAIAADALBgkqhQMHAQ ... hdBdbPFJ",
      "Type": 2
    }
    

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

    Transfer-Encoding:      chunked
    Connection:     keep-alive
    api-supported-versions: 1.0
    {
      "serverB": "BiAAAEkuAABNQUcxAAIAADAL ... s0d/uzJc7mAulUCJLqu6UyygFfhzY5GTc",
      "sessionExpiresAt": 1699817971,
      "passwordAttempts": 5,
      "lockOutTimeOut": 0
    }
    

    Подтверждение смены ПИН-кода в протоколе Secure Storage Key

    Метод вызывается для завершения смены ПИН-кода в протоколе SSK.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/ssk/change/confirm
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Нет параметров
    Возвращаемое значение Нет возвращаемого значения

    Типовые ошибки

    HTTP-код Ошибка Описание

    Пример запроса

    POST https://testkey.cryptopro.ru:4430/Mdag/v1/devices/ssk/change/confirm
    Authorization:  myDSS 22818299:GBR2IjgTka84QBdDzCj/ZCraDlB2AL657xh2eC8H68g=:Ew6SFIgTFIeNmXMZXHMbUScYOpxMWH0QRm8LUtJ7aCY=
    

    Регистрация первого мобильного устройства

    Метод отправляет запрос на регистрацию первого мобильного устройства (МУ). Метод создает на сервере неподтвержденное мобильное устройство и возвращает зашифрованный блоб с векторами аутентификации.

    В запросе могут быть переданы два необязательных параметра:

    • UserName - желаемое имя пользователя (login), имя пользователя может быть использовано вызывающей системой для управления учетной записью пользователя. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.
    • Alias - уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.
    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices
    Аутентификация Запрос не аутентифицирован.
    Параметры Объект RegInfo, содержащий сведения о регистрируемом устройстве.
    Возвращаемое значение Объект Device, содержащий сведения о ключах аутентификации.
    Примечание

    Запрос не аутентифицирован.

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_input Отсутвует тело запроса
    400 invalid_identifier Не передана информация о регистрируемом устройстве
    400 wrong_operation Операция саморегистрации пользователей myDSS запрещена
    400 invalid_login Логин не задан или имеет невалидный формат
    400 not_unique_login Пользователь с данным логином уже существует
    400 invalid_phone Полученное значение не является номером телефона
    400 not_unique_phone Пользователь с таким номером телефона уже существует
    400 invalid_email Полученное значение не является адресом электронной почты
    400 not_unique_email Пользователь с таким адресом электронной почты уже существует
    400 invalid_device_fingerprint Параметр deviceFingerprint не задан
    400 not_unique_device_fingerprint Пользователь с таким отпечатком мобильного устройства уже существует
    400 invalid_device_params Значение парметра osType не поддерживается
    400 invalid_device_params Парметр pushAddress не задан
    400 invalid_device_params Парметр deviceName не задан
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 299
    
    {
        "deviceFingerprint": "0054e5fc-6797-421b-8917-dc0298804158",
        "pushAddress": "push-address",
        "osType": "Android",
        "osVersion": "4.0.0",
        "deviceMode": "AppleIPhoneA",
        "deviceName": "MyApple",
        "locale": "ru-RU",
        "timeZoneUtcOffset": "3",
        "appVersion": "1.0",
        "phone": "79998887766",
        "email": "test@cryptropro.ru",
         "publicKey" : "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAoEft+BSCBo5dfpTu9Ih6a1TXoNg1la2Z13q1NBAGHY3m9aVJsHoccwVXhzlMM72Nr3EF4QhNTbUYvYYJ7Ale+M="
    }
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002723",
        "uid": "0dbea5eb-667c-4284-a5e6-1deaa838911f",
        "publicKey": "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAhDFOrLWRqF0tDgteCjHJkGybqT/LBxqGfA9+5whXr3qCpFK8AK8RxaHaiANgz5b+2yQ9kyhVfJRdU5i633Sn58=",
        "encryptedBlobs": "ta70SK/cjHZOotrmVRQ2aGsxe/cfnjDjRDeIAPhnTY2MmkJa5H72sQNiwIL792rh+9SC7wM35Tle2hky8KDHaJo/300S+xNTgPC9nhpGmjDDKKKLiRpwRQX/YrBob9SjuEGTpgru8AeHxYKh0oGxudPhf0ZXG2GAYdZ+xb/ms3FahPdUUAxLF7dY146zsmefvZBtCkELqYo3bYSj0X1ilBub",
        "seed": "HUOPiIjAtvTqLjTbZwOt1ge1VosAqjaF1sksYXzEbiE=",
        "notBefore": 1559201303,
        "notAfter": 1598772503,
        "state": "Created",
        "serviceUrl": "https://teststand.cryptopro.ru/mydss",
        "alias": "x0893zbt",
        "userName": "0dbea5eb-667c-4284-a5e6-1deaa838911f"
    }
    

    Регистрация первого устройства с использованием предварительного вектора аутентификации

    Метод отправляет запрос на регистрацию первого мобильного устройства (МУ). Метод создает на сервере неподтвержденное мобильное устройство и возвращает зашифрованный блоб с векторами аутентификации.

    Запрос аутентифицируется на предварительно созданном для данной учетной записи (УЗ) векторе аутентификации Kinit.

    В запросе могут быть переданы два необязательных параметра:

    • UserName - желаемое имя пользователя (login), имя пользователя может быть использовано вызывающей системой для управления учетной записью пользователя. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.
    • Alias - уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.
    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/kinit
    Аутентификация Запрос аутентифицирован на векторе Kinit.
    Параметры Объект RegInfo, содержащий сведения о регистрируемом устройстве.
    Возвращаемое значение Объект Device, содержащий сведения о ключах аутентификации.

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_input Отсутствует тело запроса
    400 invalid_identifier Не передана информация о регистрируемом устройстве
    400 wrong_operation Самостоятельная регистрации пользователей myDSS запрещена
    400 invalid_login Логин не задан или имеет некорректный формат
    400 not_unique_login Пользователь с данным логином уже существует
    400 invalid_phone Полученное значение не является номером телефона
    400 not_unique_phone Пользователь с таким номером телефона уже существует
    400 invalid_email Полученное значение не является адресом электронной почты
    400 not_unique_email Пользователь с таким адресом электронной почты уже существует
    400 invalid_device_fingerprint Параметр deviceFingerprint не задан
    400 not_unique_device_fingerprint Пользователь с таким отпечатком мобильного устройства уже существует
    400 invalid_device_params Значение параметра osType не поддерживается
    400 invalid_device_params Параметр pushAddress не задан
    400 invalid_device_params Параметр deviceName не задан
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/kinit HTTP/1.1
    Host: teststand.cryptopro.ru
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    Content-Type: application/json
    Content-Length: 299
    
    {
        "deviceFingerprint": "0054e5fc-6797-421b-8917-dc0298804158",
        "pushAddress": "push-address",
        "osType": "Android",
        "osVersion": "4.0.0",
        "deviceMode": "AppleIPhoneA",
        "deviceName": "MyApple",
        "locale": "ru-RU",
        "timeZoneUtcOffset": "3",
        "appVersion": "1.0",
        "phone": "79998887766",
        "email": "test@cryptropro.ru",
        "publicKey" : "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAoEft+BSCBo5dfpTu9Ih6a1TXoNg1la2Z13q1NBAGHY3m9aVJsHoccwVXhzlMM72Nr3EF4QhNTbUYvYYJ7Ale+M="
    }
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002723",
        "uid": "0dbea5eb-667c-4284-a5e6-1deaa838911f",
        "publicKey": "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAhDFOrLWRqF0tDgteCjHJkGybqT/LBxqGfA9+5whXr3qCpFK8AK8RxaHaiANgz5b+2yQ9kyhVfJRdU5i633Sn58=",
        "encryptedBlobs": "ta70SK/cjHZOotrmVRQ2aGsxe/cfnjDjRDeIAPhnTY2MmkJa5H72sQNiwIL792rh+9SC7wM35Tle2hky8KDHaJo/300S+xNTgPC9nhpGmjDDKKKLiRpwRQX/YrBob9SjuEGTpgru8AeHxYKh0oGxudPhf0ZXG2GAYdZ+xb/ms3FahPdUUAxLF7dY146zsmefvZBtCkELqYo3bYSj0X1ilBub",
        "notBefore": 1559201303,
        "notAfter": 1598772503,
        "state": "Created",    
        "serviceUrl": "https://teststand.cryptopro.ru/mydss",
        "alias": "x0893zbt",
        "userName": "0dbea5eb-667c-4284-a5e6-1deaa838911f"
    }
    

    Подтверждение установки векторов аутентификации

    Метод используется для подтверждения установки векторов аутентификации. Данный метод всегда необходимо вызывать после выполнения регистрации нового неподтвержденного МУ на сервере. Данный метод может быть вызван только для векторов аутентификации, находящихся в состоянии Created.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/confirm
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Метод не имеет параметров.
    Возвращаемое значение Объект DeviceInfo, содержащий обновленные сведения о ключе аутентификации.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    400 key_already_confirmed Статус ключа аутентификации myDSS не может быть изменен, так как устройство уже подтверждено
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/confirm HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002723",
        "uid": "3dff67cc-a53f-4660-aa4c-9879f7f3eb48",
        "profile": "{\"CN\":\"Иванов Иван Иванович\", \"key_CN\":\"Общее имя\"}",
        "deviceName": "MyApple",
        "notBefore": 1559201303,
        "notAfter": 1598772503,
        "state": "Installed"
    }
    

    Подтверждение присоединения МУ к УЗ

    Метод используется для подтверждения присоединения МУ к УЗ пользователя. Данный метод может быть вызван только для векторов аутентификации, находящихся в состоянии NotVerified.

    Для подтверждения присоединения МУ к УЗ необходимо передать значение HMAC от профиля пользователя, вычисленное на ключе Kconf. Профиль пользователя возвращается в структуре DeviceInfo.

    Если для данного мобильного устройства требуется осуществлять подтверждение присоединения с использованием nonce, то в поле nonceRequired структуры DeviceInfo будет указано значение true. В этом случае перед отправкой запроса мобильное приложение должно отсканировать QR-код, содержащий nonce.

    Если для данного мобильного устройства требуется осуществлять подтверждение присоединения с использованием подписи на ключе подписи, то в поле signatureRequired структуры DeviceInfo будет указано значение true. В этом случае перед отправкой запроса мобильное приложение должно получить данные для подписи, используя метод /verify/random.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/verify
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Объект VerifyInfo, содержащий сведения для подтверждения присоединения.
    Возвращаемое значение Объект DeviceInfo, содержащий обновленные сведения о ключе аутентификации.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    400 invalid_input Отсутствует тело запроса
    400 invalid_phone Полученное значение не является номером телефона
    400 not_unique_phone Пользователь с таким номером телефона уже существует
    400 invalid_email Полученное значение не является адресом электронной почты
    400 not_unique_email Пользователь с таким адресом электронной почты уже существует
    400 invalid_device_fingerprint Параметр deviceFingerprint не задан
    400 not_unique_device_fingerprint Пользователь с таким отпечатком мобильного устройства уже существует
    400 existing_device_fingerprint Мобильное устройство с таким отпечатком уже добавлено пользователю
    400 invalid_device_params Значение парметра osType не поддерживается
    400 invalid_device_params Параметр pushAddress не задан
    400 invalid_device_params Параметр deviceName не задан
    400 key_already_confirmed Информация об устройстве уже заполнена для ключа аутентификации
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/verify HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 299
    
    {
        "nonce": "0054e5fc-6797-421b-8917-dc0298804158",
        "profileHmac": "AAAATESTHMACAAAAAA="
    }
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002723",
        "uid": "3dff67cc-a53f-4660-aa4c-9879f7f3eb48",
        "profile": "{\"CN\":\"Иванов Иван Иванович\", \"key_CN\":\"Общее имя\"}",
        "deviceName": "MyApple",
        "notBefore": 1559201303,
        "notAfter": 1598772503,
        "state": "Active"
    }
    

    Получение данных для подтверждения присоединения МУ к УЗ при помощи подписи

    Метод возвращает данные необходимые для завершения присоединения МУ к УЗ. Метод может быть вызван только для мобильного устройства в статусе NotVerified. Если для мобильного устройства требуется осуществлять подтверждение присоединения с использованием подписи на ключе подписи, то в поле signatureRequired структуры DeviceInfo будет указано значение true.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/devices/verify/random
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Запрос без параметров.
    Возвращаемое значение Объект SignatureRandom, содержащий данные для подписи.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    500 internal_error Внутренняя ошибка сервера

    Пример

    Получение сведений об устройствах

    Метод возвращает сведения об устройствах пользователя.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/devices
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Запрос без параметров.
    Возвращаемое значение Объект DevicesInfo, содержащий сведения о зарегистрированном пользователе и его ключах аутентификации.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    GET /mydss/v1/devices HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "devices": [
            {
                "kid": "63002723",
                "uid": "3dff67cc-a53f-4660-aa4c-9879f7f3eb48",
                "profile": "{\"CN\":\"Иванов Иван Иванович\", \"key_CN\":\"Общее имя\"}",
                "deviceName": "MyApple",
                "notBefore": 1559201303,
                "notAfter": 1598772503,
                "state": "Installed"
            }
        ]
    }
    

    Удаление устройства

    Метод отправляет запрос на удаление устройства.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/delete
    Аутентификация Аутентификация на ключе Kconf.
    Параметры Объект DeleteDeviceInfo, содержащий сведения об удаляемом устройстве.
    Возвращаемое значение Не имеет возвращаемого значения.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    400 invalid_input Отсутвует тело запроса
    400 invalid_key_id Параметр [kid] не задан
    400 key_not_found Пользователь не имеет назначенный токен аутентификации
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    GET /mydss/v1/devices HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 19
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    
    {
        "kid" : "63002723"
    }
    

    Ответ

    HTTP/1.1 200 OK
    

    Регистрация другого устройства

    Метод отправляет запрос на подключение другого устройства пользователя.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/add
    Аутентификация Запрос не аутентифицирован.
    Параметры Объект NewDeviceInfo, содержащий сведения о новом устройстве пользователя.
    Возвращаемое значение Объект Device, содержащий сведения о ключах аутентификации, создаваемых на подключаемом устройстве.
    Примечание

    Запрос не аутентифицирован.

    Примечание

    В структуре Device поле Alias не заполняется.

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_input Отсутвует тело запроса
    400 requested_user_not_found Пользователь не найден
    400 wrong_operation Пользователь уже имеет максимально возможное количество ключей myDSS
    400 invalid_phone Полученное значение не является номером телефона
    400 not_unique_phone Пользователь с таким номером телефона уже существует
    400 invalid_email Полученное значение не является адресом электронной почты
    400 not_unique_email Пользователь с таким адресом электронной почты уже существует
    400 invalid_device_fingerprint Параметр deviceFingerprint не задан
    400 not_unique_device_fingerprint Пользователь с таким отпечатком мобильного устройства уже существует
    400 existing_device_fingerprint Мобильное устройство с таким отпечатком уже добавлено пользователю
    400 invalid_device_params Значение парметра osType не поддерживается
    400 invalid_device_params Парметр pushAddress не задан
    400 invalid_device_params Парметр deviceName не задан
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/add HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 299
    
    {
        "uid": "0dbea5eb-667c-4284-a5e6-1deaa838911f",
        "deviceFingerprint": "0054e5fc-6797-421b-8917-dc0298804158",
        "pushAddress": "push-address",
        "osType": "Android",
        "osVersion": "4.0.0",
        "deviceMode": "AppleIPhoneA",
        "deviceName": "MyApple",
        "locale": "ru-RU",
        "timeZoneUtcOffset": "3",
        "appVersion": "1.0",
        "phone": "79998887766",
        "email": "test@cryptropro.ru",
        "publicKey" : "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAoEft+BSCBo5dfpTu9Ih6a1TXoNg1la2Z13q1NBAGHY3m9aVJsHoccwVXhzlMM72Nr3EF4QhNTbUYvYYJ7Ale+M="
    }
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002723",
        "uid": "cb76412a-d0cc-46f5-963e-5741f48081c7",
        "publicKey": "BiAAAEkuAABNQUcxAAIAADATBgcqhQMCAiQABggqhQMHAQECAhDFOrLWRqF0tDgteCjHJkGybqT/LBxqGfA9+5whXr3qCpFK8AK8RxaHaiANgz5b+2yQ9kyhVfJRdU5i633Sn58=",
        "encryptedBlobs": "ta70SK/cjHZOotrmVRQ2aGsxe/cfnjDjRDeIAPhnTY2MmkJa5H72sQNiwIL792rh+9SC7wM35Tle2hky8KDHaJo/300S+xNTgPC9nhpGmjDDKKKLiRpwRQX/YrBob9SjuEGTpgru8AeHxYKh0oGxudPhf0ZXG2GAYdZ+xb/ms3FahPdUUAxLF7dY146zsmefvZBtCkELqYo3bYSj0X1ilBub",
        "seed": "cOJSd2LZ5LcCh8lpB87W2Cf90DtonlZ1+IuIdEVa6QU=",
        "notBefore": 1562061337,
        "notAfter": 1601632537,
        "state": "Created",
        "serviceUrl": "https://teststand.cryptopro.ru/mydss"
    }
    

    Проверка статуса запроса на регистрацию другого устройства

    Метод отправляет запрос на получение сведений об операции регистрации нового устройства пользователя.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/check
    Аутентификация Запрос аутентифицирован на Kauth ключе.
    Параметры Запрос без параметров
    Возвращаемое значение Объект Device, содержащий статус нового устройства и QR-код с данными для подтверждения.

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_input Отсутвует тело запроса
    400 invalid_identifier Не передан идентификатор пользователя
    400 requested_user_not_found Пользователь не найден
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/check HTTP/1.1
    Host: teststand.cryptopro.ru
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    {
        "kid": "63002710",
        "state": "NotConfirmed"
    }
    
    Примечание
    • Если state имеет значение NotConfirmed, то добавление другого устройства еще не подтверждено пользователем.
    • Если state имеет значение Rejected, то добавление другого устройства отклонено пользователем.
    • Если state имеет значение Active, то добавление другого устройства одобрено пользователем.

    Одобрение запроса на добавление нового устройства

    Метод отправляет запрос на получение сведений об операции регистрации нового устройства пользователя.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/approve
    Аутентификация Аутентификация на ключе Kconf.
    Параметры Идентификатор ключа kid.
    Возвращаемое значение Не имеет возвращаемого значения.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    400 invalid_input Отсутвует тело запроса
    400 invalid_key_id Параметр [kid] не задан
    400 key_not_found Пользователь не имеет назначенный токен аутентификации
    400 key_already_confirmed Запрос на добавление нового устройства уже одобрен
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/approve HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 18
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    
    {
        "kid": "63002710"
    }
    

    Ответ

    HTTP/1.1 200 OK
    

    Отклонение запроса на добавление нового устройства

    Метод отправляет запрос на получение сведений об операции регистрации нового устройства пользователя.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/reject
    Аутентификация Аутентификация на ключе Kconf.
    Параметры Идентификатор ключа kid.
    Возвращаемое значение Не имеет возвращаемого значения.

    Типовые ошибки

    HTTP-код Ошибка Описание
    401 См. Ошибки аутентификации
    400 invalid_input Отсутвует тело запроса
    400 invalid_key_id Запрос на добавление устройства не найден
    500 internal_error Внутренняя ошибка сервера

    Пример

    Запрос

    POST /mydss/v1/devices/reject HTTP/1.1
    Host: teststand.cryptopro.ru
    Content-Type: application/json
    Content-Length: 18
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    
    {
        "kid": "63002710"
    }
    

    Ответ

    HTTP/1.1 200 OK
    

    Обновление сведений об устройстве пользователя

    Метод отправляет запрос на обновление сведений о мобильном устройстве пользователя (МУ). Сведения передаются в той же структуре данных RegInfo, что и при Online-регистрации или регистрации по QR-коду.

    Поля deviceFingerprint, userName, publicKey, alias, phone, email, osType игнорируются. Другие поля опциональны. Это означает, что МУ может передать только необходимый набор обновленных данных.

    Главное назначение метода - обновить Push-адрес устройства. Дополнительно МУ может передать сведения об актуальной версии приложения, версии ОС, имени устройства и т.п.

    Так как метод является вспомогательным и не влияет на работу основных функций сервера и МУ, то МУ следует игнорировать ошибки, которые может вернуть метод.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/devices/updateinfo
    Аутентификация Запрос аутентифицирован на векторе Kauth.
    Параметры Объект RegInfo, содержащий сведения об устройстве.
    Возвращаемое значение -

    Пример

    Запрос

    POST /mydss/v1/devices/updateinfo HTTP/1.1
    Host: teststand.cryptopro.ru
    Authorization: myDSS 63002723:AAAATEST...HMACAAAAAA=
    Content-Type: application/json
    Content-Length: 299
    
    {
        "pushAddress": "push-address",
        "osType": "Android",
        "osVersion": "4.0.0",
        "deviceMode": "AppleIPhoneA",
        "deviceName": "MyApple",
        "locale": "ru-RU",
        "timeZoneUtcOffset": "3",
        "appVersion": "1.0"
    }
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 17 May 2019 04:53:09 GMT
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025