Создание токенов 1С. Использование JWT-аутентификации

17.01.24

Интеграция - WEB-интеграция

Обработка для создания токенов из информационной базы 1С для использования JWT-аутентификации в сервисах 1С и т.п. Токен - средство идентификации пользователя, группы пользователей или отдельного сеанса работы в приложении. JSON Web Token (сокращенно JWT) - стандарт создания токенов доступа, основанный на формате JSON. JWT описывается в стандарте RFC 7519 (https://datatracker.ietf.org/doc/html/rfc7519). JWT используется для аутентификации пользователя в клиент-серверных приложениях.

Скачать исходный код

Наименование Файл Версия Размер
Создание токенов 1С. Использование JWT-аутентификации.:
.epf 8,59Kb
13
.epf 8,59Kb 13 Скачать

Краткое описание из руководства разработчика - Глава 17. Интеграция с внешними системами

17.3.1.4. Использование JWT-аутентификации

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

Токен - средство идентификации пользователя, группы пользователей или отдельного сеанса работы в приложении. JSON Web Token (сокращенно JWT) - стандарт создания токенов доступа, основанный на формате JSON. JWT описывается в стандарте RFC 7519 (https://datatracker.ietf.org/doc/html/rfc7519). JWT используется для аутентификации пользователя в клиент-серверных приложениях. Использование JWT можно описать следующим порядком действий:

1. Пользователь аутентифицируется на сервере аутентификации, например, с использованием имени пользователя и пароля.

2. В ответ сервер аутентификации предоставляет пользователю JWT.

3. Пользователь обращается к приложению, представляясь этому приложению путем предъявления JWT.

4. Если предъявленный JWT проходит проверку приложением, приложение выполняет запрошенное действие и возвращает результат.

Кратко рассмотрим устройство JWT и то, каким способом этот инструмент может быть использован в системе «1С:Предприятие».

Логически JWT состоит из трех частей: заголовок (header), полезная нагрузка (payload), подпись (signature). Заголовок и полезная нагрузка представляют из себя объекты в формате JSON. Заголовок содержит служебную информацию, которая должна позволить проверяющей стороне корректно обработать данные JWT. Полезная нагрузка состоит из претензий (или требований, заявок, в оригинале - JWT claims), которые описывают прикладные данные, которые требуются для приложения, которое выполняет аутентификацию (выполняет запрос, аутентификация для которого выполняется с помощью JWT). Стандартные имена претензий перечислены в разделе 4.1 стандарта RFC 7519. Разработчик может создать собственное имя претензии. Важно, чтобы имена претензий, в рамках одного токена, были уникальными.

Подпись формируется на основании заголовка и полезной нагрузки с помощью специальной функции, описанной в заголовке и преобразованной в формат Base64URL. Физически JWT представляет собой строку, которая состоит из трех частей, разделенных символами «.». Заголовок и полезная нагрузка также подвергаются кодированию с помощью алгоритма Base64URL.

Рассмотрим пример.

Заголовок содержит следующую информацию:

Копировать в буфер обмена

{
    "alg": "HS256",
    "typ": "JWT"
}

Полезная нагрузка содержит следующую информацию:

Копировать в буфер обмена

{
    "id": "1234567890",
    "name": "Иван Иванов",
    "role": "administrator"
}

JWT будет выглядеть следующим образом (токен разделен на три строки):

Копировать в буфер обмена

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJpZCI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoi0JjQstCw0L0g0JjQstCw0L3QvtCyIiwicm9sZSI6ImFkbWluaXN0cmF0b3IifQ.
n-0muDfzGhlMQbzaCxeIU8JItoN1Yr4RdJq4G8RUnck

В этом примере разделение по строкам приведено для удобства восприятия, а собственно разделение выполнено по символу «.». Если средство просмотра документации не позволяет второй строке (начинается с символов «eyJpZCI6I») целиком поместиться по ширине просмотра, то пример будет отображаться более, чем в 3 строки.

Очевидно, что чем больше информации находится в разделе полезной нагрузки, тем больший размер будет занимать JWT.

В системе «1С:Предприятие» JWT может использоваться в следующих случаях:

`79; В качестве одного из способов аутентификации пользователей информационной базы «1С:Предприятия».

`79; В качестве одного из способов аутентификации при использовании HTTP- и Web-сервисов.

`79; При настройке публикации информационной базы на веб-сервере.

Для того, чтобы поэкспериментировать с различным наполнением JWT, можно использовать, например, сайт https://jwt.io.

17.3.1.4.3. Использование JWT

Если сервер, к которому выполняется HTTP-запрос, требует указания JWT, то это можно осуществить несколькими различными способами. Но технически, все возможности опираются или на формирование заголовка HTTP-запроса, или на формирование параметра запроса.

Самым простым способом выглядит явное указание «токена на предъявителя» (bearer token) в заголовке Authorization HTTP-запроса к серверу:

Копировать в буфер обмена

Запрос = Новый HTTPЗапрос("/get");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТекстТокена);

Аналогичный заголовок будет сформирован также в том случае, если будет использован метод ДобавитьТокенДоступа() объекта HTTPЗапрос. Разница с предыдущим способом заключается в том, что в качестве параметра метода выступает не строка, а значение типа ТокенДоступа:

Копировать в буфер обмена

Запрос = Новый HTTPЗапрос("/get");
Запрос.ДобавитьТокенДоступа(ТокенДоступа);

Если сервер требует токен доступа в виде параметра запроса, то сделать это можно следующим образом:

Копировать в буфер обмена

Запрос = Новый HTTPЗапрос("/get?AccessToken=" + ТекстТокена);

Если необходимо передать токен доступа при запуске клиентского приложения системы «1С:Предприятия», то сделать это с использованием командной строки запуска. Команда AccessToken предназначена для передачи в клиентское приложение JWT в текстовом виде. Для того, чтобы такое действие имело смысл, для пользователей информационной базы должна быть включена возможность аутентификации токеном доступа.

Смотри также:

`79; Параметры пользователя информационной базы (см. здесь).

`79; Файл default.vrd (см. здесь).

 

Общее описание обработки

Обработка позволяет сформировать токен доступа для сервиса и пользователя информационной базы.

1. Выберете сервис, пользователя информационной базы.

2. Укажите, либо сформируйте ключ подписи.

3. Укажите время жизни токена в секундах.

4. Нажмите "Сформировать" для создания нового токена и текста файла настроек.

 

 

У пользователя, для которого формируется токен, обязательно указать возможность авторизации с использованием токенов доступа

 

 

У пользователя, для которого формируется токен, обязательно указать возможность авторизации с использованием токенов доступа

 

 

Пример настройки конфигурационного файла default.vrd

 

 

Пример использования токена в простом get запросе

 

 

Замечание: Тестирование проводилось на релизе платформы 1С:Предприятие 8.3 (8.3.23.1912).

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16082    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18166    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85385    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12992    33    8    

12

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16614    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3340 17.01.24 17:55 Сейчас в теме
Пример использования токена в простом get запросе

Странный вариант... токен используется для авторизации в заголовке запроса. Зачем его через параметр гонять?
2. Nadezhdin 18.01.24 08:41 Сейчас в теме
У Vk api, например, также токен передаётся в параметрах. Так что ничего странного тут нет
Оставьте свое сообщение