1С:Шина. Авторизация с токеном

29.01.25

Администрирование - Информационная безопасность

Практический пример использования авторизации Bearer на 1С:Шина. Рассматривается вариант настройки 1С:Шина для использования по авторизации с использованием токена. Получение идентификатора пользователя, который подключается к шине, и фиксация его действия после подключения. Для тестовой отправки post запросов используется Postman.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Выгрузка с авторизацией по токену
.zip 5,40Mb
0
0 Скачать (2 SM) Купить за 2 150 руб.

Статья написана по хроникам внедрения 1С:Шина версии 6.1.6 в Первом Бите на Спортивной.

Начало можно почитать тут, в этой статье дополнение по дополненному функционалу. Вообще статьи независимы.

Источ ники:

  • Официальная документация по продукту 1С:Шина. Ссылка

Описание задачи

Клиент озвучил, что хочет авторизацию логин-пароль не использовать, а чтобы на его http сервисе была авторизация по токену Bearer (описанный функционал также применим и к web сервисам), а также информации при успешной авторизации при подключении к шине должна сохраняться в регистр.

Идем в документацию и получаем метод, но предварительно сделаем ряд настроек по настройкам доступа, это хорошо описано в документации тут, то есть возможность настроить отдельно на http сервис или более детально на отдельный шаблон или еще детальней на отдельный метод.

Я выбрал вариант и выдал права целиком на http сервис, см дальше скрины моих настроек

 

Рисунок 1. Настройка http сервиса

 

Далее для шаблона и для метода оставляем незаполненным

 

Рисунок 2. Настройка шаблона

 

Рисунок 3. Настройка метода

 

Если вы создаете новые элементы, то все будет работать, но я изменял с анонимного варианта (выбрать Разрешено всем) и в документации нашел пункт, что надо выполнить пересчет прав.

Заходите в свое приложение и делаете как указано на рисунке 4, ниже

 

Рисунок 4. Пересчитать права

 

Добавляем пользователя и разрешаем ему доступ к приложению HTTP

Обычно у приложения создается список пользователей, поэтому мы так и сделаем.

Из консоли откроем нужный список пользователей, через кнопку добавить пользователя добавляем его.

 

Рисунок 5. Создание пользователя

 

Далее подключаем пользователя, рисунок  6.

 

Рисунок 6. Подключение пользователя к приложению

 

и через 3 точки меняем настройки прав у пользователя test2,

 

Рисунок 7. Изменить настройки у пользователя test2

 

и ставим галку

 

Рисунок 8. Предоставление права пользователю на подключение к http сервисам приложения

 

После этого у пользователя генерируем ключи доступа пару clientid и secretid, для этого провалились в пользователя и в разделе ключи доступа нажали получить

 

Рисунок 9. Получение ключей доступа для пользователя

 

clientid вам будет доступен, а вот secretid только раз доступен на этапе получения.

Уже полученные ключи доступа используем в токенах, отправляем POST запрос на url: http://localhost:9090/applications/НазваниеПриложения/sys/token

в Header добавляем

ContentType application/x-www-form-urlencoded

и в тело следующий текст

grant_type=CLIENT_CREDENTIALS

Если все правильно указано, то шина вернет вам 200 ответ и токен, который действует 1 час.

Теперь надо понять, как получить того, кому принадлежит токен при подключении и записать его в РС внутри 1С-шина.

Это то, что я не увидел в документации, но было  получено от техподдержки 1С:Шина.

// Перечисление
конст order = ТипыЗапросов.order

метод ОбработкаЗапроса(Запрос: HttpСервисЗапрос)
знч ТелоЗапросаИзПотока = Запрос.Тело.ПрочитатьКакСтроку()
пер ГуидВызова = новый Ууид()
знч Пользователь = Пользователи.ТекущийПользователь
        //Запись в РС Сообщения из внешних систем.
        //ГуидВызова - уид для сообщения, ДатаЗаписи - дата и время когда была сделана запись, ИсходноеСообщение - тело которое нам пришло
        //Пользователь - элемент справочника Пользователи, под которым подключились к шине и было отправлено  сообщение

        пер Запись = новый СообщенияДляВнешнихСистем.Запись(Период = Момент.Сейчас(), ГуидВызова = ГуидВызова,
                ДатаЗаписи = ДатаВремя.Сейчас(
				ЧасовойПояс {UTC+3}), ИсходноеСообщение = ТелоЗапросаИзПотока, Пользователь = Пользователь, ТипЗапроса = order,
                Обработано = Истина)
        СообщенияДляВнешнихСистем.Записать(Запись)
;

 

Перечисление создается вообще без каких либо сложностей.

РС "СообщенияДляВнешнихСистем", создать с периодом Момент, также имеет следующую структуру:

Измерения:

  • ГуидВызова. ТипУуид
  • Пользователь. ТипНеопределено, ПользовательСсылка

Ресурсы:

  • ИсходноеСообщение. Тип Строка неограниченная
  • Обрабатано. Тип Булево
  • ТипЗапроса. Тип Перечисление.ТипыЗапросов

Реквизиты:

ДатаЗаписи. Тип ДатаВермя

 

Отдельно выгрузку из шины не создавал, если будет потребность, то пишите в комментарии, дополню статью.

Все скрины сделаны на основе сервиса из первоначальной статьи

Еще раз - вся информация есть в статье, настройка несложная, будут вопросы - пишите, подскажу.

Скачивать архив - это тому, кому лень читать и повторять и для поддержки автора.

токен авторизация на 1С-Шина идентификация пользователя

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171589    960    403    

924

Зарплата Роли и права Системный администратор Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 руб.

27.05.2021    39272    284    100    

218

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

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11870    45    27    

67

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    10608    47    8    

78

Логистика, склад и ТМЦ Роли и права Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

4560 руб.

21.05.2019    1695422    576    194    

138

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    59327    164    262    

156

Роли и права Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

19200 руб.

29.11.2019    25937    17    8    

37
Оставьте свое сообщение