Аутентификация в сервисах google с использованием ключа сервисного пользователя

17.08.20

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

В статье опишу вариант аутентификации в сервисах google используя ключ сервисного пользователя и криптографию windows.

Файлы

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

Наименование Скачано Купить файл
GoogleAPI.cfe
.cfe 45,47Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вводные

  • Нужно получить токен доступа к сервисам google для сервисного пользователя
  • Для аутентификации используется JWT c RS256 (SHA256RSA)
  • Для получения токена возможно использовать форматы ключей
    • p12 с предопределенным паролем
    • PEM в составе JSON
  • Сервер 1С на windows

Реализация

При реализации использовал наработки:

Документация аутентификации ссылка

В 1С не реализован механизм RSA, используются:

  • "МенеджерКриптографии()", как в него поместить ключ из файла или из строки не понял
  • COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider"), он работает с ключом в формате XML
  • нативная реализация от uno-c, не стал использовать "в лоб", т.к. автор написал что разбор PEM не оптимален и заточен только под формат google, так же не получилось сопоставить XML формат и результат его разбора формата PEM.

В windows есть подсистема "System.Security.Cryptography" которая умеет работать с SHA256RSA (документация), для работы использует формат XML, который можно получить из ключа p12 используя system.security.cryptography.x509certificates (документация). Пример скрипта конвертации PowerShell взял у uno-c, перенес в код ПолучитьЗапуститьСкриптКонвертации(), конвертировать из PEM используя PowerShell у меня не получилось, ломается на ошибке импорта из массива байт, если тема интересна могу код скрипта в комментариях разместить.

 

Реализовал в виде расширения

  • Основной функционал в общем модуле "auth_g_Сервер".
  • Данные по пользователям храню в спр. "auth_g_СервисныеПользователи"
  • Полученные токены храню в РС auth_g_Токены

В форме спр. "auth_g_СервисныеПользователи" реализовал

  • обращение к файлу p12 и передачу данных для конвертации в XML
  • получение PEM ключей из файла JSON
  • обращение для получения токена с выбранными правами доступа
  • проверку через получение информации о токене и списку ролей (для доступа нужно на уровне консоли включить API для AIM)

Исходный код на GitHub (ссылка).

Для linux серверов рассматривал обращение к node.js сервису с HTTP сервисом и использованием библиотеки jsonwebtoken.

Тестировалось на БСП 3.1.2 (режим совместимости 8.3.14)

Благодарю за внимание.

Вступайте в нашу телеграмм-группу Инфостарт

SHA256RSA google RS256 JWT

См. также

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

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

42700 руб.

03.08.2020    23974    36    24    

28

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    22714    68    52    

43

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

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

60000 руб.

07.05.2019    42601    76    45    

31

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

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

17568 руб.

20.12.2024    5929    25    4    

27

WEB-интеграция Загрузка и выгрузка в Excel Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

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

12200 руб.

29.08.2025    2476    6    6    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 272 12.09.20 04:38 Сейчас в теме
В 1С не реализован механизм RSA,

1С работает с системными RSA-криптопровайдерами, но не поддерживает хеширование SHA-256, хотя сам криптопровайдер при этом может поддерживать SHA-256. Например, используя МенеджерКриптографии, можно поставить подпись RSA c хешированием SHA-1.
Для отправки сообщения требуется регистрация/авторизация