Authorization API
Группа методов для работы с авторизацией.
Описание методов
Данный блок содержит подробное описание по каждому методу API.
[GET]/api/v2/auth/byCertificate
Аутентификация по сертификату. Шаг 1. Получение данных для подписи.
Основной сценарий Получение access и refresh токенов (токены авторизации) по подписанным данным.Данным методом необходимо запросить строку, подписать ее прикрепленной (совмещенной) ЭП.Представляет из себя штамп времени сервера в универсальном сортируемом формате в UTC.Файл ЭП отправить в Шаге 2
Возможные ответы метода
| Код | Тип | Описание |
|---|---|---|
| 200 | string | Данные для подписи. |
[POST]/api/v2/auth/byCertificate
Аутентификация по сертификату. Шаг 2. Создание access и refresh токенов (токены авторизации) на основе подписанных данных.
Основной сценарий Получение access и refresh токенов по подписанным данным.В параметре signedData необходимо передать файл прикрепленной (совмещенной) ЭП данных,полученных в Шаге 1. На сервере проверяется ЭП, извлекается сертификат.Отпечаток (SHA1 Thumbprint) сертификата сравнивается с отпечатками сертификатов, указанных при регистрации.
Тело запроса
Тип запроса: multipart/form-data
| Название | Обязат. | Тип | Описание |
|---|---|---|---|
| signedData | Да | string(binary) | Прикрепленная (совмещенная) ЭП данных, полученных в Шаге 1. |
Возможные ответы метода
| Код | Тип | Описание |
|---|---|---|
| 200 | AuthTokenInfo | Access и refresh токены. |
| 400 | ValidationResultErrorMessage | Bad Request |
Пример успешного ответа
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
[POST]/api/v2/auth/refresh
Обновление токенов авторизации на основе refresh токена.
Основной сценарий Получить access и refresh токены (токены авторизации). Использовать для обновления токеновавторизации не используя сертификат (подписание данных).Рекомендуется использовать в фоновом режиме до истечения срока действия acсess токена.
Тело запроса
Тип запроса: application/json
Refresh токен. Тип контента: string
Возможные ответы метода
| Код | Тип | Описание |
|---|---|---|
| 200 | AuthTokenInfo | Access и refresh токены. |
| 400 | ValidationResultErrorMessage | Bad Request |
Пример успешного ответа
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
Описание дополнительных моделей
Данный блок содержит описание дополнительных моделей.
AuthTokenInfo
Токены авторизации.
| Название | Обязат. | Тип | Описание |
|---|---|---|---|
| accessToken | Да | string | Авторизационный токен (access токен). |
| refreshToken | Да | string | Токен для обновления авторизационного токена (refresh токен). |
| validBefore | Да | date-time-offset | Дата и время окончания жизни access токена, на основе которых можно определить его длительность. Длительность действия refresh токена в 2 раза дольше, чем у access токена. |
Пример модели
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refreshToken": "rfkerLKJvrecerlkcvjer9034kmlmkkcerF.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"validBefore": "2022-02-11T13:03:05.670Z"
}
ErrorType
Тип ошибки.
| Значение | Описание |
|---|---|
| Authentication | Ошибка аутентификации. |
| Billing | Ошибка биллинга. |
| CanceledByClient | Отмененный запрос со стороны клиента |
| Domain | Ошибка уровня предметной области. |
| Employee | Ошибка связанная с сотрудником. |
| Import | Ошибка импорта файлов. |
| Inner | Внутренняя ошибка. |
| Undefinded | Неопределенная ошибка. |
| ValidationRule | Ошибка валидации запроса. |
| Visualization | Ошибка визуализации. |
ValidationError
Ошибка валидации
| Название | Обязат. | Тип | Описание |
|---|---|---|---|
| name | Нет | string | Имя свойства (аргумента). |
| reason | Нет | string | Причина ошибки |
Пример модели
{
"name": "Строка",
"reason": "Строка"
}
ValidationResult
Модель для вывода ошибок валидации.
| Название | Обязат. | Тип | Описание |
|---|---|---|---|
| detail | Нет | string | Детали ошибки валидации. |
| validationErrors | Нет | ValidationError[array] | Список ошибок валидации. |
Пример модели
{
"detail": "Строка",
"validationErrors": [
{
"name": "Строка",
"reason": "Строка"
}
]
}
ValidationResultErrorMessage
Параметры модели сообщения об ошибке.
| Название | Обязат. | Тип | Описание |
|---|---|---|---|
| message | Нет | string | Текст ошибки. |
| code | Нет | string | Код ошибки. |
| type | Нет | Одна из: ErrorType | Тип ошибки. |
| data | Нет | Одна из: ValidationResult | Детализация ошибки (опциональная). |
Пример модели
{
"message": "Строка",
"code": "Строка",
"type": "CanceledByClient",
"data": {
"detail": "Строка",
"validationErrors": [
{
"name": "Строка",
"reason": "Строка"
}
]
}
}