Создание токенов 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С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Создание токенов 1С. Использование JWT-аутентификации.:
.epf 8,59Kb
41
41 Скачать (1 SM) Купить за 1 850 руб.

Краткое описание из руководства разработчика - Глава 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).

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2732    3    0    

10

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    34830    68    45    

27

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    2504    2    3    

5

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

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

36000 руб.

03.08.2020    19152    23    22    

20

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

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

12000 руб.

02.02.2021    18921    54    50    

31

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    932    4    2    

6

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    4243    3    2    

4

Обмен с ГосИС WEB-интеграция Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    93258    193    217    

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

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