Команда mtlsAuthorization — описание и примеры#
Команда mtlsAuthorization реализует авторизацию пользователя через взаимный TLS (mTLS) с использованием клиентского сертификата. Может вызываться как самостоятельная команда или автоматически при наличии authType=mtls в других командах.
Содержание:
- Общая информация
- Формат ссылки
- Получение параметров авторизации
- Процесс авторизации
- Справочник интерфейсов
- Интерфейс приложения
Общая информация#
Команда mtlsAuthorization выполняет запрос к указанному URL с использованием клиентского сертификата (взаимный TLS). Это позволяет серверу аутентифицировать пользователя КриптоАРМ по его личному сертификату.
Основные этапы:
- Запрашивает параметры с сервера (URL, HTTP-метод, описание, тело запроса).
- Отображает диалог выбора сертификата пользователем.
- Выполняет GET или POST запрос к указанному URL с клиентским сертификатом.
- Отображает результат (успех/неудача).
Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.
Формат ссылки#
cryptoarm://- зарегистрированный протоколmtlsAuthorization- выполняемая команда<URL>- ссылка на получение JSON с параметрами авторизацииid- уникальный идентификатор транзакции
Пример:
Получение параметров авторизации#
После получения команды mtlsAuthorization КриптоАРМ запрашивает параметры авторизации с сервера.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | authorization.parameters | Используемый метод. Всегда authorization.parameters. |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
Пример:
Формат ответа#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| params | IMTLSAuthorizationParams | Параметры mTLS-авторизации |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
Пример:
Процесс авторизации#
После получения параметров:
- КриптоАРМ проверяет, что указан валидный
urlи HTTP-метод (GETилиPOST). - Отображается диалог с информацией о сервисе и выбором сертификата.
- Пользователь выбирает личный сертификат (из хранилища
MY) и подтверждает операцию. -
КриптоАРМ выполняет HTTP-запрос к указанному URL:
- GET: без тела, с клиентским сертификатом в TLS handshake.
- POST: с телом
body(сериализуется в JSON), с клиентским сертификатом.
-
Результат отображается пользователю: «Успешно» или «Ошибка».
Пользователь может отменить операцию на любом этапе.
Справочник интерфейсов#
Интерфейс IMTLSAuthorizationParams#
Параметры, необходимые для mTLS-авторизации.
| Свойство | Тип | Описание |
|---|---|---|
| url | string | URL, на который будет выполнен запрос с клиентским сертификатом. Обязательный параметр. |
| method | string | HTTP-метод: "GET" или "POST". По умолчанию "GET". |
| description | string | Описание операции, отображаемое в диалоге выбора сертификата. |
| body | object | Тело запроса (для POST). Сериализуется в JSON. |
Интерфейс приложения#
Процесс mTLS-авторизации состоит из трёх этапов:
-
Выбор сертификата — отображается диалог с описанием операции. Пользователь выбирает личный сертификат (из хранилища
MY). Кнопки: «Продолжить» и «Отмена». Также может быть отображён рекомендуемый сертификат, сохранённый в доверенном сервисе. -
Выполнение запроса — отображается индикатор загрузки. КриптоАРМ выполняет HTTP-запрос к серверу с использованием выбранного клиентского сертификата. Пользователь может отменить операцию.
-
Результат — отображается результат операции: «Успешно» или «Ошибка» (с описанием). Кнопка «Готово».
При отмене на любом этапе процесс прерывается, окно закрывается.