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

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

    Конечная точка SelfUser Сервиса Управления Пользователями для пользователя представлена следующими группами HTTP-методов:

    • Операции с пользователями
    • Настройка различительного имени пользователя
    • Настройка групп пользователей
    • Настройка логина пользователя
    • Настройка пароля пользователя
    • Настройка номера телефона пользователя
    • Настройка адреса электронной почты пользователя
    • Настройка Push-адресов пользователей
    • Настройка протокола OATH (одноразовые пароли на брелках)
    • Общие настройки аутентификации
    • Настройка аутентификации по методу MobileAuth
    • Настройка аутентификации при помощи мобильного приложения
    • Настройка политики подтверждения операций
    • Настройка политики доступа к операциям
    • Настройка политики оповещения
    • Настройка протокола OAuth
    Примечание

    Обращение к Сервису Управления Пользователями (UMS) требует аутентификации пользователя на сервере. Для этого необходимо предъявить соответствующий сертификат аутентификации (взаимодействие осуществляется по протоколу ГОСТ-TLS с двусторонней аутентификацией) или токен аутентификации. Для краткости примеры запросов в данном разделе предоставляются без указания аутентификационных данных.

    Операции с пользователями

    Данная группа методов предоставляет способы добавления, удаления и настройки пользователей.

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

    GetRegistrationPolicy

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/register/policy
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserRegistrationPolicy - Политика самостоятельной регистрации пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/register/policy HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 44
    

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

    
    
    {
        "AllowUserRegistration": true,
        "AvaliableIdentifierTypes": [
            "Email",
            "PhoneNumber"
        ],
        "PhoneConfirmationRequired": true,
        "EmailConfirmationRequired": false,
        "AllowedGroups": [
            {
                "GroupId": 1,
                "GroupName": "Default"
            }
        ],
        "RdnPolicy": {
            "Default": [
                {
                    "Id": 3,
                    "Oid": "2.5.4.4",
                    "DisplayName": "Фамилия",
                    "StringIdentifier": "SN",
                    "Order": 0,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 40,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 2,
                    "Oid": "2.5.4.42",
                    "DisplayName": "Имя Отчество",
                    "StringIdentifier": "G",
                    "Order": 1,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 4,
                    "Oid": "2.5.4.43",
                    "DisplayName": "Инициалы",
                    "StringIdentifier": "I",
                    "Order": 2,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 5,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 16,
                    "Oid": "2.5.4.12",
                    "DisplayName": "Должность",
                    "StringIdentifier": "T",
                    "Order": 3,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 64,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 13,
                    "Oid": "2.5.4.9",
                    "DisplayName": "Адрес",
                    "StringIdentifier": "Street",
                    "Order": 4,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 120,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 1,
                    "Oid": "2.5.4.3",
                    "DisplayName": "Общее имя",
                    "StringIdentifier": "CN",
                    "Order": 5,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 15,
                    "Oid": "2.5.4.11",
                    "DisplayName": "Подразделение",
                    "StringIdentifier": "OU",
                    "Order": 6,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 64,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 14,
                    "Oid": "2.5.4.10",
                    "DisplayName": "Организация",
                    "StringIdentifier": "O",
                    "Order": 7,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 64,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 12,
                    "Oid": "2.5.4.7",
                    "DisplayName": "Город",
                    "StringIdentifier": "L",
                    "Order": 8,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 11,
                    "Oid": "2.5.4.8",
                    "DisplayName": "Область",
                    "StringIdentifier": "S",
                    "Order": 9,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 10,
                    "Oid": "2.5.4.6",
                    "DisplayName": "Страна",
                    "StringIdentifier": "C",
                    "Order": 10,
                    "ValueType": "Country",
                    "MinLength": 0,
                    "MaxLength": 2,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 5,
                    "Oid": "1.2.840.113549.1.9.1",
                    "DisplayName": "Электронная почта",
                    "StringIdentifier": "E",
                    "Order": 11,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 6,
                    "Oid": "1.2.643.3.131.1.1",
                    "DisplayName": "ИНН",
                    "StringIdentifier": "INN",
                    "Order": 12,
                    "ValueType": "Numeric",
                    "MinLength": 12,
                    "MaxLength": 12,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 9,
                    "Oid": "1.2.643.100.3",
                    "DisplayName": "СНИЛС",
                    "StringIdentifier": "SNILS",
                    "Order": 13,
                    "ValueType": "Numeric",
                    "MinLength": 11,
                    "MaxLength": 11,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 8,
                    "Oid": "1.2.643.100.5",
                    "DisplayName": "ОГРНИП",
                    "StringIdentifier": "OGRNIP",
                    "Order": 14,
                    "ValueType": "Numeric",
                    "MinLength": 15,
                    "MaxLength": 15,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 7,
                    "Oid": "1.2.643.100.1",
                    "DisplayName": "ОГРН",
                    "StringIdentifier": "OGRN",
                    "Order": 15,
                    "ValueType": "Numeric",
                    "MinLength": 13,
                    "MaxLength": 13,
                    "Required": false,
                    "ValueSet": []
                },
                {
                    "Id": 17,
                    "Oid": "1.2.643.100.4",
                    "DisplayName": "ИНН ЮЛ",
                    "StringIdentifier": "INNLE",
                    "Order": 16,
                    "ValueType": "Numeric",
                    "MinLength": 10,
                    "MaxLength": 10,
                    "Required": false,
                    "ValueSet": []
                }
            ]
        }
    }
    

    Самостоятельная регистрация пользователя

    Register

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/register
    Параметры в строке запроса -
    Параметры в теле запроса UserRegistrationRequest - Запрос на регистрацию пользователя
    Возвращаемое значение UserRegistrationResponce - Ответ о регистрации пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/register HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 44
    
    {
    "GroupName":"Default",
    "DisplayName":"Ivanov",
    "Identifiers":
        {
            "Login": "ivanov",
            "Email": "ivanov@company.ru"
        },
    "Password":"73128110",
    "Rdns":
        {
            "3": "Ivanov",
            "2": "Ivan",
            "4": "IIA",
            "13": "Address",
        }
    }
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 6489
    
    {
        "Id":"a1bc8586-c1ff-4a50-ab35-449aaaabcfcb",
        "GeneratedPassword":"s6GSgd8gjsdhs"
    }
    

    Получение информации о пользователе

    GetInfo

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/info
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UmsUserInfo - Сведения об учетной записи пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/info HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 44
    

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

    {
        "UserId": "aae934e3-74c2-4cce-854a-c329ea52a827",
        "DisplayName": null,
        "RdnPolicy": {
            "Rdns": [
                {
                    "Id": 1,
                    "Oid": "2.5.4.3",
                    "DisplayName": "Общее имя",
                    "StringIdentifier": "CN",
                    "Order": 6,
                    "ValueType": "String",
                    "MinLength": 0,
                    "MaxLength": 128,
                    "Required": false,
                    "ValueSet": []
                },
                ...
            ]
        },
        "OperationPolicy": {
            "Policy": [
                {
                    "Action": "Issue",
                    "ConfirmationRequired": false
                },
                {
                    "Action": "SignDocument",
                    "ConfirmationRequired": false
                },
                ...
            ],
            "ChangesAllowed": true
        },
        "AccessPolicy": {
            "Policy": [
                {
                    "Action": "SignDocument",
                    "AccessDenied": false
                },
                {
                    "Action": "DecryptDocument",
                    "AccessDenied": false
                },
                ...
            ],
            "ChangesAllowed": true
        },
        "NotificationPolicy": {
            "Policy": {},
            "ChangesAllowed": false,
            "AvailableNotifiers": [
                "SMS",
                "Push"
            ]
        }
    }
    

    Назначение отображаемого имени в профиле пользователя

    SetUserDisplayName

    Параметр Значение
    HTTP-метод PATCH, POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/displayName
    Параметры в строке запроса -
    Параметры в теле запроса displayName - Отображаемое имя пользователя
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/displayName
    Content-Type: application/json; charset=utf-8
    Content-Length: 44
    
    "User"
    

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

    HTTP/1.1 200 OK
    

    Настройка различительного имени пользователя

    Данная группа методов предоставляет способы работы с различительным именем пользователя.

    Назначение различительного имени пользователю

    SetUserDistinguishedName

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/dn
    Параметры в строке запроса -
    Параметры в теле запроса components - Словарь компонентов различительного имени формата IDictionary<int, string>
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/dn
    Content-Type: application/json; charset=utf-8
    Content-Length: 16
    
    {
    "1": "SampleCN"
    }
    

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

    HTTP/1.1 200 OK
    

    Получение списка компонентов различительного имени пользователя

    GetUserDistinguishedName

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/dn
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение Dictionary<int, string> - Компоненты различительного имени пользователя

    Примечание: ключом словаря является идентификатор компонента имени пользователя. Список поддерживаемых ЦИ компонентов имени пользователя можно получить из политики Сервиса Управления Пользователями (ссылка на GetPolicy)

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

    GET https://{{hostName}}/{{instanceName}}/self/dn
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 58
    
    {
    "1": "UmsSampleUser-f3d5fdfe-9da7-436f-8245-908aafa1213e"
    }
    

    Настройка групп пользователей

    Данная группа методов предоставляет способы работы с группами пользователей.

    Получение имени группы пользователя

    GetUserGroup

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/group
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение Имя группы пользователя (String)

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

    GET https://{{hostName}}/{{instanceName}}/self/group
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 9
    
    "Default"
    

    Настройка логина пользователя

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

    Установка локального логина учетной записи пользователя

    SetUserLocalLogin

    Добавляет локальный логин пользователю или заменяет его, если логин уже существует.

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/login/local?newLogin={newLogin}
    Параметры в строке запроса newLogin - Новый локальный логин пользователя
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/login/local?newLogin=TestLogin123 HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Установка внешнего логина учетной записи пользователя

    SetUserExternalLogin

    Добавляет внешний логин пользователю или заменяет его, если логин уже существует. Имя ЦИ и внешний логин будет получено из переданного в методе токена внешнего ЦИ.

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/login
    Параметры в строке запроса -
    Параметры в теле запроса ExternalLoginTokenInfo - Структура для создания внешнего логина
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/login
    Content-Type: application/json; charset=utf-8
    Content-Length: 48
    
    {
        "SubjectToken": "eyJ0eXAiOi...04IHSO4XLhG4"
    }
    

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

    HTTP/1.1 200 OK
    

    Получение логинов пользователя

    GetAllUserLogins

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/login
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение List<ExternalLoginInfo> - Список логинов пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/login
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 50
    
    [{
    "Login": "UmsSampleUser",
    "IssuerName": "realsts"
    }]
    

    Удаление локального логина пользователя

    DeleteUserLocalLogin

    Метод удаляет локальный логин пользователя.

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/login/local
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/ums/self/login/local HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Удаление логина пользователя

    DeleteUserLogin

    Метод удаляет локальный или внешний логин пользователя.

    • Для удаления локального логина: ?issuerName=realsts.
    • Для удаления внешнего логина: указать в параметре issuerName имя ЦИ, логин в котором необходимо удалить.
    • При выполнении метода без использования параметра issuerName будет удален тот внешний логин, (зарегистрированный для внешнего ЦИ) пользователя, из-под которого Оператор выполнил вход (получил соответствующий токен безопасности) для выполнения указанного метода.
    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/login
    Параметры в строке запроса issuerName - имя ЦИ, в котором необходимо удалить логин (необязательный параметр)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/login?issuerName=SampleSTS
    

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

    HTTP/1.1 200 OK
    

    Настройка пароля пользователя

    Данная группа методов позволяет управлять паролями пользователей.

    Генерация пароля пользователя

    GeneratePassword

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/password/generate
    Параметры в строке запроса -
    Параметры в теле запроса GeneratePasswordRequest - Запрос на генерацию пароля
    Возвращаемое значение Новый пароль пользователя (String)
    Примечание

    Если у пользователя еще нет пароля, в теле запроса необходимо передать {}.

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

    POST https://{{hostName}}/{{instanceName}}/self/password/generate
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {
        "OldPassword": "3Lsv4M9T"
    }
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 56
    
    "Kejekje5hel23"
    

    -->

    Смена пароля пользователя

    ChangePassword

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/password/change
    Параметры в строке запроса -
    Параметры в теле запроса ChangePasswordRequest - Запрос на изменение пароля
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/password/change
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {
        "OldPassword": "3Lsv4M9T",
        "Password": "Osh3k53f"
    }
    

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

    HTTP/1.1 200 OK
    

    Настройка номера телефона пользователя

    Данная группа методов позволяет управлять номерами телефонов пользователей.

    Получение списка телефонов пользователя

    GetUserPhones

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение List<UserContactInfo> - Контактная информация пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/phones HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 115
    
    [{
    "Type": "PhoneNumber",
    "Contact": "79991234568",
    "Confirmed": false,
    "Primary": false,
    "Notification": false,
    "Usages": []
    }]
    

    Добавление телефона пользователя

    AddUserPhone

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones
    Параметры в строке запроса -
    Параметры в теле запроса phone - Номер телефона пользователя
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/phones HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 18
    
    "+7(999)123-45-60"
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 110
    
    {
    "Type": "PhoneNumber",
    "Contact": "79991234560",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Подтверждение номера телефона пользователя

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

    ConfirmUserPhone

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/confirm
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/79991234568/confirm
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 110
    
    {
    "Type": "PhoneNumber",
    "Contact": "79991234568",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Запрос отправки одноразового пароля для подтверждения номера телефона

    RequireUserPhoneConfirmation

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/requireconfirm
    Параметры phone - Номер телефона пользователя (не является частью query string)
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/71238889900/requireconfirm HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Подтверждение номера телефона при помощи кода подтверждения (одноразового пароля)

    SubmitUserPhoneConfirmation

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/submitconfirm
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    Параметры в теле запроса confirmationCode - Код подтверждения
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/71238889900/submitconfirm HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 7
    
    "91830"
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 110
    
    {
    "Type": "PhoneNumber",
    "Contact": "71238889900",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Установка номера телефона пользователя для идентификации (входа)

    SetUserPrimaryPhone

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/primary
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    primary - флаг, отвечающий за назначение телефона в качестве логина для идентификации (если это не запрещено на сервере)
    Параметры в теле запроса primary - флаг, отвечающий за назначение телефона в качестве логина для идентификации (если это не запрещено на сервере)
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/79991234569/primary HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 5
    
    false
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 111
    
    {
    "Type": "PhoneNumber",
    "Contact": "79991234569",
    "Confirmed": true,
    "Primary": false,
    "Notification": true,
    "Usages": []
    }
    

    Установка номера телефона для получения уведомлений

    SetUserNotificationPhone

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/notification
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    Параметры в теле запроса notification - флаг, отвечающий за возможность получать уведомления на заданный номер
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/79991234569/notification HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 5
    
    false
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 112
    
    {
    "Type": "PhoneNumber",
    "Contact": "79991234569",
    "Confirmed": true,
    "Primary": false,
    "Notification": false,
    "Usages": []
    }
    

    Назначение номера телефона для вторичной аутентификации и/или подтверждения операций

    SetUserSecondaryAuthPhone

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/secondaryauth
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/phones/71238889900/secondaryauth HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление номера телефона пользователя

    DeleteUserPhone

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phones/{phone}/
    Параметры в строке запроса phone - Номер телефона пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/phones/79991234560/ HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    (Для обратной совместимости) Назначение номера телефона для вторичной аутентификации и/или подтверждения операций

    GetUserPhoneTokenInfo

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phonenumber
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserPhoneInfo - Информация о номере телефона пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/phonenumber HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 46
    
    {
    "PhoneNumber": "79150000000",
    "Confirmed": true
    }
    

    (Для обратной совместимости) Установка номера телефона как основного (для входа, вторичной аутентификации, оповещения)

    SetUserMainPhone

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phonenumber
    Параметры в строке запроса -
    Параметры в теле запроса phone - Номер телефона пользователя
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/phonenumber HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 13
    
    "79150000000"
    

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

    HTTP/1.1 200 OK
    

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

    Примечание

    Данный метод может быть использован только если отключен соответствующий метод аутентификации (одноразовые пароли, доставляемые посредством SMS-сообщений, см. SetUserAuthenticationMethodOtpViaSms).

    DeleteUserPhone

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/phonenumber
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/phonenumber HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Настройка адреса электронной почты пользователя

    Данная группа методов позволяет управлять адресами электронной почты пользователей.

    Получение списка адресов электронной почты пользователей

    GetUserEmails

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/emails HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 320
    
    [{
    "Type": "EmailAddress",
    "Contact": "asdad@asd.rrurururu",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
        "Usages": [{
        "Type": "OTP",
        "Title": "Одноразовые пароли",
        "Description": "Адресат получения одноразовых паролей для подтверждения операций"
        }]
    }]
    

    Добавление адреса электронной почты пользователя

    AddUserEmail

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails
    Параметры в строке запроса -
    Параметры в теле запроса email - Адрес электронной почты пользователя
    Возвращаемое значение UserContactInfo - Контактная информация пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/emails HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 33
    
    "umscontactinfotestuser@test1.ru"
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 131
    
    {
    "Type": "EmailAddress",
    "Contact": "umscontactinfotestuser@test1.ru",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Подтверждение адреса электронной почты пользователя

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

    ConfirmUserEmail

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/confirm
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение UserContactInfo - Контактная информация пользователя
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/umscontactinfotestuser@test2.ru/confirm HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    
    {}
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 131
    
    {
    "Type": "EmailAddress",
    "Contact": "umscontactinfotestuser@test2.ru",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Запрос отправки одноразового пароля для подтверждения адреса электронной почты пользователя

    RequireUserEmailConfirmation

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/requireconfirm
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение -
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/asdad@asd.rrurururu/requireconfirm HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Подтверждение адреса электронной почты при помощи кода подтверждения (одноразового пароля)

    SubmitUserEmailConfirmation

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/submitconfirm
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса confirmationCode - Код подтверждения
    Возвращаемое значение UserContactInfo - Контактная информация пользователя
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/asdad@asd.rrurururu/submitconfirm HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 7
    
    "41069"
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 119
    
    {
    "Type": "EmailAddress",
    "Contact": "asdad@asd.rrurururu",
    "Confirmed": true,
    "Primary": true,
    "Notification": true,
    "Usages": []
    }
    

    Установка адреса электронной почты пользователя для идентификации (входа)

    SetUserPrimaryEmail

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/primary
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса primary - флаг, отвечающий за назначение почтового адреса в качестве логина для идентификации (если это не запрещено на сервере)
    Возвращаемое значение UserContactInfo - Контактная информация пользователя
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/umscontactinfotestuser@test3.ru/primary HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 5
    
    false
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 132
    
    {
    "Type": "EmailAddress",
    "Contact": "umscontactinfotestuser@test3.ru",
    "Confirmed": true,
    "Primary": false,
    "Notification": true,
    "Usages": []
    }
    

    Установка адреса электронной почты для получения уведомлений

    SetUserNotificationEmail

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/notification
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса notification - флаг, отвечающий за возможность получать уведомления на заданный почтовый адрес
    Возвращаемое значение UserContactInfo - Контактная информация пользователя
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/umscontactinfotestuser@test3.ru/notification HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 5
    
    false
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 133
    
    {
    "Type": "EmailAddress",
    "Contact": "umscontactinfotestuser@test3.ru",
    "Confirmed": true,
    "Primary": false,
    "Notification": false,
    "Usages": []
    }
    

    Установка адреса электронной почты для вторичной аутентификации

    SetUserSecondaryAuthEmail

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}/secondaryauth
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение -
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

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

    POST https://{{hostName}}/{{instanceName}}/self/emails/asdad@asd.rrurururu/secondaryauth HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление адреса электронной почты пользователя

    DeleteUserEmail

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/emails/{email}
    Параметры в строке запроса email - Адрес электронной почты пользователя (не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение -
    Примечание

    Адрес электронной почты перед помещением в запрос должен быть перекодирован в соответствии с правилами кодирования URL-адресов.

    Для корректной обработки запроса сервером после адреса электронной почты необходимо помещать символ /.

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

    DELETE https://{{hostName}}/{{instanceName}}/self/emails/testuser4@sample.ru/ HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    (Для обратной совместимости) Получение информации об адресе электронной почты пользователя назначенном для вспомогательной аутентификации

    GetUserEmailTokenInfo

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/email
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserEmailInfo - Информация об адресе электронной почты пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/email 
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 32
    
    {
    "Email": null,
    "Confirmed": false
    }
    

    (Для обратной совместимости) Установка адреса электронной почты пользователя в качестве основного (для входа, вторичной аутентификации и оповещения)

    SetUserMainEmail

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/email
    Параметры в строке запроса -
    Параметры в теле запроса email - Адрес электронной почты пользователя
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/email HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 14
    
    "sample@cp.ru"
    

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

    HTTP/1.1 200 OK
    

    (Для обратной совместимости) Удаление адреса электронной почты пользователя

    Примечание

    Данный метод может быть использован только если отключен соответствующий метод аутентификации (одноразовые пароли, доставляемые посредством Email-сообщений, см. SetUserAuthenticationMethodOtpViaEmail).

    DeleteUserEmail

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/email
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/email HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Настройка Push-адресов пользователей

    Данная группа методов позволяет управлять Push-адресами пользователей.

    Получение списка Push-адресов

    GetUserPushAddresses

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/pushaddress/{activeOnly}
    Параметры в строке запроса activeOnly - Получить сведения только об активных устройствах пользователя (true/false, не является частью query string)
    Параметры в теле запроса -
    Возвращаемое значение List< PushAddressContactInfo > - список Push-адресов пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/pushaddress/false HTTP/1.1
    

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

    GET HTTP/1.1 200 OK
    
    [
        {
            "PushAddress": {
                "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
                "OsType": 2,
                "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
            },
            "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4",
            "SystemName": "mysystem",
            "Kid": "1389544",
            "DeviceName": "HUAWEI P30 Pro DD/*/d73b23435c947219",
            "State": "Active",
            "ExtendedInfo": null,
            "DataSource": "Tokens",
            "Type": "PushAddress",
            "Contact": "{\"Address\":\"de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh\",\"OsType\":2,\"SystemId\":\"4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4\"}",
            "Confirmed": false,
            "Primary": false,
            "Notification": false,
            "Usages": null
        }
    ]
    

    Получение списка Push-адресов с возможностью фильтрации

    GetUserPushAddresses

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/ums/user/{id}/pushaddress
    Параметры в строке запроса PushAddressFilter - фильтр информации о PUSH-адресе пользователя
    Параметры в теле запроса -
    Возвращаемое значение List<PushAddressContactInfo> - список Push-адресов пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/pushaddress?DataSource=all&ActiveOnly=false
    

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

    HTTP/1.1 200 OK
    
    [
        {
            "PushAddress": {
                "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
                "OsType": 2,
                "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
            },
            "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4",
            "SystemName": "mysystem",
            "Kid": "1389544",
            "DeviceName": "HUAWEI P30 Pro DD/*/d73b23435c947219",
            "State": "Active",
            "ExtendedInfo": null,
            "DataSource": "All",
            "Type": "PushAddress",
            "Contact": "{\"Address\":\"de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh\",\"OsType\":2,\"SystemId\":\"4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4\"}",
            "Confirmed": true,
            "Primary": false,
            "Notification": false,
            "Usages": []
        }
    ]
    

    Восстановление PUSH-адреса для оповещения пользователя

    Метод используется, если по некоторым причинам PUSH-адрес, связанный с мобильным устройством пользователя, был удален из контактной информации пользователя.

    RestoreUserPushAdressContact

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/pushaddress/restore
    Параметры в строке запроса id - Глобальный идентификатор пользователя (не является частью query string)
    Параметры в теле запроса PushAddressInfo - информация о PUSH-адресе устройства пользователя
    Возвращаемое значение PushAddressContactInfo - информация о Push-адресе пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/pushaddress/restore
    
    {
        "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
        "OsType": 2,
        "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
        }
    

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

    HTTP/1.1 200 OK
    
    {
        "PushAddress": {
            "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
            "OsType": 2,
            "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
        },
        "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4",
        "SystemName": "mysystem",
        "Kid": "1389544",
        "DeviceName": "HUAWEI P30 Pro DD/*/d73b23435c947219",
        "State": "Active",
        "ExtendedInfo": null,
        "DataSource": "All",
        "Type": "PushAddress",
        "Contact": "{\"Address\":\"de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh\",\"OsType\":2,\"SystemId\":\"4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4\"}",
        "Confirmed": true,
        "Primary": false,
        "Notification": false,
        "Usages": null
        }
    

    Включение оповещения пользователя посредством PUSH-уведомлений

    SetUserNotificationPushAdress

    Параметр Значение
    HTTP-метод POST, PATCH
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/pushaddress/notification/{notification}
    Параметры в строке запроса notification - флаг, позволяющий включить (true) или отключить (false) оповещение при помощи PUSH-уведомлений (не является частью query string)
    Параметры в теле запроса PushAddressInfo - информация о PUSH-адресе устройства пользователя
    Возвращаемое значение PushAddressContactInfo - информация о Push-адресе пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/pushaddress/notification/true
    
    {
        "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
        "OsType": 2,
        "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
        }
    

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

    HTTP/1.1 200 OK
    
    [
        {
            "PushAddress": {
                "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
                "OsType": 2,
                "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
            },
            "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4",
            "SystemName": "mysystem",
            "Kid": "1389544",
            "DeviceName": "HUAWEI P30 Pro DD/*/d73b23435c947219",
            "State": "Active",
            "ExtendedInfo": null,
            "DataSource": "All",
            "Type": "PushAddress",
            "Contact": "{\"Address\":\"de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh\",\"OsType\":2,\"SystemId\":\"4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4\"}",
            "Confirmed": true,
            "Primary": false,
            "Notification": true,
            "Usages": []
        }
    ]
    

    Удаление PUSH-адреса пользователя

    DeleteUserPushAddress

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/pushaddress/
    Параметры в строке запроса -
    Параметры в теле запроса PushAddressInfo - информация о PUSH-адресе устройства пользователя
    Возвращаемое значение PushAddressContactInfo - информация о Push-адресе пользователя

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

    DELETE https://{{hostName}}/{{instanceName}}/self/pushaddress/ HTTP/1.1
    

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

    HTTP/1.1 200 OK
    
    [
        {
            "PushAddress": {
                "Address": "de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh",
                "OsType": 2,
                "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4"
            },
            "SystemId": "4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4",
            "SystemName": "mysystem",
            "Kid": "1389544",
            "DeviceName": "HUAWEI P30 Pro DD/*/d73b23435c947219",
            "State": "Active",
            "ExtendedInfo": null,
            "DataSource": "All",
            "Type": "PushAddress",
            "Contact": "{\"Address\":\"de0VprzIT9qXTT6fjhMTZv:APA91bFY2F3j-MfI4YqfUl_bVu-3MMj0mMh6_Sv1cLCKKSNtfBsxEcCtYzkV6z-5_HNGp169e0pWMJ_5410377u4Yx2xPHdUsqJv9zkV7tJNBRsXt-d6FmchqIlc4p7ptUUmZU2zIaZh\",\"OsType\":2,\"SystemId\":\"4dd5e996-50e8-4d08-a68d-1ac2ce0a14e4\"}",
            "Confirmed": true,
            "Primary": false,
            "Notification": true,
            "Usages": []
        }
    ]
    

    Настройка протокола OATH (одноразовые пароли на брелках)

    Назначение пользователю токена аутентификации HOTP или TOTP

    SetUserOtpToken

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/oath
    Параметры в строке запроса -
    Параметры в теле запроса OtpTokenInfo - информация о токене, назначаемом пользователю
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/oath HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 62
    
    
    {
    "Serial": "AA000001",
    "FirstOtp": "189034",
    "SecondOtp": "223303"
    }
    

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

    HTTP/1.1 200 OK
    

    Синхронизация токена аутентификации HOTP или TOTP

    RestoreUserOtpTokenSync

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/ums/user/{id}/oath/sync
    Параметры в строке запроса -
    Параметры в теле запроса OtpTokenInfo - информация о токене, назначаемом пользователю
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/ums/user/6e9eeeec-6a73-4b06-9274-4ba2e7216ed4/oath/sync HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 62
    
    
    {
    "Serial": "AA000001",
    "FirstOtp": "189034",
    "SecondOtp": "223303"
    }
    

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

    HTTP/1.1 200 OK
    

    Создание данных для приложения-аутентификатора

    CreateUserOathAppData

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/oath/app
    Параметры в строке запроса -
    Параметры в теле запроса OAthAppTokenRequest - данные для регистрации OATH-приложения ({})
    Возвращаемое значение UserAppOtpTokenInfo - данные для инициализации приложения-аутентификатора

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

    POST https://{{hostName}}/{{instanceName}}/ums/self/oath/app HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 62
    
    
    {}
    

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

    HTTP/1.1 200 OK
    
    {
        "QrCode": "iVBORw0KGgoAAAANSUhEUgAAASYAAAEmCA...",
        "QrCodeData": "otpauth://totp/CryptoProKey:login?secret=KTVJCC4WFLXAE4U...6YSW&issuer=CryptoProKey",
        "SecretBase32": "KTVJCC4WFLXAE4UW6GYJFTLSP3NL6YSW",
        "Serial": "7511646",
        "Type": "TOtp"
    }
    

    Получение информации о прикрепленном к пользователю токене

    GetUserOtpTokenInfo

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/oath
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserOtpTokenInfo - Информация об OTP-токене пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/oath HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 35
    
    {
    "Serial": "AA000001",
    "Type": "HOTP"
    }
    

    Удаление закрепленного за пользователем токена

    RemoveUserOtpToken

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/oath
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/oath HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Общие настройки аутентификации

    Получение схемы аутентификации пользователя

    GetUserAuthenticationScheme

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение List<AuthenticationInfo> - Список с информацией о шагах схемы аутентификации пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/authmethod HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 194
    
    [{
    "MethodUri": "http: //schemas.microsoft.com/ws/2012/09/identity/authenticationmethod/none",
    "Level": 0
    },
    {
    "MethodUri": "http: //dss.cryptopro.ru/identity/authenticationmethod/otpviaemail",
    "Level": 1
    }]
    

    Назначение метода аутентификации пользователя Identification Only

    SetUserAuthenticationMethodIdOnly

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/idonly
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/idonly HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя Identification Only

    DeleteUserAuthenticationMethodIdOnly

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/idonly
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/idonly HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя по паролю

    SetUserAuthenticationMethodPassword

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/password
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/password HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя по паролю

    DeleteUserAuthenticationMethodPasword

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/password
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/password HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

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

    SetUserAuthenticationMethodCert

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/cert
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/cert HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

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

    DeleteUserAuthenticationMethodCert

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/cert
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/cert HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя через внешний ЦИ

    SetUserAuthenticationMethodSaml

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/external
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/external HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя через внешний ЦИ

    DeleteUserAuthenticationMethodSaml

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/external
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/external HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя через одноразовые пароли по SMS

    SetUserAuthenticationMethodOtpViaSms

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/otpviasms
    Параметры в строке запроса level - Шаг аутентификации (int)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/otpviasms?level=1 HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя через одноразовые пароли по SMS

    DeleteUserAuthenticationMethodOtpViaSms

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/otpviasms
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/otpviasms HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя через одноразовые пароли по электронной почте

    SetUserAuthenticationMethodOtpViaEmail

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/otpviaemail
    Параметры в строке запроса level - Шаг аутентификации (int)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/otpviaemail?level=1 HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя через одноразовые пароли по электронной почте

    DeleteUserAuthenticationMethodOtpViaEmail

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/otpviaemail
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/otpviaemail HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя через OTP-токен

    SetUserAuthenticationMethodOAth

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/oath
    Параметры в строке запроса level - Шаг аутентификации (int)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/oath?level=1 HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя через OTP-токен

    DeleteUserAuthenticationMethodOAth

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/oath
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/oath HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Назначение метода аутентификации пользователя при помощи мобильного приложения

    SetUserAuthenticationMethodMyDss

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/mydss
    Параметры в строке запроса level - Шаг аутентификации (int)
    Параметры в теле запроса -
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/authmethod/mydss?level=1 HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 2
    
    {}
    

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

    HTTP/1.1 200 OK
    

    Удаление метода аутентификации пользователя при помощи мобильного приложения

    DeleteUserAuthenticationMethodMyDss

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/authmethod/mydss
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/authmethod/mydss HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    -->

    Получение подробной аутентификационной информации пользователя

    GetUserRawAuthenticationDataAsync

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/rawauthdata
    Параметры в строке запроса -
    Параметры в теле запроса UserRawAuthDataRequest - Запрос на аутентификационную информацию пользователя
    Возвращаемое значение Сведения о запрошенных методах аутентификации пользователя (String)

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

    POST https://{{hostName}}/{{instanceName}}/self/rawauthdata HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 208
    
    {
    "UserId": "9fba6076-3509-4e8e-abc1-dae6d052a230",
    "AuthnMethods": ["http: //dss.cryptopro.ru/identity/authenticationmethod/password", "http: //dss.cryptopro.ru/identity/authenticationmethod/otpviasms"],
    "Format": 0
    }
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 460
    
    "{\"UserId\": \"9fba6076-3509-4e8e-abc1-dae6d052a230\",\"AuthMethodInfos\": [{\"AuthnMethod\": \"http: //dss.cryptopro.ru/identity/authenticationmethod/password\",\"Confirmed\": true,\"Parameters\": [{\"Key\": \"HasPassword\",\"Value\": \"True\"}]},{\"AuthnMethod\": \"http: //dss.cryptopro.ru/identity/authenticationmethod/otpviasms\",\"Confirmed\": true,\"Parameters\": [{\"Key\": \"PhoneNumber\",\"Value\": \"78889996655\"},{\"Key\": \"Confirmed\",\"Value\": \"true\"}]}]}"
    

    Настройка аутентификации при помощи мобильного приложения

    • Создание QR-кода с Kinit
    • Получение существующего QR-кода с Kinit
    • Повторная отправка кода активации на KInit
    • Удаление QR-кода с Kinit
    • Получение QR-кода с Nonce
    • Получение информации о ключах аутентификации
    • Блокировка/разблокировка устройства пользователя
    • Удаление вектора аутентификации пользователя
    • Удаление всех векторов аутентификации

    Создание QR-кода с Kinit

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/init
    Параметры в строке запроса -
    Параметры в теле запроса MyDssKInitRequest - Информация для отправки кода активации
    Возвращаемое значение MyDssCreatedKeyInfo - Информация об устройстве и K-init
    Примечание

    Если настройками сервера отключено требование кодов активации KInit, то параметры Msisdn и Email игнорируются.

    Примечание

    Если настройками сервера включено требование подтверждения контактной информации, то указанные в параметрах Msisdn и Email должны быть заранее зарегистрированы в профиле пользователя.

    Если требование подтверждения контактной информации отключено, то код активации KInit будет отправлен на указанный номер телефона или Email. Значения номера телефона или Email не заносятся в профиль пользователя.

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/init HTTP/1.1
    Content-Type: application/json; charset=utf-8
    
    {}
    

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

    HTTP/1.1 200 OK
    
    {
        "KeyInfo":
            {
                "EncryptedBlobs":"ASAAA ... ADQBS9V",
                "PublicKey":null,
                "Seed":null,
                "ActivationRequired":false,
                "ServiceUrl":"https:/hostname:4430/mdagname",
                "Alias":null,
                "Uid":"33f03deb-9e31-42ce-a660-1a456190f4a3",
                "Kid":"73128502",
                "DeviceName":null,
                "NotBefore":1574880257,
                "NotAfter":1614451457,
                "State":"Active",
                "UserName":null,
                "Profile":null,
                "NonceRequired":false
            },
        "QrCode":"R0lGODlhLAEsAf...",
        "QRCodeData": "{\"type\":\"Kinit\",\"version\":1,\"data\":{\"kid\":\"73128502\",\"uid\":\"33f03deb-9e31-42ce-a660-1a456190f4a3\",\"service_url\":\"https://hostname:4430/mydss\",\"key_content\":\"ASAAAB5mAA ... BS9V\",\"activation_required\":false,\"weakness\":true}}"
    }
    
    HTTP-код Ошибка Описание
    404 Пользователь не найден
    400 initialization_key_already_exists У пользователя уже есть ключ инициализации нового устойства.
    400 invalid_contact_info * Параметр [Msisdn] не задан или имеет невалидный формат.
    * Нет возможности отправить вторую часть ключевой информации: не задана контактная информация пользователя.
    400 wrong_operation * Нет возможности отправить вторую часть ключевой информации: не настроен модуль оповещения.
    * Контактная информация [contact] типа [contactType] не добавлена для этого пользователя.
    400 invalid_license
    500 internal_error Внутренняя ошибка сервиса. Необходимо обратиться к Администратору.

    Получение существующего QR-кода с Kinit

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/init/get
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение MyDssCreatedKeyInfoEx - Информация об устройстве и K-init

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/init/get HTTP/1.1
    

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

    HTTP/1.1 200 OK
    
    {
        "KeyInfo":
            {
                "EncryptedBlobs":"ASAAA ... ADQBS9V",
                "PublicKey":null,
                "Seed":null,
                "ActivationRequired":false,
                "ServiceUrl":"https:/hostname:4430/mdagname",
                "Alias":null,
                "Uid":"33f03deb-9e31-42ce-a660-1a456190f4a3",
                "Kid":"73128502",
                "DeviceName":null,
                "NotBefore":1574880257,
                "NotAfter":1614451457,
                "State":"Active",
                "UserName":null,
                "Profile":null,
                "NonceRequired":false
            },
        "QrCode":"R0lGODlhLAEsAf...",
        "QRCodeData": "{\"type\":\"Kinit\",\"version\":1,\"data\":{\"kid\":\"73128502\",\"uid\":\"33f03deb-9e31-42ce-a660-1a456190f4a3\",\"service_url\":\"https://hostname:4430/mydss\",\"key_content\":\"ASAAAB5mAA ... BS9V\",\"activation_required\":false,\"weakness\":true}}"
    }
    
    HTTP-код Ошибка Описание
    404 Пользователь не найден
    400 key_not_found Ключ инициализации не найден.

    Повторная отправка кода активации на KInit

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/init/resendotp
    Параметры в строке запроса -
    Параметры в теле запроса MyDssKInitRequest - Информация для отправки кода активации
    Возвращаемое значение -
    Примечание

    Если настройками сервера включено требование подтверждения контактной информации, то указанные в параметрах Msisdn и Email должны быть заранее зарегистрированы в профиле пользователя.

    Если требование подтверждения контактной информации отключено, то код активации KInit будет отправлен на указанный номер телефона или Email. Значения номера телефона или Email не заносятся в профиль пользователя.

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/init/resendotp HTTP/1.1
    Content-Type: application/json; charset=utf-8
    
    {"msisdn":"71234567890"}
    

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

    HTTP/1.1 200 OK
    
    HTTP-код Ошибка Описание
    404 Пользователь не найден
    400 key_not_found Ключ инициализации не найден.
    400 invalid_contact_info * Параметр [Msisdn] не задан или имеет невалидный формат.
    * Нет возможности отправить вторую часть ключевой информации: не задана контактная информация пользователя.
    400 wrong_operation * У ключа инициализации нового устойства нет кода активации.
    * Нет возможности отправить вторую часть ключевой информации: не настроен модуль оповещения.
    * Контактная информация [contact] типа [contactType] не добавлена для этого пользователя.

    Удаление QR-кода с Kinit

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/init/delete
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение Отсутствует

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/init/delete HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Получение QR-код с Nonce

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/verify/get
    Параметры в строке запроса -
    Параметры в теле запроса MyDssGetVerificationDataRequest - Информация об устройстве
    Возвращаемое значение MyDssVerificationData - Данные о формате QR-кода

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/verify/get HTTP/1.1
    Content-Type: application/json; charset=utf-8
    
    {"Kid":"73128110"}
    

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

    HTTP/1.1 200 OK
    
    {
    "QrCode":"R0lGODlhLA ... RczdZ8zdiczdq8zdzczd78zeAczuI8zuRczuZ8zuisEgEBADs=",
    "QrCodeData":"{\"type\":\"Verification\",\"version\":1,\"data\":{\"kid\":\"73128110\",\"uid\":\"8d16086d-676c-49d6-bf49-09e6f936a596\",\"service_url\":\"https://hostname:4430/mydss\",\"seed\":\"DQiMn1xAvdQFQlAR4ceB3NkWaevDppM7klIVOZZssTc=\",\"nonce\":\"cKx+pdmejI/SRz3OQex32wd6vNF7oVni6LsAf7SfOZw=\"}}",
    "Data":
        {
        "type":"Verification",
        "version":1,
        "data":
            {
                "kid":"73128110",
                "uid":"8d16086d-676c-49d6-bf49-09e6f936a596",
                "service_url":"https://hostname:4430/mydss",
                "seed":"DQiMn1xAvdQFQlAR4ceB3NkWaevDppM7klIVOZZssTc=",
                "nonce":"cKx+pdmejI/SRz3OQex32wd6vNF7oVni6LsAf7SfOZw="
            }
        }
    }
    

    Получение информации о ключах аутентификации

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserMyDssAuthInfo - сведения об устройствах пользователя

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss HTTP/1.1
    

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

    HTTP/1.1 200 OK
    
    {
     "UserId":"8d16086d-676c-49d6-bf49-09e6f936a596",
     "Keys":
        [
            {
                "Uid":"8d16086d-676c-49d6-bf49-09e6f936a596",
                "Kid":"73128110",
                "DeviceName":"MyApple",
                "NotBefore":1574869065,
                "NotAfter":1614440265,
                "State":"NotVerified",
                "UserName":"MdagTestUser-D547B268",
                "Profile":"{\"Version\":1,\"Keys\":{\"1\":\"%D0%9E%D0%93%D0%A0%D0%9D\",\"2\":\"%D0%9E%D0%93%D0%A0%D0%9D%D0%98%D0%9F\",\"3\":\"%D0%A1%D0%9D%D0%98%D0%9B%D0%A1\",\"4\":\"%D0%98%D0%9D%D0%9D\",\"5\":\"%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F %D0%BF%D0%BE%D1%87%D1%82%D0%B0\",\"6\":\"%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B0\",\"7\":\"%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C\",\"8\":\"%D0%93%D0%BE%D1%80%D0%BE%D0%B4\",\"9\":\"%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\",\"10\":\"%D0%9F%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5\",\"11\":\"%D0%9E%D0%B1%D1%89%D0%B5%D0%B5 %D0%B8%D0%BC%D1%8F\",\"12\":\"%D0%90%D0%B4%D1%80%D0%B5%D1%81\",\"13\":\"%D0%94%D0%BE%D0%BB%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C\",\"14\":\"%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8B\",\"15\":\"%D0%98%D0%BC%D1%8F\",\"16\":\"%D0%A4%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F\"},\"Values\":{\"5\":\"E12\",\"7\":\"S10\",\"8\":\"L9\",\"9\":\"O8\",\"10\":\"OU7\",\"11\":\"CN6\",\"12\":\"Street5\",\"13\":\"T4\",\"14\":\"I3\",\"15\":\"G2\",\"16\":\"SN1\"}}",
                "NonceRequired":true
            }
        ],
     "InitializationToken":null}
    

    Блокировка/разблокировка устройства пользователя

    SetUserMyDssDeviceLockoutState

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/lockout
    Параметры в строке запроса -
    Параметры в теле запроса MyDssLockoutDeviceRequest - Информация об устройстве
    Возвращаемое значение MyDssKeyInfo - Обновленная нформация об устройстве

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/lockout HTTP/1.1
    Content-Type: application/json; charset=utf-8
    
    {
        "Kid": "73128110",
        "Lock": true
    }
    

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

    HTTP/1.1 200 OK
    
    {
        "Uid": "9fba6076-3509-4e8e-abc1-dae6d052a230",
        "Kid": "73128110",
        "DeviceName": "MyApple",
        "NotBefore":1574869065,
        "NotAfter":1614440265,
        "State": "NotVerified,Blocked",
        "UserName": "MdagTestUser-D547B268",
        "Profile":"{\"Version\":1,\"Keys\":{\"1\":\"%D0%9E%D0%93%D0%A0%D0%9D\",\"2\":\"%D0%9E%D0%93%D0%A0%D0%9D%D0%98%D0%9F\",\"3\":\"%D0%A1%D0%9D%D0%98%D0%9B%D0%A1\",\"4\":\"%D0%98%D0%9D%D0%9D\",\"5\":\"%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F %D0%BF%D0%BE%D1%87%D1%82%D0%B0\",\"6\":\"%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B0\",\"7\":\"%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C\",\"8\":\"%D0%93%D0%BE%D1%80%D0%BE%D0%B4\",\"9\":\"%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\",\"10\":\"%D0%9F%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5\",\"11\":\"%D0%9E%D0%B1%D1%89%D0%B5%D0%B5 %D0%B8%D0%BC%D1%8F\",\"12\":\"%D0%90%D0%B4%D1%80%D0%B5%D1%81\",\"13\":\"%D0%94%D0%BE%D0%BB%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C\",\"14\":\"%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8B\",\"15\":\"%D0%98%D0%BC%D1%8F\",\"16\":\"%D0%A4%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F\"},\"Values\":{\"5\":\"E12\",\"7\":\"S10\",\"8\":\"L9\",\"9\":\"O8\",\"10\":\"OU7\",\"11\":\"CN6\",\"12\":\"Street5\",\"13\":\"T4\",\"14\":\"I3\",\"15\":\"G2\",\"16\":\"SN1\"}}",
        "NonceRequired":true
    }
    

    Удаление вектора аутентификации пользователя

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss/delete
    Параметры в строке запроса -
    Параметры в теле запроса MyDssDeleteKeyRequest - Информация об устройстве
    Возвращаемое значение Отсутствует

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

    POST https://{{hostName}}/{{instanceName}}/self/mydss/delete HTTP/1.1
    Content-Type: application/json; charset=utf-8
    
    {"Kid":"73128110"}
    

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

    HTTP/1.1 200 OK
    

    Удаление всех векторов аутентификации

    Параметр Значение
    HTTP-метод DELETE
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/mydss
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение -

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

    DELETE https://{{hostName}}/{{instanceName}}/self/mydss HTTP/1.1
    

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

    HTTP/1.1 200 OK
    

    Настройка политики подтверждения операций

    Получение политики подтверждения операций пользователя

    GetUserOperationPolicy

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/operationpolicy
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserOperationPolicy>** - Политика подтверждения операций пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/operationpolicy HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 680
    
    {
        "Policy": [
            {
                "Action": "Issue",
                "ConfirmationRequired": false
            },
            {
                "Action": "SignDocument",
                "ConfirmationRequired": false
            },
            {
                "Action": "DecryptDocument",
                "ConfirmationRequired": false
            },
            {
                "Action": "CreateRequest",
                "ConfirmationRequired": false
            },
            {
                "Action": "ChangePin",
                "ConfirmationRequired": false
            },
            {
                "Action": "RenewCertificate",
                "ConfirmationRequired": false
            },
            {
                "Action": "RevokeCertificate",
                "ConfirmationRequired": false
            },
            {
                "Action": "HoldCertificate",
                "ConfirmationRequired": false
            },
            {
                "Action": "UnholdCertificate",
                "ConfirmationRequired": false
            },
            {
                "Action": "DeleteCertificate",
                "ConfirmationRequired": false
            },
            {
                "Action": "PrivateKeyAccess",
                "ConfirmationRequired": false
            }
        ],
        "ChangesAllowed": true
    }
    

    Установка политики подтверждения операции пользователя

    SetUserOperationPolicy

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/operationpolicy
    Параметры в строке запроса -
    Параметры в теле запроса IList<DSSActions> - Список операций, для которых требуется подтверждение
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/operationpolicy HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 8
    
    [2,
    1024]
    

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

    HTTP/1.1 200 OK
    

    Настройка политики доступа к операциям

    Получение политики доступа к операциям

    GetUserAccessPolicy

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/accesspolicy
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение List<UserAccessPolicy> - Политика доступа к операциям пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/accesspolicy HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 445
    
    {
        "Policy": [
            {
                "Action": "SignDocument",
                "AccessDenied": false
            },
            {
                "Action": "DecryptDocument",
                "AccessDenied": false
            },
            {
                "Action": "CreateRequest",
                "AccessDenied": false
            },
            {
                "Action": "DeleteCertificate",
                "AccessDenied": false
            },
            {
                "Action": "RenewCertificate",
                "AccessDenied": false
            },
            {
                "Action": "RevokeCertificate",
                "AccessDenied": false
            },
            {
                "Action": "HoldCertificate",
                "AccessDenied": false
            },
            {
                "Action": "UnholdCertificate",
                "AccessDenied": false
            },
            {
                "Action": "ChangePin",
                "AccessDenied": false
            }
        ],
        "ChangesAllowed": true
    }
    

    Установка политики доступа к операциям

    SetUserAccessPolicy

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/accesspolicy
    Параметры в строке запроса -
    Параметры в теле запроса IList<DSSActions> - Список операций, для которых требуется подтверждение
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/accesspolicy HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 6
    
    [2,
    16]
    

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

    HTTP/1.1 200 OK
    

    Настройка политики оповещения

    Получение списка событий о которых может быть оповещен пользователь

    GetNotificationEvents

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/notificationpolicy/events
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserEventsInfo

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

    GET https://{{hostName}}/{{instanceName}}/self/notificationpolicy/events HTTP/1.1
    

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

    HTTP/1.1 200 OK
    
    {
        "Events": [
            {
                "Type": "UserAccountChanged",
                "Category": "UserAccount",
                "Description": "Изменение данных учетной записи пользователя"
            },
            {
                "Type": "UserPasswordChanged",
                "Category": "UserAccount",
                "Description": "Изменение пароля пользователем"
            },
    
    <...>
    
            {
                "Type": "Type N",
                "Category": "cat",
                "Description": "Ошибка действия M"
            }
        ],
        "EventCategories": [
            {
                "Category": "Certificates",
                "Description": "Операции с сертификатами"
            },
            {
                "Category": "CertificatesV2",
                "Description": "Операции с сертификатами (v2 API)"
            },
    
    <...>
    
            {
                "Category": "Authentication",
                "Description": "Аутентификация пользователей"
            }
        ]
    }
    

    Получение политики оповещения

    GetNotificationPolicy

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/notificationpolicy
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение UserNotificationPolicy - Политика оповещения пользователя

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

    GET https://{{hostName}}/{{instanceName}}/self/notificationpolicy HTTP/1.1
    

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

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 445
    
    {
        "Policy": {},
        "ChangesAllowed": false,
        "AvailableNotifiers": [
            "SMS",
            "Push"
        ]
    }
    

    Установка политики оповещения

    SetNotificationPolicy

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/notificationpolicy
    Параметры в строке запроса -
    Параметры в теле запроса notifications - Dictionary<EventTypeEnum, List<DssNotifier>> - словарь событий и соответствующих им способов оповещения дл каждого из событий
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/notificationpolicy HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 6
    
    {
        "CertificatesRequested": [ "Email", "SMS" ],
        "RevokeRequestsRequested": [ "Email", "SMS", "Push" ],
    }
    
    Примечание

    При отправке запроса текущая политика оповещения пользователя будет перезаписана. В словаре необходимо указывать все события, для которых требуется оповещение.

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

    HTTP/1.1 200 OK
    

    Настройка протокола OAuth

    Получение списка приложений запросивших права на доступ к ресурсам (Oauth)

    GetUserGrants

    Параметр Значение
    HTTP-метод GET
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/grants
    Параметры в строке запроса -
    Параметры в теле запроса -
    Возвращаемое значение IList<UserGrant> - список приложений, которым были выданы права на доступ для данного пользователя.

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

    GET https://{{hostName}}/{{instanceName}}/self/grants HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 6
    

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

    HTTP/1.1 200 OK
    
    
    {}
    

    Отзыв прав приложений на доступ к ресурсам (Oauth)

    RevokeUserGrants

    Параметр Значение
    HTTP-метод POST
    Путь https://<адрес сервера>/<имя приложения ЦИ>/self/grants/revoke
    Параметры в строке запроса -
    Параметры в теле запроса RevokeGrantInput
    Возвращаемое значение -

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

    POST https://{{hostName}}/{{instanceName}}/self/grants/revoke HTTP/1.1
    Content-Type: application/json; charset=utf-8
    Content-Length: 6
    
    {
    
    }
    

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

    HTTP/1.1 200 OK
    
    
    {}
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025