Общее описание обработки
Внешняя обработка для формирования токенов доступа в формате JSON Web Token (JWT, RFC 7519) прямо из информационной базы 1С. Токен подписывается симметричным алгоритмом HS256 (HMAC-SHA256) и пригоден для JWT-аутентификации в HTTP- и Web-сервисах "1С:Предприятие", а также для интерактивного входа пользователя по токену доступа. Дополнительно обработка генерирует случайный ключ подписи, готовый фрагмент файла публикации default.vrd и умеет проверять подпись уже выпущенного токена.
Тестировалось на платформе 1С:Предприятие 8.5.1 (рекомендуется 8.3.21 и выше, т.к. JWT-аутентификация в платформе появилась начиная с этой версии).
Теория: как устроен JWT
JSON Web Token — открытый стандарт (RFC 7519) для создания токенов доступа на основе JSON. Физически это строка из трёх частей, разделённых точкой:
header.payload.signature
Каждая часть кодируется в Base64URL — это обычный Base64, но «безопасный для URL»: символ + заменяется на -, / — на _, а хвостовые = отбрасываются.
Заголовок (header)
Служебный JSON, описывает алгоритм подписи и тип токена:
{
"alg": "HS256",
"typ": "JWT"
}
Полезная нагрузка (payload)
JSON с «претензиями» (claims) — данными о субъекте и самом токене. Стандартные имена описаны в разделе 4.1 RFC 7519:
| Claim | Назначение |
|---|---|
|
|
issuer — издатель токена |
|
|
audience — для кого выпущен токен (получатель) |
|
|
subject — субъект (идентификатор пользователя) |
|
|
JWT ID — уникальный идентификатор токена |
|
|
issued at — момент выпуска (Unix-время, секунды) |
|
|
not before — токен недействителен до этого момента |
|
|
expiration — момент окончания срока действия |
Можно добавлять и собственные claim'ы — важно лишь, чтобы имена внутри одного токена были уникальны.
Подпись (signature)
Подпись гарантирует, что заголовок и нагрузку не подменяли.
Важно понимать: JWT не шифрует данные. Заголовок и нагрузку может прочитать кто угодно (например, на сайте jwt.io). Подпись лишь защищает от изменения: подделать тело, не зная секретный ключ, невозможно.
Где в 1С применяется JWT
- как способ аутентификации пользователей информационной базы;
- как способ аутентификации при использовании HTTP- и Web-сервисов;
- при настройке публикации информационной базы на веб-сервере.
Интерфейс обработки
Форма обработки максимально простая.

Поля:
- Сервис (издатель, iss) — имя издателя токена. Должно совпасть с атрибутом
nameэлемента<issuer>вdefault.vrd. - Получатель (aud) — для кого предназначен токен. Должно совпасть с
<accessTokenRecepientName>вdefault.vrd. - Пользователь ИБ (sub) — пользователь информационной базы (поле с выпадающим списком всех пользователей базы).
- Ключ подписи — секретный ключ. Рядом кнопка генерации случайного ключа.
- Время жизни, сек. — срок действия токена (по умолчанию 3600).
Кнопки и поля вывода:
- Сформировать — создаёт токен и текст настроек публикации.
- Токен (JWT) — готовый токен.
- Настройки default.vrd — готовый фрагмент файла публикации.
- Проверить подпись — проверяет подпись токена из поля «Токен» текущим ключом.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.12.238
Вступайте в нашу телеграмм-группу Инфостарт