Конечная точка 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
Установка внешнего логина учетной записи пользователя
SetUserLogin
Добавляет внешний логин пользователю или заменяет его, если логин уже существует. Имя ЦИ и внешний логин будет получено из переданного в методе токена внешнего ЦИ.
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://<адрес сервера>/<имя приложения ЦИ>/self/login |
Параметры в строке запроса | - |
Параметры в теле запроса | ExternalLoginTokenInfo - Структура для создания внешнего логина |
Возвращаемое значение | - |
Пример запроса
POST https://{{hostName}}/{{instanceName}}/self/login
Content-Type: application/json; charset=utf-8
Content-Length: 48
{
"SubjectToken": "{значение_токена}",
"SubjectTokenType": "{тип_токена}"
}
Пример ответа
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/mydss",
"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/mydss",
"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": "ArchivedCertificateKeyExportFail",
"Category": "Certificates",
"Description": "Ошибка экспорта архивированного ключа пользователя"
}
],
"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
{}