Перейти к содержанию

Команда mtlsAuthorization — описание и примеры#

Команда mtlsAuthorization реализует авторизацию пользователя через взаимный TLS (mTLS) с использованием клиентского сертификата. Может вызываться как самостоятельная команда или автоматически при наличии authType=mtls в других командах.

Содержание:


Общая информация#

Команда mtlsAuthorization выполняет запрос к указанному URL с использованием клиентского сертификата (взаимный TLS). Это позволяет серверу аутентифицировать пользователя КриптоАРМ по его личному сертификату.

Основные этапы:

  1. Запрашивает параметры с сервера (URL, HTTP-метод, описание, тело запроса).
  2. Отображает диалог выбора сертификата пользователем.
  3. Выполняет GET или POST запрос к указанному URL с клиентским сертификатом.
  4. Отображает результат (успех/неудача).

Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.


Формат ссылки#

cryptoarm://mtlsAuthorization/<URL>/?id=<id>
  • cryptoarm:// - зарегистрированный протокол
  • mtlsAuthorization - выполняемая команда
  • <URL> - ссылка на получение JSON с параметрами авторизации
  • id - уникальный идентификатор транзакции

Пример:

cryptoarm://mtlsAuthorization/https://example.com/json?id=2c48eb32-a0a8-405c-ade9-eed130605cba

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

После получения команды mtlsAuthorization КриптоАРМ запрашивает параметры авторизации с сервера.

Формат запроса#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method authorization.parameters Используемый метод. Всегда authorization.parameters.
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.

Пример:

1
2
3
4
5
6
7
8
Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "authorization.parameters",
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

Формат ответа#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
params IMTLSAuthorizationParams Параметры mTLS-авторизации
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.

Пример:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "jsonrpc": "2.0",
    "params": {
        "url": "https://api.example.com/auth/mtls",
        "method": "POST",
        "description": "Авторизация на портале Example",
        "body": {
            "clientId": "my-client",
            "timestamp": "2026-01-01T00:00:00Z"
        }
    },
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

Процесс авторизации#

После получения параметров:

  1. КриптоАРМ проверяет, что указан валидный url и HTTP-метод (GET или POST).
  2. Отображается диалог с информацией о сервисе и выбором сертификата.
  3. Пользователь выбирает личный сертификат (из хранилища MY) и подтверждает операцию.
  4. КриптоАРМ выполняет HTTP-запрос к указанному URL:

    • GET: без тела, с клиентским сертификатом в TLS handshake.
    • POST: с телом body (сериализуется в JSON), с клиентским сертификатом.
  5. Результат отображается пользователю: «Успешно» или «Ошибка».

Пользователь может отменить операцию на любом этапе.


Справочник интерфейсов#

Интерфейс IMTLSAuthorizationParams#

Параметры, необходимые для mTLS-авторизации.

Свойство Тип Описание
url string URL, на который будет выполнен запрос с клиентским сертификатом. Обязательный параметр.
method string HTTP-метод: "GET" или "POST". По умолчанию "GET".
description string Описание операции, отображаемое в диалоге выбора сертификата.
body object Тело запроса (для POST). Сериализуется в JSON.

Интерфейс приложения#

Процесс mTLS-авторизации состоит из трёх этапов:

  1. Выбор сертификата — отображается диалог с описанием операции. Пользователь выбирает личный сертификат (из хранилища MY). Кнопки: «Продолжить» и «Отмена». Также может быть отображён рекомендуемый сертификат, сохранённый в доверенном сервисе.

  2. Выполнение запроса — отображается индикатор загрузки. КриптоАРМ выполняет HTTP-запрос к серверу с использованием выбранного клиентского сертификата. Пользователь может отменить операцию.

  3. Результат — отображается результат операции: «Успешно» или «Ошибка» (с описанием). Кнопка «Готово».

При отмене на любом этапе процесс прерывается, окно закрывается.

Для повышения удобства работы и хранения данных веб-сайт TRUSTED.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.